我有一个序列ID列表,比如
Bob
Sara
Jess
和包含所有这些序列的fasta格式化文件。我想以与列表中相同的顺序从fasta文件中检索它们。下面的脚本在文件中看到序列后立即写入序列,因此它与列表中的顺序不完全相同。您能否建议如何更改它以按顺序检索seq-s?
from Bio import SeqIO
setA=set()
f1=open('my_list.csv','r')
lines=f1.readlines()
for line in lines:# transcripts
listA = line.rstrip('\n').split()
setA.add(listA[0])
input_file = open('all_cds.fa','r')
output_file = open('my_cds.fa','a')
line_width = 60
for key in SeqIO.parse(input_file, 'fasta'):
contig_name = key.name
if key.name in setA:
output_file.write(str('>' + (key.id)) + '\n')
for i in xrange(0,len(key.seq),line_width):
output_file.write(str(key.seq[i:i+line_width]) + '\n')
output_file.close()
input_file.close()