Getting Started

Welcome to the nf-neuro project ! A Nextflow modules and workflows repository for neuroimaging maintained by the SCIL team. The primary focus of the library is to provide pre-built processes and processing sequences for neuroimaging, optimized for Nextflow DSL2, based on open-source technologies and made easily available to pipeline’s developers through the nf-core framework.

WHY ? nf-neuro

Let’s say you develop a pipeline for neuroimaging. You want to make it the more efficient, reliable, reproducible and also be able to evaluate it and control the quality of its outputs. That’s what nf-neuro provides to you, all in one repository, hosting all dependencies you need to start developing and analyzing.

The only thing we ask of you is to develop in Nextflow DSL2. We use principle and standards closely aligned with nf-core, but we’ll make you adapt to them slowly as you go (we still haven’t finished complying to all of them ourselves). Using nf-neuro helps accelerate development in neuroimaging and produces better research outcomes for all !

Where do I start ?

Well, it depends on what you want to do. If you want to :

  • Learn about the modules and subworkflows in nf-neuro, go to the discovery section.
  • Create a new pipeline quickly, using modules and subworkflows from nf-neuro, go to the prototyping section.
  • Create or publish a production pipeline branded with nf-neuro, go to the porting prototypes section.
  • Contribute new modules and subworkflows to nf-neuro, go to the module or subworkflow contribution section.

Discovering nf-neuro

To get information on nf-neuro components, you’ll first need to install python and nf-core. We provide extensive guidelines to do it in this guide.

Getting info on components from nf-neuro

With your environment ready, you can list nf-neuro modules available with a simple command :

nf-core modules list remote
nf-core modules list remote

The same goes for subworkflows :

nf-core subworkflows list remote
nf-core subworkflows list remote

To get more information on a module (say denoising/nlmeans) use :

nf-core modules info denoising/nlmeans
nf-core modules info <category/module>

or for a subworkflow (say preproc_t1) :

nf-core subworkflows info preproc_t1
nf-core subworkflows info <subworkflow>

You’ll get a good description of the modules’s or subworkflow’s behavior and dependencies, as well as a thorough description of its inputs and outputs.

Contributing to the nf-neuro project

nf-neuro accepts contribution of new modules and subworkflows to its library. You’ll need first to setup your environment, for which we have devised clever ways to streamline the procedure. Then, depending on which kind of component you want to submit, you’ll either need to follow the module creation or the subworkflow creation guidelines. Components that don’t abide to them won’t be accepted and PR containing them will be closed automatically.

Running tests

Tests are run through nf-core, using the command :

nf-core modules test <category/tool>

The tool can be omitted to run tests for all modules in a category.