Background: The complex nature of biological data has driven the development of specialized sof ware tools. Scienti c work ow management systems simplify the assembly of such tools into pipelines, assist with job automation and aid reproducibility of analyses. Many contemporary work ow tools are specialized and not designed for highly complex work ows, such as with nested loops, dynamic scheduling and parametrization, which is common in e.g. machine learning.Findings: SciPipe is a work ow programming library implemented in the programming language Go, for managing complex and dynamic pipelines in bioinformatics, cheminformatics and other elds. SciPipe helps in particular with work ow constructs common in machine learning, such as extensive branching, parameter sweeps and dynamic scheduling and parametrization of downstream tasks. SciPipe builds on Flow-based programming principles to support agile development of work ows based on a library of self-contained, re-usable components. It supports running subsets of work ows for improved iterative development, and provides a data-centric audit logging feature that saves a full audit trace for every output le of a work ow, which can be converted to other formats such as HTML, TeX and PDF on-demand. The utility of SciPipe is demonstrated with a machine learning pipeline, a genomics, and a transcriptomics pipeline.Conclusions: SciPipe provides a solution for agile development of complex and dynamic pipelines, especially in machine leaning, through a exible programming API suitable for scientists used to programming or scripting.