我正在尝试从三个fasta文件中提取标头并比较它们的标头。但是,它仅适用于较小的文件。当文件大小为几GB时,python脚本会自行终止。
我的代码是:
from Bio import SeqIO
def get_header(filename):
parts = SeqIO.parse(filename, 'fasta')
headers = map(lambda x: x.id, parts)
return set(headers)
bact1 = get_header('file1.fasta')
bact2 = get_header('file2.fasta')
bact3 = get_header('file3.fasta')
print 'Only in bact1:', len(bact1 - bact2 - bact3)
print 'Only in bact2:', len(bact2 - bact1 - bact3)
print 'Only in bact3:', len(bact3 - bact1 - bact2)
如果你能表现出洞察力,我将不胜感激。