Skip to content

Containers: Achieving Portability & Reproducibility of Research Computational Environments (python stream)

Authors

Pen-Yuan Hsing


University of Bristol, United Kingdom.

Alexander Botzki


Alexander Botzki, VIB Technology Training, VIB, Belgium

Mark Fernandes


Mark Fernandes, Teaching Associate, Bioinformatics Training Facility, Dept. of Genetics, University of Cambridge

Naeem Muhammad


Naeem Muhammad, Research Data Manager, Research Coordination Office, KU Leuven, Belgium.

Lesson overview

Description
This course explores several different approaches to provide an end user with a software environment that ensures successful execution of scientific analysis software in a reproducible manner. It then focuses upon an examplar - Software Containers (Specifically implemented using Docker).

Prerequisites
To be able to follow this course, learners should have knowledge in:

  1. Familiarity with using a text editor to create and edit plain ASCII text files.
  2. Basic experience in using command-line Linux.
  3. Additionally, students will find it beneficial to have an overview of how software is installed under Linux.

Learning Outcomes:
By the end of the course, learners will be able to:

  1. State several approaches to reproducible software environments and critically debate the strengths and weaknesses of each approach.
  2. Identify the roles of particular commands in a Dockerfile and create simple functional Docker containers.

Target Audience: Researchers, undergraduate students, postgraduate students, etc…

Level: Beginner/Intermediate

License: Creative Commons Attribution 4.0 International License

Funding: This project has received funding from [name of funders].

Contributors

Christof De Bo


Christof De Bo, VIB Technologies, VIB, Belgium


Citing this lesson

Please cite as:

  1. Mark Fernandes, Pen-Yuan Hsing, Naeem Muhammad, Alexander Botzki. (2024). The ELIXIR Code Reproducibility lesson - Software Containers for computational reproducibility. Zenodo DOI: {here}
  2. Geert van Geest, Elin Kronander, Jose Alejandro Romero Herrera, Nadja Žlender, & Alexia Cardona. (2023). The ELIXIR Training Lesson Template - Developing Training Together (v1.0.0-alpha). Zenodo. https://doi.org/10.5281/zenodo.7913092.

Setup

Data setup

To run this lesson you need to install code and data from here

Software setup

To run this course you need to install Docker on your computer Instructions here and have access to a text editor program that can edit and save ASCII text documents (Not a word processor like Word).
NB Course examples assume an Intel architecture computer (i386). The author has ssucessfully run the exercises on an Apple Silicon Macintosh by creating a UTM Debian linux Virtual machine with Intel emulation.

Blank Sillouette from User Icon Vectors by Vecteezy