gpt4 book ai didi

python - BioPython:从 Blast 输出文件中提取序列 ID

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:24 24 4
gpt4 key购买 nike

我有一个 XML 格式的 BLAST 输出文件。它是 22 个查询序列,每个序列报告 50 个命中。我想提取所有 50x22 的匹配项。这是我目前拥有的代码,但它只从第一个查询中提取 50 次匹配。

from Bio.Blast import NCBIXM
blast_records = NCBIXML.parse(result_handle)
blast_record = blast_records.next()

save_file = open("/Users/jonbra/Desktop/my_fasta_seq.fasta", 'w')

for alignment in blast_record.alignments:
for hsp in alignment.hsps:
save_file.write('>%s\n' % (alignment.title,))
save_file.close()

有人对提取所有命中有任何建议吗?我想我必须使用对齐以外的东西。希望这是清楚的。谢谢!

乔恩

最佳答案

这应该得到所有记录。与原作相比的新颖之处在于

for blast_record in blast_records

这是一个 python 习惯用法,用于遍历“类列表”对象中的项目,例如 blast_records(检查 CBIXML module documentation 表明 parse() 确实返回了一个迭代器)

from Bio.Blast import NCBIXM
blast_records = NCBIXML.parse(result_handle)

save_file = open("/Users/jonbra/Desktop/my_fasta_seq.fasta", 'w')

for blast_record in blast_records:
for alignment in blast_record.alignments:
for hsp in alignment.hsps:
save_file.write('>%s\n' % (alignment.title,))
#here possibly to output something to file, between each blast_record
save_file.close()

关于python - BioPython:从 Blast 输出文件中提取序列 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1684470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com