School of
Electrical Engineering
and Computer Science


RefSense is the name of both a web interface to PubMed, and a set of command line tools for accessing PubMed. (Note: RefSense was previously distributed as 'Biblio'.)

The web interface is currently broken. It used to provide easy access to PubMed's data as well as some useful tools not found at the actual PubMed site.

The command line tools allow you to search PubMed from a terminal (such as xterm), retrieve web pages or PDFs, find related articles, convert to BibTeX (convenient for LaTeX users), and much more by only using a keyboard. And you can get convenient word completion on titles, author names, etc, as well!


Download version 1.2, distributed under the GNU Public License.

This release adds a couple of simple features and a fix of a serious bug in taxonomy.

The source code for RefSense can be found at GitHub.


You need the following Perl packages installed to make RefSense work:
  • CGI
  • LWP
  • XML::Simple

Previous versions

Version 1.0 was the first stable release.

Versions 0.2, 0.3, and 0.4 are archived, but contain bugs. Version 0.5 was quite healthy, but lacked some nice features. There is a sketchy list of changes describing the evolution of RefSense.

Included commands

The following commands are available:
Search Medline and have article identifiers (PMID) returned.
Take PMIDs (on the command line or from STDIN) and retrieve the entries as text in a couple of formats, including partial HTML for building web pages with.
Like pmid2text, but you supply a format string to specify the citations your way.
Works like pmid2text, but writes BibTeX records to STDOUT.
Retrieve DOI and other identifiers associated with an article at PubMed.
This is a simple script that essentially executes pmsearch search terms | pmid2text -a.
Download sequences from PubMed that are refereced, linked, to an article.
Retrieve a list of articles related to your input PMIDs.
Interface RefSense commands with the completion system in Bash.
Completion on journal names in Bash.
Retrieve a URL for an article and send it to your web browser.
Direct you browser to Connotea with a request to add the article with the PMID you supply.
Ask NCBI's taxonomy database for information about a species name. The output can be understood by taxtree and lca (below).
Collect the output from taxonomy and translate it to a phylogeny in Newick format.
Reads output from taxonomy, extracts lineage information, and returns the last common ancestor for the given species.
Please use the '-u' flag to get full descriptions (does not work with pubmed), see also below.


Here is an example of what you can do. How many papers were published by von Heijne in 2002?
>pmsearch -c year=2002 author=von+Heijne
How many since 2000?
>pmsearch -c year=2000- author=von+Heijne

To list them:

>pubmed year=2000- author=von+Heijne
11976343   Vilar M et al (2002) "Insertion and topology of a plant viral
           movement protein in the endoplasmic reticulum membrane."
           J Biol Chem 277(26), 23447--23445

12441395   Nilsson J, Persson B, Von Heijne G (2002) "Prediction of
           partial membrane protein topologies using a consensus approach."
           Protein Sci 11(12), 2974--2978
[snip, 47 more]
There are more examples!

Published by: Lars Arvestad <>
Updated 2016-12-12