python从gbff文件中直接提取cds序列
什么是GBFF文件
- GenBank纯文本文件格式(GenBank flatfile, 简称GBFF)
- GBFF是GenBank数据库的基本信息单位
- GBFF序列文件由单个的序列条目组成。
- 序列条目由字段组成,每个字段由关键字起始,后面为该 字段的具体说明。
- 字段分若干次子字段,以次关键字或特性表说明符开始。
- 每个序列条目以双斜杠“//*作结束标记
每个序列条目所代表的意义
1、 LOCUS(代码)序列的功能、序列长度、类型、种属来源、录入日期
2、 DEFINITION(说明)所含的生物学意义的总结性描述
3、 ACCESSION(编号)具有唯一性和永久性
4、 VERSION(版本号)检索号、版本号
5、 KEYWORDS(关键词)描述序列,“ . ”表示没有任何描述内容
6、 SOURCE(数据来源)序列来源生物的简称,或分子类型
7、 REFERENCE (文献)与该数据有关的参考文献,按发表时间排名
8、 FEATURES(特性表)描述基因和基因的产物,以及与序列相关的生物学特性,其中包括
- a. 特性关键词(Feature key) 简要说明功能组的关键词
- b. 特性位置(Location) 指明在特性表中的什么地方找到相关特性
- c. 限定词(Qualifiers) 相关特性的辅助信息
9、 ORIGIN(碱基排列顺序)类似于FASTA格式给出了所记录的序列
最后直接上代🐎,更改输入和输出文件即可使用
import re FILE_PATH = './input.gb' OUT_FILE_PATH = './output.fasta' d = {} g = {} tem = [] def con_spl(list_,n = 2): return [list_[i:i + n] for i in range(0, len(list_), n)] with open (FILE_PATH,'r')as f: while True: text_line = f.readline().strip('\t').split() if text_line: if text_line[0] == 'DEFINITION': c = ' '.join(i for i in text_line[2:]) d[c] = [] g[c] = [] print (text_line) elif text_line[0] == 'CDS': cds = re.findall(r"\d+\d*?",text_line[1]) if len(cds) == 2: d[c].append(cds) else: for i in con_spl(cds): d[c].append(i) elif text_line[0] == 'ORIGIN': while text_line[0] != '//': for i in text_line[1:]: tem.append(i) text_line = f.readline().strip('\t').split() e = ''.join(i for i in tem) g[c].append(e) else: pass elif f.readline().strip('\t').split(): continue else: break with open (OUT_FILE_PATH,'w')as f: for i,o in d.items(): G = ''.join(g[I]) p = '' for u in o: u1 = int(u[0]) u2 = int(u[1])+1 p += G[u1:u2] print ('>',i,sep='',file=f) print (p,file=f)
以上就是python从gbff文件中直接提取cds序列的详细内容,更多关于python提取gbff文件cds序列的资料请关注脚本之家其它相关文章!
相关文章
Python使用matplotlib绘制正弦和余弦曲线的方法示例
这篇文章主要介绍了Python使用matplotlib绘制正弦和余弦曲线的方法,结合实例形式分析了Python调用matplotlib库进行图形绘制想具体操作技巧,需要的朋友可以参考下2018-01-01Python中文分词库jieba,pkusegwg性能准确度比较
这篇文章主要介绍了Python中文分词库jieba,pkusegwg性能准确度比较,需要的朋友可以参考下2020-02-02Python Django网页界面协同过滤推荐算法实现商品管理与推荐
商品管理与推荐系统,本系统使用Python作为主要开发语言,前端采用HTML、CSS、BootStrap等技术搭建显示界面,后端采用Django框架处理用户的请求响应2023-11-11OneFlow源码解析之Eager模式下Tensor存储管理
这篇文章主要为大家介绍了OneFlow源码解析之Eager模式下Tensor的存储管理实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-04-04详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
这篇文章主要介绍了详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-12-12手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
最近很多网友找小编反映PyCharm激活码失效了,原来的已经不能用了。浪费了半天时间终于找到一个可以使用的了,支持最新JetBrains全系列产品(Pycharm 2020.2.x,Intellij idea 2020.2.x,WebStorm 2020.2.x)。,需要的朋友可以参考下2020-10-10
最新评论