我是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上的搜索结果的QueryTranslation)
refseq过滤器似乎也不起作用。我究竟做错了什么? 提前谢谢!
答案 0 :(得分: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教程中)。
答案 1 :(得分: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]
答案 2 :(得分:0)
要添加RefSeq要求,您也可以
>>> from Bio import Entrez
>>> handle = Entrez.esearch(db="nuccore", term="complete[title] AND refeq[filter] AND viruses[porgn]", rettype='xml')