当我运行以下内容时;

from Bio.Blast import NCBIWWW
from Bio import Entrez, SeqIO
Entrez.email = "[email protected]"
handle = Entrez.efetch(db="Protein", id= "75192198", rettype = "xml")
record = Entrez.read(handle)


我找回一个“ Bio.Entrez.Parser.DictionaryElement”,它确实很难搜索。如果要说“获取”,请输入类似以下内容:

record["Bioseq-set_seq-set"][0]["Seq-entry_seq"]["Bioseq"]["Bioseq_inst"]["Seq-inst"]["Seq-inst_seq-data"]["Seq-data"]["Seq-data_iupacaa"]["IUPACaa"]


我知道必须有一种更简便的方法来为这些结果中的元素建立索引。如果在那里有人可以帮助我,我将非常感激。

最佳答案

如果需要的是序列,则可以通过更改rettype参数而不是以“ xml”格式查询它,而以(例如)FASTA format查询它。然后,就像使用SeqIO进行解析一样简单。

handle = Entrez.efetch(db="Protein", id= "75192198", rettype = "fasta")

for r in SeqIO.parse(handle, "fasta"):
    print r.id, r.seq


之所以起作用是因为handle的内容如下所示:

print handle.read()
# >gi|75192198|sp|Q9MAH8.1|TCP3_ARATH RecName: Full=Transcription factor TCP3
# MAPDNDHFLDSPSPPLLEMRHHQSATENGGGCGEIVEVQGGHIVRSTGRKDRHSKVCTAKGPRDRRVRLS
# APTAIQFYDVQDRLGFDRPSKAVDWLITKAKSAIDDLAQLPPWNPADTLRQHAAAAANAKPRKTKTLISP
# PPPQPEETEHHRIGEEEDNESSFLPASMDSDSIADTIKSFFPVASTQQSYHHQPPSRGNTQNQDLLRLSL
# QSFQNGPPFPNQTEPALFSGQSNNQLAFDSSTASWEQSHQSPEFGKIQRLVSWNNVGAAESAGSTGGFVF
# ASPSSLHPVYSQSQLLSQRGPLQSINTPMIRAWFDPHHHHHHHQQSMTTDDLHHHHPYHIPPGIHQSAIP
# GIAFASSGEFSGFRIPARFQGEQEEHGGDNKPSSASSDSRH


如果您仍然需要其他一些元信息(例如基因中的转录因子结合位点或生物的分类法),则还可以通过提供参数rettype="gb"并使用"gb"进行解析,以genbank格式下载它。 。您可以在示例here中了解有关此内容的更多信息。

关于python - 如何浏览Biopython Entrez提取的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25623954/

10-13 09:51