首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Biopython控制术语爆炸

使用Biopython控制术语爆炸
EN

Stack Overflow用户
提问于 2021-02-24 13:58:40
回答 1查看 79关注 0票数 0

在对Medline/PubMed进行Biopython搜索时,我找不到有关如何控制术语爆炸的文档。

例如,如果我在PubMed上搜索surgery, oral [MH],它会找到69,926个匹配的出版物。(据说PubMed可以自动分解术语。)

https://pubmed.ncbi.nlm.nih.gov/?term=surgery%2C+oral+%5BMH%5D&sort=date&show_snippets=off

但下面的代码仅返回8561个发布的计数。更令人费解的是,输出中的翻译堆栈似乎声称该术语已爆炸。

代码语言:javascript
复制
import Bio.Entrez as Entrez
import pprint

search_handle = Entrez.esearch( 
                    db = "pubmed", 
                    term = "surgery, oral [MH]", 
                    rettype = 'uilist', 
                    retmax = 1,
                    )
search_results = Entrez.read(search_handle)
search_handle.close()
pprint.pprint( search_results.items() )

下面是输出:

代码语言:javascript
复制
[(u'Count', '8561'),
 (u'RetMax', '1'),
 (u'IdList', ['33499855']),
 (u'TranslationStack',
  [{u'Count': '8561', u'Field': 'MeSH Terms', u'Term': '"surgery, oral"[MeSH Terms]', u'Explode': 'Y'}, 'GROUP']),
 (u'TranslationSet',
  [{u'To': '"surgery, oral"[MeSH Terms]', u'From': 'surgery, oral[MH]'}]),
 (u'RetStart', '0'),
 (u'QueryTranslation', '"surgery, oral"[MeSH Terms]')]

如何强制Biopython要求Medline分解该术语?这是Biopython 1.75。我只能使用Python 2.7。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-02-27 20:46:05

解决方案出奇的简单:

只需去掉搜索词中的逗号,:使用term="surgery oral [MH]"而不是term="surgery, oral [MH]"执行搜索。

使用前一个搜索,我现在得到的计数是69945 -与我在PubMed网页上搜索surgery,oralmh时得到的数字相同。

后一个搜索词导致当前的计数为8561。

如果仔细查看输出,就会发现原来的搜索词被翻译成了"surgery, oral"[MeSH Terms]。在PubMed上输入该字符串(包括"引号)也会给出8561个结果- MeSH术语只是mh的长形式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66345454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档