2017-07-25 467 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以獲得更多幫助