AUTHOR=Askren Mary K. , McAllister-Day Trevor K. , Koh Natalie , Mestre Zoé , Dines Jennifer N. , Korman Benjamin A. , Melhorn Susan J. , Peterson Daniel J. , Peverill Matthew , Qin Xiaoyan , Rane Swati D. , Reilly Melissa A. , Reiter Maya A. , Sambrook Kelly A. , Woelfer Karl A. , Grabowski Thomas J. , Madhyastha Tara M. TITLE=Using Make for Reproducible and Parallel Neuroimaging Workflow and Quality-Assurance JOURNAL=Frontiers in Neuroinformatics VOLUME=10 YEAR=2016 URL=https://www.frontiersin.org/journals/neuroinformatics/articles/10.3389/fninf.2016.00002 DOI=10.3389/fninf.2016.00002 ISSN=1662-5196 ABSTRACT=

The contribution of this paper is to describe how we can program neuroimaging workflow using Make, a software development tool designed for describing how to build executables from source files. A makefile (or a file of instructions for Make) consists of a set of rules that create or update target files if they have not been modified since their dependencies were last modified. These rules are processed to create a directed acyclic dependency graph that allows multiple entry points from which to execute the workflow. We show that using Make we can achieve many of the features of more sophisticated neuroimaging pipeline systems, including reproducibility, parallelization, fault tolerance, and quality assurance reports. We suggest that Make permits a large step toward these features with only a modest increase in programming demands over shell scripts. This approach reduces the technical skill and time required to write, debug, and maintain neuroimaging workflows in a dynamic environment, where pipelines are often modified to accommodate new best practices or to study the effect of alternative preprocessing steps, and where the underlying packages change frequently. This paper has a comprehensive accompanying manual with lab practicals and examples (see Supplemental Materials) and all data, scripts, and makefiles necessary to run the practicals and examples are available in the “makepipelines” project at NITRC.