Fork me on GitHub

Reproducible research

In this lesson we will discuss different methods and tools for better reproducibility in research software and data. We will demonstrate how version control, workflows, containers, and package managers can be used to record reproducible environments and computational steps.


  1. You need to install Git, Python, and Snakemake.

  2. Docker and make are optional.


10 min Motivation Should research software and data be reproducible?
Are they?
10 min Organizing your projects How should we organize files in a research project?
30 min Recording dependencies How can we communicate different versions of software dependencies?
30 min Recording computational steps How can we create a reproducible workflow?
When to use scientific workflow management systems.
15 min Recording environments How to capture the software environment of a computational experiment?
25 min Sharing code and data How can I share research code and data?
20 min (Optional) Creating and sharing a container image