nextflow-io / nf-schema

Functionality for working with pipeline and sample sheet schema files in Nextflow pipelines
https://nextflow-io.github.io/nf-schema/
Apache License 2.0
11 stars 3 forks source link

nf-schema

πŸ“š Docs πŸ‘‰πŸ» https://nextflow-io.github.io/nf-schema

A Nextflow plugin to work with validation of pipeline parameters and sample sheets.

Introduction

[!IMPORTANT] 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.

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:

Supported sample sheet formats are CSV, TSV, JSON and YAML.

Quick Start

Declare the plugin in your Nextflow pipeline configuration file:

plugins {
  id 'nf-schema@2.1.1'
}

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:

validation {
  help {
    enabled: true
  }
}

Dependencies

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):