ReproNim Reproducible Basics Module: Reference

Key Points

Module overview
  • Efficient practices are the (more) reproducible ones

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’ can help 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 not only improves sharing and collaboration, but also is integral to assisting and guaranteeing reproducibility

  • VCS can be used directly or can 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 the “legal” aspects allowing 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 can simplify future reproducibility

  • “Your own summary of everything so far”

FIXME: more reference material.