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 write automated tests for your commands to ensure correct execution.

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

Version control systems
  • Using VCS not only improves sharing and collaboration, but is integral for guaranteeing reproducibility

  • VCS can be used directly or can serve as 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 any legal as early as possible in the timeline of a project

  • Choose a standard license for your materials to ease dissemination

Other day-to-day reproducible practices
  • If you can’t reproduce it, it’s likely that nobody else can

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

  • “Push yourself to incorporate these practices into your daily workflow.”

FIXME: more reference material.