Scientific Software Favourites

by levien on ma 23 mei 2011 // Posted in misc // under

Here’s a little list of software I regularly use for science-related work.

Zotero A highly useful reference manager implemented as a Firefox plugin (although there’s now also a Standalone-version, which works with Chrome, Safari and, well, stand-alone ;-). Especially useful are its features to retrieve citations and PDFs while browsing, and its capability to scan a PDF for DOI links and other metadata and retrieve the relevant citation. It offers plugins for easy integration with OpenOffice.org or MS Office, and can of course also be used with LaTeX/BibTeX. Its main drawback is that speed and memory use tend to suffer when your library becomes too big.
Homepage: http://www.zotero.org

Mendeley Desktop
A cross-platform desktop program to manage articles (both references and PDFs) with a slick iTunes-ish interface and a tonne of features. It is coupled to an optional online-service for storing, syncing and sharing research papers. And of course it also comes with plugins for browsers, OpenOffice.org and MS Office, and it can even automagically sync all references from your Zotero library! Further useful features include easy import of PDFs and many citation formats, as well as the ability to annotate and automatically rename PDF-files. Its only drawbacks: it isn’t open-source, it has a pretty large footprint (>75 Mb), and it’s not as easy to install as Zotero on a machine on which you do not have administrator rights. It’s much faster than Zotero though.
Homepage: http://www.mendeley.com

JabRef
Another reference manager. Like Zotero and Mendeley Desktop it is platform-independent. However contrary to Zotero, JabRef is a stand-alone Java application that natively uses the BibTeX format. Of course it can’t beat Zotero and Mendeley’s ease of use when it comes to collecting citations online. But for offline use it’s a great deal faster than Zotero and smaller than Mendeley, and you can run it almost anywhere. It’s therefore useful for creating and maintaining BibTeX libraries. JabRef is able to import a large number of citation formats, and you can simply drag-and-drop a collection of files into a library. As with Mendeley, this makes it quite useful if you want to collect a lot of separate RIS, EndNote, BibTeX and other citation files into a single library (which you can subsequently import into Zotero or another program if you wish). It automagically detects and marks duplicates when you import citations. (Note however that the default behaviour for BibTeX files is Open rather than Import so you may have to use the “Append Database” function to import .bib-files, which is a bit annoying.)
Ubuntu-package: jabref Homepage: http://jabref.sourceforge.net

Gnuplot
A lightning-fast and very versatile command-driven 2D/3D/4D plotting and fitting tool. It has a somewhat steep learning-curve, but is very useful for scripted plotting. Also, due to its memory efficiency and speed it can easily plot very large datasets. Can output many graphics formats, including PostScript/EPS, SVG and PNG. In the past I generally created EPS plots with set terminal postscript eps color and used epstopdf (see below) to convert the output to PDF (e.g. for inclusion in pdflatex). However, recently I’ve started mostly using the newer pdfcairo, svgcairo and pngcairo terminals, which do nice rendering and allow for easy post-processing in e.g. Inkscape (see below). For big plots I still use the postscript driver through, as it is much faster and uses only a fraction of the memory required by the Cairo-based drivers…
Ubuntu-package: gnuplot
Homepage: http://www.gnuplot.info
Useful tips and examples:
http://t16web.lanl.gov/Kawano/gnuplot/index-e.html

ZunZun online function-fitting
For fitting a simple function to some data-points, it will often suffice to use either the trendline-function of spreadsheets like Excel and OpenOffice.org Calc, or Gnuplot’s fit-function. But function-fitting in spreadsheets is rather limited, and even Gnuplot seems to have trouble with functions that have a large parameter-space. After many frustrating hours of trying to fit polynomial functions to a large 3D dataset with both Gnuplot and R, I tried the free and Python-based online service ZunZun. You can choose from a huge array of pre-defined functions, and somewhat to my initial surprise the resulting fits are rather good! ZunZun also produces a useful PDF-report of each fit.

epstopdf
Useful little program to convert EPS-files (Encapsulated PostScript, generated e.g. by plotting-programs) to PDF (e.g. for inclusion in pdflatex or editing in Inkscape). Alternatively you can try Ghostscript’s ps2pdf with the option -dEPSCrop, although this seems to be missing and/or broken in some versions.
Ubuntu-package: texlife-extra-utils
Homepage: http://www.ctan.org/tex-archive/support/epstopdf/

Inkscape
Of course this excellent multi-platform vector drawing program is not technically a scientific package. But it is very useful for drawing diagrams and other figures. Moreover, its ability to import and export PDF make it a very useful tool for editing (e.g. annotating, combining, cropping) graphs generated by plotting programs. Also very useful for lifting graphs from PDF documents, for instance when making a presentation or for digitising plots (see below). ;-)
Ubuntu-package: inkscape
Homepage: http://www.inkscape.org/

Engauge plot and map digitiser
Plot digitisers are very useful tools that allow you to extract data-points from plots. Especially when teaching I regularly want to use data from old articles, that has only only been published in the form of a figure. In such cases you can scan the figure or extract it from a PDF-file using e.g. pdfimages or Inkscape. The rest is simply a matter of cropping and cleaning up the image if needed (e.g. with The GIMP), loading it into Engauge, specifying the axes and either manually or automagically extracting the data-points from the graph. You can also use this program to digitise geographical coordinates and lines from a map image. Engauge is available for Linux, Windows, and a MacOS X port is available here.
Ubuntu-package: engauge-digitizer
Homepage: http://digitizer.sourceforge.net/
Alternative: WebPlotDigitizer (not as full-featured as Engauge, but can be run online from any computer!)
Alternative: Plot Digitizer (Java application, so also runs on Windows and Mac)
Alternative: g3data

Kile
Kile is my favourite editor for writing LaTeX documents on Linux. Some of its nice features include easy management of multi-file projects, a structural “bookmark” view of your document, one-click PDF creation, auto-completion for LaTeX commands and (even cross-document) references, and a nice GUI for inserting markup commands and special characters (which saves me having to look them up every time I need them). Of course it also includes a spell-checker. (If you prefer an editor that relies less heavily on the KDE libraries, try Texmaker.) Kile is quite similar to the popular TeXnicCenter for Windows. Note: Spell-checking in Kile may be partially broken in current versions, see https://bugs.kde.org/show_bug.cgi?id=190906 As a workaround on Lucid, you could try downloading the latest version of latex.xml and putting it in ~/.kde/share/apps/katepart/syntax/ (Just don’t forget to delete it again at the next distribution upgrade!) Note: If Kile seems painfully slow (e.g. on current Ubuntu versions), try starting it with the commandline-option -graphicssystem raster
Ubuntu-package: kile
Homepage: http://kile.sourceforge.net
Alternative: TeXnicCenter (only for Windows)
Alternative: Texmaker or TexMakerX(similar to Kile but multi-platform, based on Qt)
Alternative: Gummi (lightweight editor based on GTK)

natbib
For ages I couldn’t find a BibTeX style that matched my preferred citation style. I don’t particularly like the default BibTeX numerical references and the use of square brackets. I prefer name and year in normal parenthesis, as is common in biology. Just when I was about to give up searching, a befriended Astrophysicist pointed out to me that the journal Astronomy & Astrophysics uses almost exactly the style I want. :) It turns out that all you have to do is include the natbib LaTeX package (\usepackage{natbib}), and then optionally use something like \bibpunct{(}{)}{;}{a}{}{,} to set the citation style, \bibliographystyle{plainnat} to set the bibliography style, and of course \bibliography{yourfile.bib} to generate the bibliography.
Ubuntu-package: texlive-latex-base
Homepage: http://merkel.zoneo.net/Latex/natbib.php
Example: http://www.aanda.org/content/view/160/173/lang,en/

Online LaTeX equation editor
For all those occasions when you’re stuck behind a machine without LaTeX but still need to typeset an equation. This page allows you to type the LaTeX code and download the result as an image. Useful!

Software for analysing ODE-based models:
I don’t work with differential equations that often, but the following packages do come in handy occasionally.

  • GRIND, the Great INtegrator of Differential equations.
  • XPP-AUT, another package for phase-plane analysis and bifurcation analysis. XPP-AUT provides a (very) basic X11 user-interface to the AUTO-package (see below).
  • CONTENT, a powerful but extremely buggy package for continuing equilibria and analysing bifurcations.
  • MATCONT, the successor to CONTENT. Requires Matlab.
  • AUTO-07p, another well-known package for bifurcation analysis.

Ubuntu-packages for GRIND and XPPAUT are avialable in my PPA repository.

Programming environments, toolkits and libraries: