Fork me on GitHub

Hallmarks of Good Scientific Software

In this tutorial, we will strive to build good scientific software. By good scientific software we mean readable, reproducible, and reliable software that address scientific questions by data analysis and modelling. We will try to define hallmarks of good scientific software, and discuss how to use software tools to achieve these hallmarks.

Prerequisites

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

  2. Docker and make are optional.

Schedule

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