Pipelines
nf-core pipelines are end-to-end analysis workflows that combine multiple tools and processes to analyze biological data. These specifications define the standards for developing high-quality, reproducible pipelines that can be shared and maintained by the nf-core community.
The specifications are organized into requirements (mandatory standards all nf-core pipelines MUST follow) and recommendations (best practices pipelines SHOULD adopt where applicable). While these specifications are mandatory for pipelines contributed to the nf-core repository, they represent proven best practices for developing professional-grade Nextflow pipelines that can benefit any workflow development project.
If you’re thinking of adding a new pipeline to nf-core or contributing to an existing pipeline, see adding a new pipeline and contributing to a pipeline.
nf-core is a community of builders, not a registry of pipelines. Propose your pipeline and develop with us, rather than proposing an already-complete pipeline. See recommendation: Build with the community
Requirements
The following specifications define mandatory standards that all nf-core pipelines MUST follow:
- Nextflow: Pipelines MUST be built using Nextflow and adhere to DSL2 syntax standards.
- Community owned: Pipelines are owned collectively by the community with contributions welcomed from all members.
- Identity and branding: Primary development MUST occur within the nf-core GitHub organisation with appropriate branding.
- Workflow specificity: Each data or analysis type MUST have only one canonical nf-core pipeline to avoid fragmentation.
- Workflow size: Pipelines MUST have appropriate scope—comprehensive enough to be useful but focused enough to maintain.
- Workflow name: Pipeline names MUST be lowercase, use hyphens for separation, and avoid punctuation.
- Use the template: All pipelines MUST be built using the nf-core template and maintain synchronization through automated processes.
- Software license: Pipelines MUST be open source and released under the MIT license.
- Bundled documentation: Comprehensive documentation MUST be bundled with the pipeline and hosted on the nf-core website.
- Docker support: Software dependencies MUST be containerized using Docker with specific version tags.
- Continuous integration testing: Pipelines MUST implement automated CI tests to verify functionality.
- Semantic versioning: Pipelines MUST follow semantic versioning with stable release tags.
- Standardised parameters: Pipelines MUST use standardized parameter names and conventions for consistency across nf-core.
- Single command: Pipelines MUST be executable with a single command without requiring manual intervention.
- Keywords: Pipelines MUST have comprehensive documentation and appropriate GitHub repository keywords for discoverability.
- Pass lint tests: Pipelines MUST pass all
nf-core pipelines linttests without failures. - Credits and Acknowledgements: Pipelines MUST properly acknowledge and credit prior work, tools, and contributors.
- Minimum inputs: Pipelines MUST be designed to run with minimal required input, using sensible defaults.
- Use nf-core git branches: Pipelines MUST use standardized branch structure including
master,dev, andTEMPLATE.
Recommendations
The following specifications define best practices that all nf-core pipelines SHOULD follow where possible or appropriate:
- Use Bioconda: Software dependencies SHOULD be packaged using Bioconda and distributed through BioContainers for reproducibility.
- File formats: Pipelines SHOULD use community-accepted modern file formats such as CRAM for better compression and compatibility.
- Testing: Pipelines SHOULD use nf-test to verify successful completion with valid outputs using minimal test datasets.
- DOIs: Pipeline releases SHOULD be assigned digital object identifiers (DOIs) through Zenodo for citability.
- Cloud compatible: Pipelines SHOULD be tested on cloud computing environments to ensure portability.
- Publication credit: Pipeline publications SHOULD acknowledge the nf-core community and cite the nf-core framework paper.
- Build with the community: Pipeline development SHOULD occur collaboratively with the community from the beginning rather than proposing complete pipelines.
- Custom Docker images: Custom containers not available through BioContainers SHOULD be mirrored on quay.io for long-term reproducibility.