A Nextflow plugin to work with validation of pipeline parameters and sample sheets.
Info
nf-schema is the new version of the now deprecated nf-validation. Please follow the migration guide to migrate your code to this new version.
Introduction
This Nextflow plugin provides functionality that can be used in a Nextflow pipeline to work with parameter and sample sheet schema. The added functionality is:
- ๐ Print usage instructions to the terminal (for use with
--help
) - โ๏ธ Print log output showing parameters with non-default values
- โ Validate supplied parameters against the pipeline schema
- ๐ Validate the contents of supplied sample sheet files
- ๐ ๏ธ Create a type-casted list from a parsed sample sheet
Supported sample sheet formats are CSV, TSV, JSON and YAML.
Quick Start
Declare the plugin in your Nextflow pipeline configuration file:
This is all that is needed - Nextflow will automatically fetch the plugin code at run time.
[!NOTE] The snippet above will always try to install the specified version. We encourage always pinning the plugin version to make sure the used pipeline will keep working when a new version of
nf-schema
with breaking changes has been released.
You can now include the plugin helper functions into your Nextflow pipeline:
include { validateParameters; paramsSummaryLog; samplesheetToList } from 'plugin/nf-schema'
// Validate input parameters
validateParameters()
// Print summary of supplied parameters
log.info paramsSummaryLog(workflow)
// Create a new channel of metadata from a sample sheet passed to the pipeline through the --input parameter
ch_input = Channel.fromList(samplesheetToList(params.input, "assets/schema_input.json"))
Or enable the creation of the help message (using --help
) in the configuration file:
Dependencies
- Java 11 or later
- https://github.com/harrel56/json-schema
- Nextflow 23.10.0 or later
Slack channel
There is a dedicated nf-schema Slack channel in the Nextflow Slack workspace.
Credits
This plugin was written based on code initially written within the nf-core community, as part of the nf-core pipeline template.
We would like to thank the key contributors who include (but are not limited to):
- Jรบlia Mir Pedrol (@mirpedrol)
- Nicolas Vannieuwkerke (@nvnieuwk)
- Kevin Menden (@KevinMenden)
- Phil Ewels (@ewels)
- Arthur (@awgymer)