ReproNim module 0: Reproducible basics: Reference

Key Points

Command line/shell
  • There are a number of incompatible shells; Different neuroimaging tools may use specific shells and thus provide instructions that are not compatible with your current shell

  • A command line shell is a powerful tool and learning additional ‘tricks’ could help to make its use much more efficient, less error-prone, and thus more reproducible

  • Shell scripting is the most accessible tool to automate execution of arbitrary set of commands; This avoids manual retyping of the same commands and in turn avoids typos and erroneous analyses

  • Environment variables play a big role in defining script behavior

  • You can automate testing of the execution of your commands to provide at least some verifiable guarantee of correct execution across different systems

  • Shell scripts are powerful but if misused can cause big problems

Version control systems
  • Using VCS does not only improves sharing and collaboration, but also could be critical to assist and to guarantee reproducibility

  • VCS could be used directly or serve a foundation for domain-specific tools

Package managers and distributions
  • Package managers and distributions allow for the efficient creation of tightly version-controlled computation environments

'Right to share'
  • Clear up all “legal” aspects that would allow your work to be reproducible as soon as possible in the course of your research project

  • It is advisable to choose some standard license for your materials to ease dissemination

Other day-to-day reproducible practices
  • If you cannot reproduce it – it is unlikely that anyone else can

  • Having open sharing in mind from the beginning could simplify future reproducibility

  • A summary of everything so far

FIXME: more reference material.