Skip to content

Instantly share code, notes, and snippets.

@capsulecorplab
Forked from bonzanini/search_biopython.py
Created April 25, 2017 12:50
Show Gist options
  • Save capsulecorplab/b4474c13fd615d7459f2249dd50c0211 to your computer and use it in GitHub Desktop.
Save capsulecorplab/b4474c13fd615d7459f2249dd50c0211 to your computer and use it in GitHub Desktop.
Searching PubMed with Biopython
# you need to install Biopython:
# pip install biopython
# Full discussion:
# https://marcobonzanini.wordpress.com/2015/01/12/searching-pubmed-with-python/
from Bio import Entrez
def search(query):
Entrez.email = 'your.email@example.com'
handle = Entrez.esearch(db='pubmed',
sort='relevance',
retmax='20',
retmode='xml',
term=query)
results = Entrez.read(handle)
return results
def fetch_details(id_list):
ids = ','.join(id_list)
Entrez.email = 'your.email@example.com'
handle = Entrez.efetch(db='pubmed',
retmode='xml',
id=ids)
results = Entrez.read(handle)
return results
if __name__ == '__main__':
results = search('fever')
id_list = results['IdList']
papers = fetch_details(id_list)
for i, paper in enumerate(papers):
print("%d) %s" % (i+1, paper['MedlineCitation']['Article']['ArticleTitle']))
# Pretty print the first paper in full
#import json
#print(json.dumps(papers[0], indent=2, separators=(',', ':')))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment