Spenn.fasta文件总共约14M行,读取该文件,并将染色体号和对应的序列做成字典。两种方法,测试运行速度差别很大。
1、每读一行给字典赋一个值
fl = open('Spenn.fasta')
dic1= {}
for i in fl:
if '>' in i:
chro = i.strip().split('-')[1]
dic1[chro] = ''
else:
dic1[chro] = dic1[chro] + i.strip()
print('DONE')
这个方法用时超长。
2、读完一整条fasta再赋值
fl = open('Spenn.fasta')
dic1= {}
chro = fl.readline().strip().split('-')[1]
seq = ''
for i in fl:
if '>' in i:
dic1[chro] = seq
chro = i.strip().split('-')[1]
seq = ''
else:
seq += i.strip()
dic1[chro] = seq #记得最后还要再赋一次值
用时大概几秒。
网友评论