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:
- Nvidia's CUDA toolkit is potentially very interesting for doing analyses and simulations (if only for generating random numbers), but I have yet to try it. Ubuntu users should take a look at Aaron Haviland's PPA