最近,用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文件)-王彬忠的博文...相关推荐

  1. python 基因序列提取_科学网—简单的Python脚本提取对应位置基因序列(fasta文件) - 王彬忠的博文...

    最近,用Python脚本提取,在基因号已知,位置已知条件下,相对应位置的基因序列时发现,这样很简单但是很实用的脚本,在网上却比较难找.而且,能被找到的脚本,相对于具有初级编程能力的人而言,有点难.本人 ...

  2. 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...

    只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...

  3. python序列_科学网—Python:序列(字符串、列表、元组)和序列函数 - 刘洋洋的博文...

    Python中的序列,包括字符串(String).列表(List).元组(Tuple). 序列的索引 通过索引(index)访问及获得的序列的一个或多个元素,也叫切片. 正序: 0 到 N-1 倒序: ...

  4. python读取tiff影像_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...

    (1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...

  5. 利用python处理dna序列_利用Python编程提取基因组基因序列

    生物技术. DOI: 10.16660/j.cnki.1674-098X.2019.11.141 利用Python编程提取基因组基因序列 ① 庞雪原 张婷婷 (东北农业大学生命科学学院 黑龙江哈尔滨 ...

  6. python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文

    机器学习中存在两类参数:通过训练数据学习得到的参数:---可认为是辨识得到的参数,例如模型系数: 在学习算法中单独需要优化的参数--超参.调优参数:---算法自身的系数,例如决策树的深度参数: Gri ...

  7. python sklearn 梯度下降法_科学网—Python_机器学习_总结4:随机梯度下降算法 - 李军的博文...

    =============================================================== 总结如下: 1.随机梯度下降算法可以看成是梯度下降算法的近似,但通常它能 ...

  8. 基于python的计算基因组_科学网—python3 计算 基因组测序结果文件 各碱基数目(个人练习) - 靳泽星的博文...

    基因组测学回来的结果后,从assembly(组装)里找到序列文件,格式可能是:.fasta..fastq..seq.和.contig.fastq要转化为fasta,转化方法网上一大把哈.我的基因组序列 ...

  9. python频次统计图_科学网—Python小例:统计文本中单词出现的频次 - 康建的博文...

    import re zen=''' The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better ...

  10. perl mysql 数据推拉_科学网—从MySQL数据库中提取序列并进行引物设计的perl脚本 - 闫双勇的博文...

    利用MySQL数据库来储存序列,通过perl脚本获取序列,并进行引物设计.当然除了引物设计干其它事情也是可以的. 将FASTA文件导入MySQL数据库的方法: bp_seqfeature_load.p ...

最新文章

  1. java 按钮 事件_Java 添加按钮点击事件
  2. 贝叶斯网络之父Judea Pearl力荐、LeCun点赞,这篇长论文全面解读机器学习中的因果关系...
  3. asp.net MVC 权限设计
  4. linux mysql insert_linux mysql怎么添加数据
  5. matlab 生成几个聚类点函数nngenc函数
  6. flyway命令行使用示例:指定conf配置文件
  7. windows xp https页面找不到_Windows 提权快速查找 Exp
  8. 【牛客 - 331J】炫酷数学(打表猜结论,按位枚举证明)
  9. 括弧匹配检验(信息学奥赛一本通-T1354)
  10. BlazeDS4 添加MSSQL/MySQL数据源
  11. LeetCode939
  12. J2EE技术-Hibernate
  13. win10软件安装出现错误代码2503/2502
  14. 跟燕十八学习PHP-第二十五天-mysqlgroup by和having的综合练习
  15. Movie Studio插入的素材支持什么格式?
  16. 如何在Linux系统列出systemd下所有正在运行的服务
  17. (转载)用C#实现MySQL建库及建表
  18. ES6的Set()方法实现数组去重
  19. elasticsearch小记之—— unmapped_type的使用
  20. 黑苹果教程(一)VM装黑苹果

热门文章

  1. 彻底搞懂git rebase命令
  2. 谈论为什么要写博客的重要性
  3. flask从表单中的提交中获取数据(不使用第三方库)
  4. Linux 之 shell 比较运算符
  5. FTP文件同步(java版)
  6. WinAVI FLV Converter v1.0 注册码
  7. 可空类型 (C# 编程指南)
  8. 学业水平考试容易过吗_2019年12月贵州省普通高中学业水平考试真题汇总
  9. 使用docker环境编译驱动
  10. linux内核奇遇记之md源代码解读之二