Usage: pmid2bib <PMID>
Example: pmid2bib 13882203
@Article{CITEKEY,
author = {F. H. Crick and L. Barnett and S. Brenner and R. J. Watts-Tobin},
title = {General Nature of the Genetic Code for Proteins},
journal = {Nature},
year = 1961,
volume = 192,
pages = {1227--1232},
pmid = 13882203,
reprinturl = {https://doi.org/10.1038/1921227a0},
}
pmid2bib produces a nighly-formatted BibTeX entry given a PubMed
identifier (a PMID). You have to add the CITEKEY yourself
(e.g. Crick61). You may need to do some light editing of things that
the script isn't smart enough to do. For example, check for accented
characters on authornames, capitalization and italics (species names)
in titles, and your preferences for journal abbreviation.
The pmid and reprinturl fields in the entry are noncanonical
custom fields that I use in my own .bib files.
The script is rudimentary, with rudimentary rules. The goal is to get something close enough to save a lot of typing time, not to get every detail.
The script uses urllib.request to obtain an XML entry from PubMed,
and xml.etree.ElementTree to parse that XML. The script also doed
some light rule-based stuff to format the author names as
initials/surname (as "X. Y. Foo and A. B. Bar and Z. Baz"),
standardize capitalization in titles (including recognizing some
common species names to leave them uncapitalized - but you'll need to
add the \emph{} italics yourself), and switch in some of our most
commonly used journal abbreviations.
See the source code of the script itself (which is brief) for more detail on what and how it's formatting.