gpt4 book ai didi

python - 下载多种生物的蛋白质序列

转载 作者:行者123 更新时间:2023-11-28 17:45:29 25 4
gpt4 key购买 nike

我正在尝试使用 biopython 下载由特定机构测序的生物体列表中的所有蛋白质。我有生物体名称和与每个生物体相关的 BioProject;具体来说,我希望分析在最近的一些基因组序列中发现的蛋白质。我想以最友好的方式使用 efetch 批量下载蛋白质文件。我最近尝试下载相关生物体的所有蛋白质 FASTA 序列如下:

  net_handle = Entrez.efetch(db="protein",
id=mydictionary["BioPROJECT"][i],
rettype="fasta")

每种生物大约有 3000-4500 种蛋白质;因此,使用 esearch 并尝试一次提取每种蛋白质是不现实的。另外,我希望每个生物体都有一个包含其所有蛋白质的 FASTA 文件。

不幸的是,当我运行这行代码时,我收到以下错误:urllib2.HTTPError:HTTP 错误 400:错误请求

似乎对于我感兴趣的所有生物,我不能简单地在他们的核苷酸数据库中找到他们的基因组序列并下载“蛋白质编码序列”

如何以不会使 NCBI 服务器重载的方式获得我想要的这些蛋白质序列?我希望我可以复制我在 NCBI 的网络浏览器上可以做的事情:选择蛋白质数据库,搜索 Bioproject 编号,然后将所有找到的蛋白质序列保存到一个 fasta 文件中(在“发送到”下拉菜单下菜单)

最佳答案

尝试从 PATRIC 下载序列的 FTP,这是一个金矿,首先它组织得更好,其次,数据比 NCBI 干净很多。顺便说一句,PATRIC 得到了 NIH 的支持。

PATRIC 包含大约 15000 多个基因组,并在单独的文件中提供它们的 DNA、蛋白质、蛋白质编码区的 DNA、EC、通路、genbank。 super 方便。看看你自己:

ftp://ftp.patricbrc.org/patric2 .

我建议您先从所有生物体中下载所有需要的文件,然后在您的硬盘上拥有所有这些文件后,再选择您需要的文件。以下python脚本一次性下载PATRIC提供的ec号注解文件(如果有proxy,需要在评论区配置):

from ftplib import FTP
import sys, os

#######if you have proxy

####fill in you proxy ip here
#site = FTP('1.1.1.1')

#site.set_debuglevel(1)
#msg = site.login('anonymous@ftp.patricbrc.org')

site = FTP("ftp.patricbrc.org")
site.login()
site.cwd('/patric2/current_release/ec/')

bacteria_list = []
site.retrlines('LIST', bacteria_list.append)

output = sys.argv[1]
if not output.endswith("/"):
output += "/"

print "bacteria_list: ", len(bacteria_list)


for c in bacteria_list:

path_name = c.strip(" ").split()[-1]

if "PATRIC.ec" in path_name:

filename = path_name.split("/")[-1]
site.retrbinary('RETR ' + path_name, open(output + filename , 'w').write)

关于python - 下载多种生物的蛋白质序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18794318/

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