Reproducible research - Preparing code to be usable by you and others in the future
Have you ever lost hours of work when your computer decided to update itself? Or a program crashed when you clicked save? Did you maybe delete a file by mistake?
In this section we will look at ways of saving your work for yourself and saving effort by making computational steps easy to repeat, share and modify. Making you research project reproducible increase the quality of your work, but the main motivation should be to make your life easier in the long run.
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, and package managers can be used to record reproducible environments and computational steps for our future selves and share those with other researchers.
Learning outcomes
- By the end of this lesson, learners should:
be able to apply well organized directory structure for their project
be able to document and reproduce computational steps
understand that code can have dependencies, and know how to document them
if a computational study contains several steps, be able to document them
Prerequisites
In examples and demonstrations, we use Git, Python, and Snakemake. These are not required to follow the lesson, but trying them yourself is very useful