Using Make for Reproducible and Parallel Neuroimaging Workflow and Quality-Assurance - 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.; et al. (Frontiers in Neuroinformatics, 2016)
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. We show that 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 represents a large step towards 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.