gpt4 book ai didi

python - 如何导航 Biopython Entrez efetch 的结果?

转载 作者:行者123 更新时间:2023-12-01 05:03:09 27 4
gpt4 key购买 nike

当我运行以下命令时;

from Bio.Blast import NCBIWWW
from Bio import Entrez, SeqIO
Entrez.email = "A.N.Other@example.com"
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"]

我知道必须有一种更简单的方法来索引这些结果中的元素。如果有人可以帮我解决这个问题,我将非常感激。

最佳答案

如果您想要的是序列,那么不要以“xml”格式查询它,而是以(例如)FASTA format 查询它。 ,通过更改 rettype 参数。然后就像使用 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="以 genbank 格式下载它gb" 并使用 "gb" 进行解析。您可以在示例 here 中了解更多信息。 .

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

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