Chapter 1: Introduction

Last updated

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

Tip

Read chapters 2–7 through once before starting development. When you reach chapter 7, return to chapter 2 to begin writing the module itself.