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 LaTeX package and Sphinx extension for including Sumatra-tracked figures and links to provenance information in papers and other documents.
- a Python API, on which smt and smtweb are based, that can be used in your own scripts in place of using smt.
git clone https://github.com/open-research/sumatra/
Nicolas Barbey has kindly created a package for Arch Linux
Mailing list: sumatra-users
If you find any bugs or wish to suggest a new feature or other enhancement, please create a ticket.
If would like to participate in Sumatra development, head over to BitBucket: https://bitbucket.org/apdavison/sumatra/
The code is released under the CeCILL licence (GPL-equivalent), but we are considering changing to a less restrictive licence (e.g. BSD-like).