Specifications
Technical specifications for nf-core pipelines, components, and test data
Components
Overview
Write nf-core components
Modules
General
Follow general module guidelines
Naming conventions
Follow naming conventions
Input/output Options
Define module inputs and outputs
Documentation
Document modules
Parameters
Use module parameters
Resource requirements
Specify resource requirements
Software
Specify software dependencies
Testing
Test modules
Misc
Follow miscellaneous specifications
Subworkflows
General
Follow general subworkflow specifications
Naming conventions
Follow naming conventions
Input output options
Define subworkflow inputs and outputs
Subworkflow parameters
Use subworkflow parameters
Documentation
Document subworkflows
Testing
Test subworkflows
Misc
Follow miscellaneous specifications
Pipelines
Overview
Specifications for nf-core pipelines
Recommendations
Bioconda
Package software using bioconda and biocontainers.
Build with community
Package software using bioconda and biocontainers.
Cloud compatible
Pipelines should be tested on cloud computing environments.
Custom containers
What to do with custom containers that are hosted on docker.io or ghcr.io
DOIs
Pipelines should have digital object identifiers (DOIs).
File formats
Use community accepted modern file formats.
Publication credit
Recognition for nf-core pipeline publications
Testing
Use nf-test to validate pipeline
Requirements
Acknowledgements
Pipelines must properly acknowledge prior work.
CI testing
Pipelines must run CI tests.
Community owned
Pipelines are owned by the community.
Docker
Software must be bundled using Docker and versioned.
Documentation
Pipeline documentation must be hosted on the nf-core website
Git branches
Use `master|main`, `dev` and `TEMPLATE`.
Identity branding
Primary development must on the nf-core organisation.
Keywords
Excellent documentation and GitHub repository keywords.
Linting
The pipeline must not have any failures in the `nf-core pipelines lint` tests
Minimum inputs
Pipelines should be able to run with as little input as possible.
MIT license
Pipelines must open source, released with the MIT license.
Nextflow
Pipelines must be built with Nextflow
Parameters
Strive to have standardised usage.
RO Crate
Pipelines must come with their own Research Object (RO) Crate
Semantic versioning
Pipelines must use semantic versioning.
Single command
Pipelines should run in a single command.
Use the template
All nf-core pipelines must be built using the nf-core template.
Workflow name
Names should be lower case and without punctuation.
Workflow size
Not too big, not too small
Workflow specificity
There should only be a single pipeline per data / analysis type.
Reviews
Overview
Best practices for reviewing contributions
Request reviewers
Best practices for requesting and engaging reviewers
Rapid merge
Guidelines for merging pull requests after approval
Review scope
Guidelines for managing review feedback and resolution
Commit strategy
Best practices for managing commits and merges