什么是GBFF文档
GBFF文档是GenBank数据库系统中相关信息的企业,由多条编码序列构成,具体内容由字段名构成,每个字段包含一个关键字和实际内容。编码序列以“//”作为结束标识,并包含诸多信息,如编码序列的长短、种类、职业来源以及上传时间等。

从GBFF文件上直接获取CDS编码序列实例
通过Python代码实现从GBFF文件中直接获取CDS编码序列实例,具体代码如下:
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().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+",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().split()
e=''.join(i for i in tem)
g[c].append(e)
else:
pass
elif f.readline().strip().split():
continue
else:
break
with open(OUT_FILE_PATH,'w') as f:
for i,o in d.items():
G=''.join(g)
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)
通过以上代码实现了从GBFF文件中直接获取CDS编码序列的功能。
总结
本文详细介绍了GBFF文档和Python如何通过GBFF文件获取CDS编码序列的实现方法。希望对读者有所帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6935.html
