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
Description
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 |
Prerequisites
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 contact-norbis@uib.no.