固定数量的结果biopython
Fixed number of results biopython
我正在尝试使用以下代码从 pubmed 通过 biopython 检索搜索结果
from Bio import Entrez
from Bio import Medline
Entrez.email = "A.N.iztb@bobxx.com"
LIM = 3
def search(Term):
handle = Entrez.esearch(db='pmc', term=Term, retmax=100000000)
record = Entrez.read(handle)
idlist = record["IdList"]
handle = Entrez.efetch(db='pmc', id=idlist, rettype="medline", retmode="text")
records = Medline.parse(handle)
return list(records)
mydic=search('(pathological conditions, signs and symptoms[MeSH Terms]) AND (pmc cc license[filter]) ')
print(len(mydic))
无论我尝试多少次,输出结果都是 10000。尝试了不同的查询,但我仍然得到 10000。当我通过浏览器手动检查有多少结果时,我得到了随机数。
到底出了什么问题,如何确保我获得最大的结果?
您似乎只是在更改 esearch
限制,但不要理会 efetch
(而且 NCBI 似乎默认限制为 10000)。您需要使用 retstart
和 retmax
参数。
请参阅 Biopython 教程中的“使用历史搜索和下载摘要”示例,http://biopython.org/DIST/docs/tutorial/Tutorial.html or http://biopython.org/DIST/docs/tutorial/Tutorial.pdf
我正在尝试使用以下代码从 pubmed 通过 biopython 检索搜索结果
from Bio import Entrez
from Bio import Medline
Entrez.email = "A.N.iztb@bobxx.com"
LIM = 3
def search(Term):
handle = Entrez.esearch(db='pmc', term=Term, retmax=100000000)
record = Entrez.read(handle)
idlist = record["IdList"]
handle = Entrez.efetch(db='pmc', id=idlist, rettype="medline", retmode="text")
records = Medline.parse(handle)
return list(records)
mydic=search('(pathological conditions, signs and symptoms[MeSH Terms]) AND (pmc cc license[filter]) ')
print(len(mydic))
无论我尝试多少次,输出结果都是 10000。尝试了不同的查询,但我仍然得到 10000。当我通过浏览器手动检查有多少结果时,我得到了随机数。
到底出了什么问题,如何确保我获得最大的结果?
您似乎只是在更改 esearch
限制,但不要理会 efetch
(而且 NCBI 似乎默认限制为 10000)。您需要使用 retstart
和 retmax
参数。
请参阅 Biopython 教程中的“使用历史搜索和下载摘要”示例,http://biopython.org/DIST/docs/tutorial/Tutorial.html or http://biopython.org/DIST/docs/tutorial/Tutorial.pdf