2016-05-09 8 views
0

я пытаюсь, чтобы получить результаты поиска, используя следующий код для запроса из PubMed через biopythonФиксированное число результатов biopython

from Bio import Entrez 
from Bio import Medline 

Entrez.email = "[email protected]" 
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

Вы только, кажется, меняете предел esearch, но оставите только efetch (а NCBI по умолчанию не превышает 10000). Вам нужно использовать аргументы retstart и retmax.

Смотрите «Поиск и скачивание рефератов используя историю» пример в Biopython Tutorial, http://biopython.org/DIST/docs/tutorial/Tutorial.html или http://biopython.org/DIST/docs/tutorial/Tutorial.pdf

 Смежные вопросы

  • Нет связанных вопросов^_^