Python在GBFF里提取cds序列怎么实现
Admin 2022-08-04 群英技术资讯 638 次浏览
1、 LOCUS(代码)序列的功能、序列长度、类型、种属来源、录入日期
2、 DEFINITION(说明)所含的生物学意义的总结性描述
3、 ACCESSION(编号)具有唯一性和永久性
4、 VERSION(版本号)检索号、版本号
5、 KEYWORDS(关键词)描述序列,“ . ”表示没有任何描述内容
6、 SOURCE(数据来源)序列来源生物的简称,或分子类型
7、 REFERENCE (文献)与该数据有关的参考文献,按发表时间排名
8、 FEATURES(特性表)描述基因和基因的产物,以及与序列相关的生物学特性,其中包括
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)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Pytorch dataloader在加载最后一个batch时卡死的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
在日常工作中,PPT制作是常见的工作。这篇文章主要为大家详细介绍了如何利用Python自动生成PPT,文中的示例代码讲解详细,感兴趣的可以了解一下
这篇文章主要介绍了Python使用描述符实现属性类型检查,实例属性就是在一个类中将另一个类的实例作为该类的一个数属性,本文通过代码演示给大家介绍的非常详细,需要的朋友可以参考下
如何用Python计算BMI指数?如果经常健身或者对身体健康比较关注的朋友,应该比价了解BMI指数,BMI指数也就是身体质量指数,是用体重公斤数除以身高米数平方得出的数字,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。那我们怎样用Python实现计算BMI指数功能呢?
这篇文章主要介绍了超详细Python解释器新手安装教程,文中有非常详细的图文示例,对不会安装python解释器的小伙伴们很有帮助哟,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008