Reproducible research - Preparing code to be usable by you and others in the future

Have you ever spent days trying to repeat the results from few weeks or months ago? Or you have to do paper revisions, but you just can’t get the results to match up? It’s unpleasant for both you and science.

In this lesson we will explore 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 for our future selves.

Learning outcomes

By the end of this lesson, learners should:
  • be able to apply well organized directory structure for their project

  • remember the FAIR principles

  • understand that code can have dependencies, and know how to document them

  • if a computational studies contains several steps, be able to document them

  • know about use cases for containers

  • knowing the pros and cons of manual documentation vs. scripted automation vs. workflow management


You need to install Git, Python, and Snakemake.