## this little script shows off the use of the pubmed API through bioconductor ## requires installing Biopython (using pip) ## also requires installing the DTD files for each of the Entrez API calls, ## but the instructions for this are given when you run the script ## useful list of Entrez databases that can be queried through API # pmc_pubmed PubMed citations for these articles # pmc_refs_pubmed PubMed article citing PMC article # pmc_pmc_cites PMC articles that given PMC article cites # pmc_pmc_citedby PMC article citing given PMC article # pubmed_pubmed Calculated set of PubMed citations similar to the selected article(s) retrieved using a word weight algorithm. # pubmed_pubmed_refs Citation referenced in PubMed article. Only valid for PubMed citations that are also in PMC. from Bio import Entrez Entrez.email = "mcfrank@stanford.edu" def get_abstract(pmid): handle = Entrez.efetch(db='pubmed', id=pmid, retmode='text', rettype='abstract') return handle.read() def get_links_id(pmid): link_list = [] links = Entrez.elink(dbfrom="pubmed", id=pmid, linkname="pubmed_pubmed") record = Entrez.read(links) records = record[0][u'LinkSetDb'][0][u'Link'] for link in records: link_list.append(link[u'Id']) return link_list def get_links_term(term): links = Entrez.esearch(db="pubmed", retmax = 1000, term=term) record = Entrez.read(links) link_list = record[u'IdList'] return link_list ### MAIN ----------------------- print(get_links_term("Saffran JR[Author] ")) print "----------------------------" print(get_abstract("26113833")) print "----------------------------" print(get_links_id("8943209"))