利用python处理dna序列_科学网-简单的Python脚本提取对应位置基因序列(fasta文件)-王彬忠的博文...
最近,用Python脚本提取,在基因号已知,位置已知条件下,相对应位置的基因序列时发现,这样很简单但是很实用的脚本,在网上却比较难找。而且,能被找到的脚本,相对于具有初级编程能力的人而言,有点难。本人写了相对于初学者同样很简单脚本分享给大家。
首先,我将fa文件处理为单行(嫌麻烦,没有写成scaffold_x一行,序列一行的样子,如图三),将下面的序列处理(图一):
(补充)经过:
import re
fr=open(r'F:desktopcorrelxxx.fa','r')
fw=open(r'F:desktopcorrelxxx_use.fa','w')
line=fr.read()
r=line.replace('n','')
s=re.sub('>','n>',r)
fw.write(s)
fr.close()
fw.close()
得到(图二):
当然你如果不嫌麻烦也可以处理成(图三):
假设我含有位置信息源文件(图四):
第一列为基因号,最后一列为基因在fa文件中的位置信息;
本人采用图二的形式,具体脚本(脚本一);
#author:Wang Binzhong
# -*- coding:utf-8 -*-
fr=open(r'F:desktopCX.txt','r')#读取含有位置信息的文件
fa=open(r'F:desktopxxxx.fa','r')#读取处理好的基因序列文件
fw_1=open(r'F:desktopfa_3.txt','w')#写入
line_cr=fr.readlines()
line_fa=fa.readlines()
for eachline in line_cr:
sp=eachline.strip().split('t')
title_1=eachline.find('scaffold')
start_1=eachline.find(':',title_1)+1
end_1=eachline.find('-',start_1)
d_1=eachline[title_1:start_1-1].strip()#scaffold名称
d_2=eachline[start_1:end_1].strip()#首位的位置
d_3=eachline[end_1+1:].strip()#末尾的位置
for each_seq in line_fa:
if d_1 == each_seq[:int(len(d_1))+5].strip('ATGC'):#如果对应的名称在行中,就可以用以下的规则写入文本
fw_1.write(sp[0]+'t'+each_seq[len(d_1)+int(d_2):len(d_1)+int(d_3)].strip()+'n')#改为:fw_1.write('>'+sp[0]+'n'+each_seq[len(d_1)+int(d_2):len(d_1)+int(d_3)].strip()+'n')可以省略第二步(脚本二),一步完成
break
fr.close()
fa.close()
fw_1.close()
表头没有'>',同时也没有换行处理,所以需要继续处理(图五):
没有写连续的脚本,重新写了一个(脚本二):
import re
fr=open(r'F:desktopfa_3.txt','r')
fw=open(r'F:desktopfa_4.fa','w')
line_fr=fr.readlines()
s_1=''
for eachline in line_fr:
s_1=re.sub('t','n',eachline)
fw.write(re.sub('pp','>pp',s_1))
fr.close()
fw.close()
最终得到:
程序比较简单,Python初学者都可以懂。当然,如果有错误的地方可以留言指出,
希望能为需要的同学提供帮助。这个程序只是针对于正链的
注:之前写的出现了一个bug,经过修改后发布成功提取序列,希望对各位有帮助,有用的话可以引用。
鉴于某些人盗版,转载请注明网址。
转载本文请联系原作者获取授权,同时请注明本文来自王彬忠科学网博客。
收藏
分享
分享到:
利用python处理dna序列_科学网-简单的Python脚本提取对应位置基因序列(fasta文件)-王彬忠的博文...相关推荐
- python 基因序列提取_科学网—简单的Python脚本提取对应位置基因序列(fasta文件) - 王彬忠的博文...
最近,用Python脚本提取,在基因号已知,位置已知条件下,相对应位置的基因序列时发现,这样很简单但是很实用的脚本,在网上却比较难找.而且,能被找到的脚本,相对于具有初级编程能力的人而言,有点难.本人 ...
- 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...
只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...
- python序列_科学网—Python:序列(字符串、列表、元组)和序列函数 - 刘洋洋的博文...
Python中的序列,包括字符串(String).列表(List).元组(Tuple). 序列的索引 通过索引(index)访问及获得的序列的一个或多个元素,也叫切片. 正序: 0 到 N-1 倒序: ...
- python读取tiff影像_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...
(1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...
- 利用python处理dna序列_利用Python编程提取基因组基因序列
生物技术. DOI: 10.16660/j.cnki.1674-098X.2019.11.141 利用Python编程提取基因组基因序列 ① 庞雪原 张婷婷 (东北农业大学生命科学学院 黑龙江哈尔滨 ...
- python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文
机器学习中存在两类参数:通过训练数据学习得到的参数:---可认为是辨识得到的参数,例如模型系数: 在学习算法中单独需要优化的参数--超参.调优参数:---算法自身的系数,例如决策树的深度参数: Gri ...
- python sklearn 梯度下降法_科学网—Python_机器学习_总结4:随机梯度下降算法 - 李军的博文...
=============================================================== 总结如下: 1.随机梯度下降算法可以看成是梯度下降算法的近似,但通常它能 ...
- 基于python的计算基因组_科学网—python3 计算 基因组测序结果文件 各碱基数目(个人练习) - 靳泽星的博文...
基因组测学回来的结果后,从assembly(组装)里找到序列文件,格式可能是:.fasta..fastq..seq.和.contig.fastq要转化为fasta,转化方法网上一大把哈.我的基因组序列 ...
- python频次统计图_科学网—Python小例:统计文本中单词出现的频次 - 康建的博文...
import re zen=''' The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better ...
- perl mysql 数据推拉_科学网—从MySQL数据库中提取序列并进行引物设计的perl脚本 - 闫双勇的博文...
利用MySQL数据库来储存序列,通过perl脚本获取序列,并进行引物设计.当然除了引物设计干其它事情也是可以的. 将FASTA文件导入MySQL数据库的方法: bp_seqfeature_load.p ...
最新文章
- java 按钮 事件_Java 添加按钮点击事件
- 贝叶斯网络之父Judea Pearl力荐、LeCun点赞,这篇长论文全面解读机器学习中的因果关系...
- asp.net MVC 权限设计
- linux mysql insert_linux mysql怎么添加数据
- matlab 生成几个聚类点函数nngenc函数
- flyway命令行使用示例:指定conf配置文件
- windows xp https页面找不到_Windows 提权快速查找 Exp
- 【牛客 - 331J】炫酷数学(打表猜结论,按位枚举证明)
- 括弧匹配检验(信息学奥赛一本通-T1354)
- BlazeDS4 添加MSSQL/MySQL数据源
- LeetCode939
- J2EE技术-Hibernate
- win10软件安装出现错误代码2503/2502
- 跟燕十八学习PHP-第二十五天-mysqlgroup by和having的综合练习
- Movie Studio插入的素材支持什么格式?
- 如何在Linux系统列出systemd下所有正在运行的服务
- (转载)用C#实现MySQL建库及建表
- ES6的Set()方法实现数组去重
- elasticsearch小记之—— unmapped_type的使用
- 黑苹果教程(一)VM装黑苹果