使用biopython的NCBIWWW时出错

2024-10-01 10:20:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用NCBIWWW来爆炸核苷酸序列

from Bio.Blast import NCBIWWW
my_query = "TGCGTGCCGTGCAATGTGCGT"
result_handle = NCBIWWW.qblast("blastn", "nt", my_query)
blast_result = open("my_blast.xml", "w") 
blast_result.write(result_handle.read())
blast_result.close()
result_handle.close()

这是第一次运行良好,但当我试图运行它几天后,我得到了一个错误:

^{pr2}$

我没有更改代码中的任何内容,所以我不明白发生了什么。 有什么问题吗?在

谢谢!在


Tags: fromimportclosemy序列resultquerybio
2条回答

我在使用blastn时也犯了同样的错误。 看起来NCBI已经从http转移到https(https://www.ncbi.nlm.nih.gov/home/develop/https-guidance.shtml)。如果你点击这个链接,你会发现你现在需要Biopython 1.67或更高版本才能使用NCBIWWW。我刚升级到biopython 1.68版本,这已经解决了我的问题,希望对你也有帮助。在

最近,当我试图在蛋白质数据库上使用qblast时,我收到了完全相同的错误消息。在

解决方法:

我去了biopythongithub,得到了qblast模块的源代码。在

https://github.com/biopython/biopython/blob/master/Bio/Blast/NCBIWWW.py

我在一个文本编辑器中打开它,并在末尾添加了一个简单的脚本

fasta_string = open("test500.fasta").read()

result_handle = qblast(
"blastp",
"swissprot",
fasta_string,
)
save_file = open("out.xml", "w")

save_file.write(result_handle.read())

save_file.close()

result_handle.close()

然后我运行了整个程序,得到了我之前得到的结果。请注意,您不再需要import语句了。事实上,如果你有他们就没用了。您现在正在脚本中定义函数。在

我不知道为什么现在这是一个问题,但NCBI最近确实做了一些格式更改,所以它可能与此有关。任何澄清将不胜感激,因为我知道这是一个脚本孩子的工作,而不是一个解决方案。在

相关问题 更多 >