1

我是 Biopython 的新手。使用此代码:

handle = Entrez.esearch(db="nuccore", term="complete", field="title", FILT="refseq", porgn="viruses", rettype='xml')
print Entrez.read(handle)[u'QueryTranslation']

我得到:

complete[Title]

但我期待这样的事情:

complete[Title] AND "viruses"[porgn]

(来自http://www.ncbi.nlm.nih.gov/nuccore搜索结果的查询翻译)

refseq 过滤器似乎也不起作用。我究竟做错了什么?提前致谢!

4

3 回答 3

1

根据当前的 NCBI 文档,没有选项 FILT 或 progrn - NCBI 可能默默地忽略它们(我个人更喜欢它们的明确错误消息)。

基于http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ESearch你现在可以做

>>> from Bio import Entrez
>>> handle = Entrez.esearch(db="nuccore", term="complete", field="title", rettype='xml')
>>> print Entrez.read(handle)[u'QueryTranslation']
complete[Title]

作为替代方案:

>>> from Bio import Entrez
>>> handle = Entrez.esearch(db="nuccore", term="complete[title]", rettype='xml')
>>> print Entrez.read(handle)[u'QueryTranslation']
complete[Title]

该字段选项(我很确定)是 NCBI 的一项新功能,但实际上并没有添加任何新功能。这似乎只对琐碎的搜索有意义。

为了进行您想要的复杂搜索,请执行以下操作:

>>> from Bio import Entrez
>>> handle = Entrez.esearch(db="nuccore", term="complete[title] AND viruses[porgn]", rettype='xml')
>>> print Entrez.read(handle)[u'QueryTranslation']
complete[title] AND viruses[porgn]

Biopython 教程中有这样的例子。另请参阅http://news.open-bio.org/news/2009/06/ncbi-einfo-biopython/(现在也在 Biopython 教程中)。

于 2012-08-30T16:11:37.157 回答
0

我认为您需要编辑term关键字参数。你需要包括AND viruses[porgn]

>>> handle = Entrez.esearch(db="nuccore", term="complete AND viruses[porgn]", field="title", FILT="refseq", rettype='xml')
>>> print Entrez.read(handle)[u'QueryTranslation']
complete[Title] AND viruses[porgn]
于 2012-08-29T17:07:07.500 回答
0

要添加 RefSeq 要求,您可以执行

>>> from Bio import Entrez
>>> handle = Entrez.esearch(db="nuccore", term="complete[title] AND refeq[filter] AND viruses[porgn]", rettype='xml')
于 2013-08-13T20:34:10.767 回答