【发布时间】:2017-01-10 11:14:35
【问题描述】:
我有一个工作代码,它在 ncbi 服务器上执行 BLAST,然后以 xml 格式返回序列。它正在工作,但我想避免制作新文件并直接在终端上打印 BLAST 结果。有没有一个好的解决方案来做到这一点?我粘贴在我的代码下面,它正在工作,但它正在创建一个新文件。
result_handle = NCBIWWW.qblast(
"blastx",
"nr",
sequences,
entrez_query = organism)
save_file = open("BLAST.xml", "w")
save_file.write(result_handle.read())
save_file.close()
result_handle.close()
result = open("BLAST.xml", "r")
records = NCBIXML.parse(result)
for i, record in enumerate(records):
if record.alignments == []:
print ("There is no BLAST result")
else:
for align in record.alignments:
print (align.hit_id)
break
我想做这样的事情:
result = result_handle.read()
record = NCBIXML.parse(result)
for i, record in enumerate(record):
但它不起作用。
提前谢谢你!
【问题讨论】:
-
“它不工作” 不是有效的问题陈述。请edit您的问题并准确解释发生了什么,包括任何错误或回溯的全文。另外,请确保您的示例代码是任何人都可以运行的minimal reproducible example,并且不依赖于先前定义的变量,例如
sequences或organism。您的导入语句也应该包括在内。
标签: python xml file biopython blast