2017-07-25 463 views
-1

我想从Python中收集来自Entrez的蛋白质FASTA序列2.7。我正在寻找其名称中含有关键字“terminase”和“large”的任何蛋白质。到目前为止,我得到这个代码:基于Python的关键字获取蛋白质FASTA序列

from Bio import Entrez 
Entrez.email = "[email protected]" 


searchResultHandle = Entrez.esearch(db="protein", term="terminase large", retmax=1000) 
searchResult = Entrez.read(searchResultHandle) 
ids = searchResult["IdList"] 

handle = Entrez.efetch(db="protein", id=ids, rettype="fasta", retmode="text") 
record = handle.read() 

out_handle = open('myfasta.fasta', 'w') 
out_handle.write(record.rstrip('\n')) 

但是它可以让我从各种生物的几个terminases,而我只需要terminase形式噬菌体(specificly病毒[taxid 10239],宿主菌我已经成功地得到。 nuccore加入IDS从我位数的在NCBI的病毒,但我不知道如何这两个信息结合 标识文件看起来是这样的:

NC_001341 
NC_001447 
NC_028834 
NC_023556 
... 

我需要访问的每GB的文件每个ID并在其中搜索我想要的蛋白质?

+0

嗨,尝试在生物信息学的网站上张贴这样的:https://bioinformatics.stackexchange.com/ – Plasma

+0

我不能在40分钟内张贴:/连接这些网站某种方式? – tahunami

回答

1

找到我正在寻找的东西。在:

searchResultHandle = Entrez.esearch(db="protein", term="terminase large", retmax=1000) 

我说:

searchterm = "(terminase large subunit AND viruses[Organism]) AND Caudovirales AND refseq[Filter]" 
searchResultHandle = Entrez.esearch(db="protein", term=searchterm, retmax=6000) 

这norrowed了我搜索到所需的病毒。当然,它并不是由主机过滤,而是由分类群组过滤的,但这对我的工作已经足够了。

谢谢@Llopis以获得更多帮助