3 votes

BioPython Pubmed Eutils url ?

J'essaie d'exécuter des requêtes sur le service Eutils de Pubmed. Si je les exécute sur le site web, j'obtiens un certain nombre d'enregistrements, en l'occurrence 13126 ( lien vers pubmed ).

Il y a quelque temps, j'ai assemblé un script en python pour construire une requête permettant de faire à peu près la même chose, et l'url résultante renvoie le même nombre de résultats ( lien vers Eutils résultat).

Bien sûr, n'ayant pas de formation formelle en programmation, c'était un peu compliqué, alors j'essaie de faire la même chose en utilisant Biopython. Je pense que le code suivant devrait faire la même chose, mais il renvoie un plus grand nombre de résultats, 23303.

from Bio import Entrez
Entrez.email = "A.N.Other@example.com"
handle = Entrez.esearch(db="pubmed", term="stem+cell[All Fields]",datetype="pdat", mindate="2012", maxdate="2012")
record = Entrez.read(handle)
print(record["Count"])

Je suis presque sûr que c'est dû à une subtilité dans la façon dont l'url est générée, mais je n'arrive pas à trouver comment voir quelle url est générée par Biopython. Quelqu'un peut-il me donner des indications ?

Gracias.

EDIT :

Cela a quelque chose à voir avec la façon dont l'url est générée, car je peux retrouver le nombre original de résultats en modifiant le code pour inclure des guillemets doubles autour du terme de recherche, comme suit :

handle = Entrez.esearch(db='pubmed', term='"stem+cell"[ALL]', datetype='pdat', mindate='2012', maxdate='2012')

Je suis toujours intéressé de savoir quelle url est générée par Biopython car cela m'aidera à comprendre comment je dois structurer le terme de recherche lorsque je veux faire des recherches plus compliquées.

1voto

peterjc Points 1164

Vous avez déjà résolu ce problème (Entrez aime les doubles guillemets explicites autour des termes de recherche combinés), mais actuellement l'URL générée n'est pas exposée via l'API. L'astuce la plus simple consisterait à modifier le fichier Bio/Entrez/__init__.py pour ajouter une instruction d'impression à l'intérieur du fichier _open función.

Mise à jour : Les versions récentes de Biopython enregistrent maintenant l'URL comme un attribut de la poignée retournée, c'est-à-dire que dans cet exemple, essayez de faire print(handle.url)

1voto

buhtz Points 2072
handle = Entrez.esearch(db="pubmed", term="stem+cell[All Fields]",datetype="pdat", mindate="2012", maxdate="2012")
print(handle.url)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X