我正在尝试使用 biopython 下载由特定机构测序的生物列表中的所有蛋白质。我有与每个有机体相关的有机体名称和 BioProject;具体来说,我正在寻找分析在最近的一些基因组序列中发现的蛋白质。我想使用efetch以最友好的方式批量下载蛋白质文件。我最近尝试下载相关生物的所有蛋白质 FASTA 序列如下:
net_handle = Entrez.efetch(db="protein",
id=mydictionary["BioPROJECT"][i],
rettype="fasta")
每个生物体大约有 3000-4500 种蛋白质;因此,使用 esearch 并尝试一次提取每种蛋白质是不现实的。另外,我希望每个生物体都有一个包含其所有蛋白质的 FASTA 文件。
不幸的是,当我运行这行代码时,我收到以下错误:
urllib2.HTTPError: HTTP Error 400: Bad Request
.
它出现在我感兴趣的所有生物体中,我不能简单地在他们的核苷酸数据库中找到它们的基因组序列并下载“蛋白质编码序列”
如何以不会使 NCBI 服务器超载的方式获得我想要的这些蛋白质序列?我希望我可以复制我在 NCBI 的网络浏览器上可以做的事情:选择蛋白质数据库,搜索 Bioproject 编号,然后将所有找到的蛋白质序列保存到一个 fasta 文件中(在“发送到”下拉菜单)