gpt4 book ai didi

python - 无法让 entrez 使用 biopython 返回网格项

转载 作者:行者123 更新时间:2023-12-05 09:24:19 26 4
gpt4 key购买 nike

快速提问 -- 第一次使用 biopython,我只是想根据教程快速尝试一些真正快速的东西。

我似乎无法让 Entrez.efetch() 返回给定文章的网格术语,唯一的方法似乎是我正在做的,即:

handle = Entrez.efetch(db="pubmed", id=pmids, rettype="medline", retmode="xml")
records = Entrez.read(handle)

其中 pmids 是pubmed ID的列表

这将返回以下内容:http://pastie.org/5459700

我尝试根据 http://www.ncbi.nlm.nih.gov/books/NBK25499/ 调整 rettype 和 retmode 参数没有运气。有什么明显的我遗漏的吗?

最佳答案

这对我有用:

from Bio import Entrez # install with 'pip install biopython'
from Bio.Entrez import efetch, read
Entrez.email = "your@email.com" # register your email

def get_mesh(pmid):
# call PubMed API
handle = efetch(db='pubmed', id=str(pmid), retmode='xml')
xml_data = read(handle)[0]
# skip articles without MeSH terms
if u'MeshHeadingList' in xml_data['MedlineCitation']:
for mesh in xml_data['MedlineCitation'][u'MeshHeadingList']:
# grab the qualifier major/minor flag, if any
major = 'N'
qualifiers = mesh[u'QualifierName']
if len(qualifiers) > 0:
major = str(qualifiers[0].attributes.items()[0][1])
# grab descriptor name
descr = mesh[u'DescriptorName']
name = descr.title()

yield(name, major)

# example output
for name, major in get_mesh(128):
print '{}, {}'.format(name, major)

关于python - 无法让 entrez 使用 biopython 返回网格项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13652230/

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