固定数量的结果biopython

时间:2016-05-09 17:02:20

标签: python bioinformatics 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.当我通过浏览器手动检查多少结果时,我得到随机数。

究竟出了什么问题以及如何确保我获得最大的结果?

1 个答案:

答案 0 :(得分:2)

您似乎只是在更改esearch限制,但仅保留efetch(并且NCBI似乎默认为10000的限制)。您需要使用retstartretmax参数。

请参阅Biopython教程中的“使用历史记录搜索和下载摘要”示例,http://biopython.org/DIST/docs/tutorial/Tutorial.htmlhttp://biopython.org/DIST/docs/tutorial/Tutorial.pdf