Beschaffung von Daten aus PubMed mit python
Habe ich eine Liste von PubMed-Einträgen zusammen mit der PubMed-ID. Ich möchte ein python-Skript oder python verwenden, die akzeptiert eine PubMed-id als Eingabe und dann holt sich der Abstrakt aus der PubMed-website.
So weit ich gekommen bin über NCBI Eutilities und die importurl Bibliothek in Python, aber ich weiß nicht, wie ich gehen sollte, über das schreiben einer Vorlage.
Alle Zeiger geschätzt werden.
Danke,
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wow, ich war an einem ähnlichen Projekt arbeiteten mich nur eine Woche oder so vor!
Edit: ich vor kurzem aktualisiert den code nutzen BeautifulSoup. Ich habe meine eigene virtualenv für Sie, aber Sie können es mit pip.
Im Grunde, mein Programm dauert eine pubmed-ID, eine DOI oder eine text-Datei lines von pubmed-IDs und/oder DOIs, und packt Informationen über den Artikel. Es kann leicht gezwickt werden, für Ihre eigenen Bedürfnisse zu erhalten, die abstrakte, aber hier ist mein code:
Es gibt jetzt eine HTML-Datei auf Grundlage der Informationen, die Sie heruntergeladen haben. Hier ist die template.txt:
Wenn Sie es ausführen, wird das Programm Sie bitten, für den DOI oder die Pubmed-ID. Wenn Sie nicht liefern, wird es Lesen pmids.txt.Fühlen Sie sich frei den code zu benutzen wie Sie sehen, passen.
Mit Biopython's Modul namens Entrez, können Sie den abstract zusammen mit allen anderen Metadaten ganz einfach. Dies wird drucken Sie das abstract:
Und hier ist eine Funktion, die fetch-XML und zurück nur die Kurzfassung:
P. S. ich hatte tatsächlich das Bedürfnis, das zu tun diese Art von Sachen in eine echte Aufgabe, so organisierte ich den code in eine Klasse -sehen Sie diese wesentliche.
biopython
Pubmed-Artikel haben die form: http://www.ncbi.nlm.nih.gov/pubmed/?Id
Wenn Sie wissen, die id, dann Holen Sie die oben und Sie erhalten Zugang zu dem Artikel.
Die Zusammenfassung ist enthalten in einer Struktur wie :
Würden Sie dann brauchen Sie ein Werkzeug zum extrahieren, dass. Ich würde vorschlagen, mit : http://www.crummy.com/software/BeautifulSoup/bs4/doc/
Benötigen Sie noch ein tool, um tatsächlich Holen Sie sich das html. Für die, die ich verwenden würde phantom.js oder das beliebte Anfragen-Modul.
Ihren workflow würde gerne so etwas wie :
Scheint 'Muster' - Modul kann dies leicht tun:
HTML: