nf-core/tools API documentation      
 Automated documentation for nf-core/tools (1.13.2)
schema_lint
PipelineLint.schema_lint()
Pipeline schema syntax
Pipelines should have a nextflow_schema.json file that describes the different
pipeline parameters (eg. params.something, --something).
Note
Reminder: you should generally never need to edit this JSON file by hand.
The nf-core schema build command can create and edit the file for you
to keep it up to date, with a friendly user-interface for customisation.
The lint test checks the schema for the following:
- Schema should be a valid JSON file
 - Schema should adhere to JSONSchema, Draft 7.
 - Parameters can be described in two places:
- As 
propertiesin the top-level schema object - As 
propertieswithin subschemas listed in a top-leveldefinitionsobjects 
 - As 
 - The schema must describe at least one parameter
 - There must be no duplicate parameter IDs across the schema and definition subschema
 - All subschema in 
definitionsmust be referenced in the top-levelallOfkey - The top-level 
allOfkey must not describe any non-existent definitions - Default parameters in the schema must be valid
 - Core top-level schema attributes should exist and be set as follows:
$schema:https://json-schema.org/draft-07/schema$id: URL to the raw schema file, eg.https://raw.githubusercontent.com/YOURPIPELINE/master/nextflow_schema.jsontitle:YOURPIPELINE pipeline parametersdescription: The pipeline configmanifest.description
 
For example, an extremely minimal schema could look like this:
{
  "$schema": "https://json-schema.org/draft-07/schema",
  "$id": "https://raw.githubusercontent.com/YOURPIPELINE/master/nextflow_schema.json",
  "title": "YOURPIPELINE pipeline parameters",
  "description": "This pipeline is for testing",
  "properties": {
    "first_param": { "type": "string" }
  },
  "definitions": {
    "my_first_group": {
      "properties": {
        "second_param": { "type": "string" }
      }
    }
  },
  "allOf": [{ "$ref": "#/definitions/my_first_group" }]
}Note
You can check your pipeline schema without having to run the entire pipeline lint
by running nf-core schema lint instead of nf-core lint