NORBIS Summer School 2018

Robust and reproducible practices in bioinformatics programming

Time: August 6-10
Location: Python room (seminar room 2269) in Ole-Johan Dahl’s building at the University of Oslo, see map here 
Lecturers: Lex Nederbragt, Karin Lagesen, Abdulrahman Azab, Hugues Fontenelle, Mateusz Kuzak
Schedule: We start at 10 Monday morning and wrap up by 14 Friday afternoon. Program may be viewed here.
Social: Reserve Tuesday night for the summer school dinner, which will take place at Olivia in Hegdehaugsveien!
Software preparations: please follow these instructions to prepare your laptop before arrival



This year’s summer school will focus on reproducible research, and reproducible computation in particular. This has received increasing attention in the scientific community in recent years, and in this practical and hands-on summer school, we will learn effective methods for collaborative and reproducible research based on robustly written software. Starting from a foundation of essential basic skills, participants will learn the use of more advanced tools that build upon them. At the end, you will be able to

  • develop software with colleague and researchers elsewhere
  • ensure your code always works as expected and does not break
  • wrap your computational analysis in a software container
  • deploy the container on a server or cluster
  • automatically run a simple analysis pipeline using their container

Course material is largely based on Software Carpentry lessons, supplemented with material developed earlier or especially for the course. All materials are, or will be made available openly licensed through GitHub.


Course program

Hyperlinks to the teaching materials. Tentative program, subject to small changes once we know more definite who will be the instructors.

  Day Monday Tuesday Wednesday Thursday Friday
  Morning Unix Git Testing   and CI Containers Automation with make
  Afternoon Who is who and what are you studying Jupyter Notebooks and Binder Testing   and CI Containers Wrap up until 14:00



Knowledge of programming in Python, preferably above a beginner level. At a minimum you should be comfortable using what is taught in the Software Carpentry Python Novice lesson.


Target audience

PhD students who

  • know Python or at least one programming language to some extent
    and/or are able to teach themselves basic python
  • wish to make their software more robust
  • wish to learn how to collaboratively develop software
  • wish to make their computational analysis more reproducible


Learning outcomes

At the end of the summer school, participants should be comfortable continuing to work with these tools:

  • Basics: Unix
  • Basics: Version Control with Git
  • Programming: Modularization of code
  • Programming: Testing and continuous integration
  • Reproducibility: Use of Jupyter Notebooks
  • Reproducibility: Sharing of executable Jupyter Notebooks
  • Reproducibility: Building, distributing and employing containers
  • Reproducibility: Automation with make 


NORBIS members will have priority, and will have their travel expenses covered, as usual. NORBIS post docs may apply for travel support to