对比两种用python3读取fasta文件的方法

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   #记得最后还要再赋一次值

用时大概几秒。

你可能感兴趣的:(对比两种用python3读取fasta文件的方法)