ReproNim module 0: Reproducible basics

The term “reproducibility” conjures a mental image of dedicated systems conducting automated and repeatable computations. However, you can embrace reproducibility as a principle to apply to your day-to-day research activities. Neuroimaging is a heavily data and software driven field of science. As a result, by learning more tricks and techniques of the tools that you already use daily, you will discover ways to not only improve efficiency but also increase the reproducibility of your research.

This module guides through three somewhat independent topics, which are in the heart of establishing and efficiently using common generic resources: command line shell, version control systems (for code and data), and distribution package managers. It is very unlikely that you have managed to avoid those tools completely in your prior research activities, but it is possible that you have under-utilized the power they are providing. Gaining additional skills in any of those topics could help you to not only become more efficient in your day-to-day research activities, but also would lay foundation in establishing habits to make your work actually more reproducible. Moreover these topics will be in the foundation of future modules in the ReproNim curriculum.

To some degree, reproducibility requires knowledge of what, when, and how any particular analysis was carried out. Therefore materials in this module will focus on helping to answer those questions. Before addressing these specific questions, referenced external materials (tutorials, lessons, etc) will provide a more generic and more thorough presentation of the topics.


Depending on your level of competence in any particular topic, you might like to go through additional materials which will be referenced in each particular lesson. Even if you feel that you are very proficient in all of those topics, we hope you would still learn some new “tricks” or would recommend or contribute some new materials to the lessons.

This lesson is based on lesson templates used in ReproNim training modules, and Neurohackweek, Data Carpentry and Software Carpentry workshops.


09:00 Command line/shell Why and how does using the command line/shell efficiently increase reproducibility of neuroimaging studies?
How can we assure that our scripts do the right thing?
12:00 Version control systems How do version control systems help reproducibility, and which systems should be used?
16:10 Package managers and distributions How can we establish and control computation environments using available package managers and distributions?
18:10 'Right to share' What are the legal aspects to be kept in mind to ease sharing and reproducibility?
21:10 Other day-to-day reproducible practices How does reproducibility help in fixing bugs?
What can you do to be ready to share your studies and have them be reproducible?
21:35 Wrap-Up What have we learned?
21:50 Finish