Sumatra

Sumatra is a tool for managing and tracking projects based on numerical simulation or analysis, with the aim of supporting reproducible research. It can be thought of as an ''automated electronic lab notebook'' for simulation/analysis projects.

Do any of these sound familiar?

  • I thought I used the same parameters but I'm getting different results
  • I can't remember which version of the code I used to generate figure 6
  • The new student wants to reuse that model I published three years ago but he can't reproduce the figures
  • It worked yesterday
  • Why did I do that?

Why isn't it easy to reproduce a computational experiment exactly? Especially months or years later, or in a different lab. The answer is probably related to the complexity of our code and our computing environments, and the difficulty of capturing every essential piece of information about our simulation or analysis. Using version control tools for your source code is an excellent starting point. Sumatra aims to take the next step. For more detail on the motivation behind Sumatra, see the documentation.

Sumatra consists of:

  • a command-line interface, smt, for launching simulations/analyses with automatic recording of information about the context, annotating these records, linking to data files, etc.
  • a web interface with a built-in web-server, smtweb, for browsing and annotating simulation/analysis results.
  • a Python API, on which smt and smtweb are based, that can be used in your own scripts in place of using smt.
  • a LaTeX package and Sphinx extension for including Sumatra-tracked figures and links to provenance information in papers and other documents.

Papers, Presentations and Posters

If you publish work using or mentioning Sumatra, we would appreciate it if you would cite the following paper:

Davison A.P. (2012) Automated capture of experiment context for easier reproducibility in computational research. Computing in Science and Engineering 14: 48-56. [CiSE] [preprint]

Licence

The code is released under a 2-clause BSD licence.