Chapter 1: Introduction
Material originally written for the A practical introduction to nf-core components for Nextflow developers training at the nf-core Hackathon March 2025, Berlin local site (see event).
Duration: 4hr
Original author: James A. Fellows Yates (@jfy133), with corrections and improvements from Niklas Schandry (@nschan) and Alexandru Mizeranschi (@amizeranschi).
An nf-core module is an atomic, standardised, reproducible, and tested Nextflow DSL2 module. You can install an nf-core module into any Nextflow pipeline with a single command, then integrate it into your workflow thanks to its consistent internal structure.
Why use nf-core modules
- Efficiency: reuse community modules instead of writing your own.
- Consistency: every module follows the same structure, so modules connect together predictably.
- Documentation: each module ships with metadata and descriptions.
- Future-proofing: modules cover all inputs and outputs from the start, so you avoid rewrites when requirements change.
- Automation: standardisation enables future automated workflow development.
Scope
This training covers:
- Writing nf-core modules.
- Using nf-core modules in official nf-core pipelines and custom Nextflow pipelines.
Learning objectives
By the end of this training, you will be able to:
- Identify the file components of an nf-core module.
- Apply the nf-core module specifications.
- Locate documentation for developing an nf-core module.
- Write an nf-core module.
- Write nf-test unit tests for an nf-core module.
- Follow the workflow for contributing modules to the community repository.
- Use an nf-core module in any Nextflow pipeline.
Chapters
- Chapter 1: Introduction
- Chapter 2: Getting started
- Chapter 3: What is an nf-core module?
- Chapter 4: Generating boilerplate files
- Chapter 5: Writing an nf-core module
- Chapter 6: Testing an nf-core module
- Chapter 7: Development workflow
- Chapter 8: Using nf-core modules in pipelines
Read chapters 2–7 through once before starting development. When you reach chapter 7, return to chapter 2 to begin writing the module itself.