{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "pre_processing",
"description": "A subworkflow for the pre-processing stage of the nf-core/rnaseq pipeline.\n",
"type": "object",
"definitions": {

    
    
    "inputs" : {
    "title": "Inputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "id": {
                "type":
                "string",
                "description": "Type: `string`, required, example: `foo`. ID of the sample",
                "help_text": "Type: `string`, required, example: `foo`. ID of the sample."
            
            }
    

        ,
                "fastq_1": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `input.fastq.gz`. Path to the sample (or read 1 of paired end sample)",
                "help_text": "Type: `file`, required, example: `input.fastq.gz`. Path to the sample (or read 1 of paired end sample)."
            
            }
    

        ,
                "fastq_2": {
                "type":
                "string",
                "description": "Type: `file`. Path to read 2 of the sample",
                "help_text": "Type: `file`. Path to read 2 of the sample."
            
            }
    

        ,
                "strandedness": {
                "type":
                "string",
                "description": "Type: `string`, default: `auto`. Sample strand-specificity",
                "help_text": "Type: `string`, default: `auto`. Sample strand-specificity. Must be one of unstranded, forward, reverse or auto"
            ,
                "default":"auto"
            }
    

        ,
                "bbsplit_index": {
                "type":
                "string",
                "description": "Type: `file`. BBsplit index",
                "help_text": "Type: `file`. BBsplit index"
            
            }
    

        ,
                "ribo_database_manifest": {
                "type":
                "string",
                "description": "Type: `file`. Text file containing paths to fasta files (one per line) that will be used to create the database for SortMeRNA",
                "help_text": "Type: `file`. Text file containing paths to fasta files (one per line) that will be used to create the database for SortMeRNA."
            
            }
    

        ,
                "transcript_fasta": {
                "type":
                "string",
                "description": "Type: `file`. Path to FASTA transcriptome file",
                "help_text": "Type: `file`. Path to FASTA transcriptome file."
            
            }
    

        ,
                "gtf": {
                "type":
                "string",
                "description": "Type: `file`. Path to GTF annotation file",
                "help_text": "Type: `file`. Path to GTF annotation file."
            
            }
    

        ,
                "salmon_index": {
                "type":
                "string",
                "description": "Type: `file`. Path to directory containing the Salmon index",
                "help_text": "Type: `file`. Path to directory containing the Salmon index"
            
            }
    

        ,
                "num_trimmed_reads": {
                "type":
                "integer",
                "description": "Type: `integer`. Number of reads after trimming",
                "help_text": "Type: `integer`. Number of reads after trimming"
            
            }
    

}
},
    
    
    "extra pipeline options" : {
    "title": "Extra pipeline options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "skip_qc": {
                "type":
                "boolean",
                "description": "Type: `boolean`. Skip QC steps of the workflow",
                "help_text": "Type: `boolean`. Skip QC steps of the workflow."
            
            }
    

}
},
    
    
    "fastqc options" : {
    "title": "FastQC options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "skip_fastqc": {
                "type":
                "boolean",
                "description": "Type: `boolean`, default: `false`. Skip FatQC step",
                "help_text": "Type: `boolean`, default: `false`. Skip FatQC step."
            ,
                "default":false
            }
    

}
},
    
    
    "umi-tools options" : {
    "title": "UMI-tools options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "with_umi": {
                "type":
                "boolean",
                "description": "Type: `boolean`, default: `false`. Enable UMI-based read deduplication",
                "help_text": "Type: `boolean`, default: `false`. Enable UMI-based read deduplication."
            ,
                "default":false
            }
    

        ,
                "skip_umi_extract": {
                "type":
                "boolean",
                "description": "Type: `boolean`, default: `false`. Skip umi_tools extract step",
                "help_text": "Type: `boolean`, default: `false`. Skip umi_tools extract step."
            ,
                "default":false
            }
    

        ,
                "umitools_extract_method": {
                "type":
                "string",
                "description": "Type: `string`, default: `string`, choices: ``string`, `regex``. UMI pattern to use",
                "help_text": "Type: `string`, default: `string`, choices: ``string`, `regex``. UMI pattern to use.",
                "enum": ["string", "regex"]
            
            ,
                "default":"string"
            }
    

        ,
                "umitools_bc_pattern": {
                "type":
                "string",
                "description": "Type: `string`, default: ``. The UMI barcode pattern to use e",
                "help_text": "Type: `string`, default: ``. The UMI barcode pattern to use e.g. \u0027NNNNNN\u0027 indicates that the first 6 nucleotides of the read are from the UMI."
            ,
                "default":""
            }
    

        ,
                "umitools_bc_pattern2": {
                "type":
                "string",
                "description": "Type: `string`, default: ``. The UMI barcode pattern to use if the UMI is located in read 2",
                "help_text": "Type: `string`, default: ``. The UMI barcode pattern to use if the UMI is located in read 2."
            ,
                "default":""
            }
    

        ,
                "umi_discard_read": {
                "type":
                "integer",
                "description": "Type: `integer`, default: `0`, choices: ``0`, `1`, `2``. After UMI barcode extraction discard either R1 or R2 by setting this parameter to 1 or 2, respectively",
                "help_text": "Type: `integer`, default: `0`, choices: ``0`, `1`, `2``. After UMI barcode extraction discard either R1 or R2 by setting this parameter to 1 or 2, respectively.",
                "enum": [0, 1, 2]
            
            ,
                "default":0
            }
    

        ,
                "umitools_umi_separator": {
                "type":
                "string",
                "description": "Type: `string`, default: `_`. The character that separates the UMI in the read name",
                "help_text": "Type: `string`, default: `_`. The character that separates the UMI in the read name. Most likely a colon if you skipped the extraction with UMI-tools and used other software."
            ,
                "default":"_"
            }
    

        ,
                "umitools_grouping_method": {
                "type":
                "string",
                "description": "Type: `string`, default: `directional`, choices: ``unique`, `percentile`, `cluster`, `adjacency`, `directional``. Method to use to determine read groups by subsuming those with similar UMIs",
                "help_text": "Type: `string`, default: `directional`, choices: ``unique`, `percentile`, `cluster`, `adjacency`, `directional``. Method to use to determine read groups by subsuming those with similar UMIs. All methods start by identifying the reads with the same mapping position, but treat similar yet nonidentical UMIs differently.",
                "enum": ["unique", "percentile", "cluster", "adjacency", "directional"]
            
            ,
                "default":"directional"
            }
    

        ,
                "save_umi_intermeds": {
                "type":
                "boolean",
                "description": "Type: `boolean`, default: `false`. If this option is specified, intermediate FastQ and BAM files produced by UMI-tools are also saved in the results directory",
                "help_text": "Type: `boolean`, default: `false`. If this option is specified, intermediate FastQ and BAM files produced by UMI-tools are also saved in the results directory."
            ,
                "default":false
            }
    

}
},
    
    
    "read trimming options" : {
    "title": "Read trimming options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "trimmer": {
                "type":
                "string",
                "description": "Type: `string`, default: `trimgalore`, choices: ``trimgalore`, `fastp``. Specify the trimming tool to use",
                "help_text": "Type: `string`, default: `trimgalore`, choices: ``trimgalore`, `fastp``. Specify the trimming tool to use.",
                "enum": ["trimgalore", "fastp"]
            
            ,
                "default":"trimgalore"
            }
    

        ,
                "min_trimmed_reads": {
                "type":
                "integer",
                "description": "Type: `integer`, default: `10000`. Minimum number of trimmed reads below which samples are removed from further processing",
                "help_text": "Type: `integer`, default: `10000`. Minimum number of trimmed reads below which samples are removed from further processing. Some downstream steps in the pipeline will fail if this threshold is too low."
            ,
                "default":10000
            }
    

        ,
                "skip_trimming": {
                "type":
                "boolean",
                "description": "Type: `boolean`, default: `false`. Skip the adapter trimming step",
                "help_text": "Type: `boolean`, default: `false`. Skip the adapter trimming step."
            ,
                "default":false
            }
    

        ,
                "save_trimmed": {
                "type":
                "boolean",
                "description": "Type: `boolean`, default: `false`. Save the trimmed FastQ files in the results directory",
                "help_text": "Type: `boolean`, default: `false`. Save the trimmed FastQ files in the results directory."
            ,
                "default":false
            }
    

}
},
    
    
    "read filtering options" : {
    "title": "Read filtering options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "skip_bbsplit": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Skip BBSplit for removal of non-reference genome reads",
                "help_text": "Type: `boolean_true`, default: `false`. Skip BBSplit for removal of non-reference genome reads."
            ,
                "default":false
            }
    

        ,
                "remove_ribo_rna": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Enable the removal of reads derived from ribosomal RNA using SortMeRNA",
                "help_text": "Type: `boolean_true`, default: `false`. Enable the removal of reads derived from ribosomal RNA using SortMeRNA."
            ,
                "default":false
            }
    

}
},
    
    
    "output" : {
    "title": "Output",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "qc_output1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.qc_output1.gz`. Path to output directory",
                "help_text": "Type: `file`, default: `$id.$key.qc_output1.gz`. Path to output directory"
            ,
                "default":"$id.$key.qc_output1.gz"
            }
    

        ,
                "qc_output2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.qc_output2.gz`. Path to output directory",
                "help_text": "Type: `file`, default: `$id.$key.qc_output2.gz`. Path to output directory"
            ,
                "default":"$id.$key.qc_output2.gz"
            }
    

        ,
                "fastqc_html_1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.fastqc_html_1.html`. FastQC HTML report for read 1",
                "help_text": "Type: `file`, default: `$id.$key.fastqc_html_1.html`. FastQC HTML report for read 1."
            ,
                "default":"$id.$key.fastqc_html_1.html"
            }
    

        ,
                "fastqc_html_2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.fastqc_html_2.html`. FastQC HTML report for read 2",
                "help_text": "Type: `file`, default: `$id.$key.fastqc_html_2.html`. FastQC HTML report for read 2."
            ,
                "default":"$id.$key.fastqc_html_2.html"
            }
    

        ,
                "fastqc_zip_1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.fastqc_zip_1.zip`. FastQC report archive for read 1",
                "help_text": "Type: `file`, default: `$id.$key.fastqc_zip_1.zip`. FastQC report archive for read 1."
            ,
                "default":"$id.$key.fastqc_zip_1.zip"
            }
    

        ,
                "fastqc_zip_2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.fastqc_zip_2.zip`. FastQC report archive for read 2",
                "help_text": "Type: `file`, default: `$id.$key.fastqc_zip_2.zip`. FastQC report archive for read 2."
            ,
                "default":"$id.$key.fastqc_zip_2.zip"
            }
    

        ,
                "trim_log_1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trim_log_1.txt`. ",
                "help_text": "Type: `file`, default: `$id.$key.trim_log_1.txt`. "
            ,
                "default":"$id.$key.trim_log_1.txt"
            }
    

        ,
                "trim_log_2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trim_log_2.txt`. ",
                "help_text": "Type: `file`, default: `$id.$key.trim_log_2.txt`. "
            ,
                "default":"$id.$key.trim_log_2.txt"
            }
    

        ,
                "trim_html_1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trim_html_1.html`. ",
                "help_text": "Type: `file`, default: `$id.$key.trim_html_1.html`. "
            ,
                "default":"$id.$key.trim_html_1.html"
            }
    

        ,
                "trim_html_2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trim_html_2.html`. ",
                "help_text": "Type: `file`, default: `$id.$key.trim_html_2.html`. "
            ,
                "default":"$id.$key.trim_html_2.html"
            }
    

        ,
                "trim_zip_1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trim_zip_1.zip`. ",
                "help_text": "Type: `file`, default: `$id.$key.trim_zip_1.zip`. "
            ,
                "default":"$id.$key.trim_zip_1.zip"
            }
    

        ,
                "trim_zip_2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trim_zip_2.zip`. ",
                "help_text": "Type: `file`, default: `$id.$key.trim_zip_2.zip`. "
            ,
                "default":"$id.$key.trim_zip_2.zip"
            }
    

        ,
                "sortmerna_log": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.sortmerna_log.log`. Sortmerna log file",
                "help_text": "Type: `file`, default: `$id.$key.sortmerna_log.log`. Sortmerna log file."
            ,
                "default":"$id.$key.sortmerna_log.log"
            }
    

        ,
                "salmon_quant_output": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.salmon_quant_output.salmon_quant_output`. Results from Salmon quant",
                "help_text": "Type: `file`, default: `$id.$key.salmon_quant_output.salmon_quant_output`. Results from Salmon quant"
            ,
                "default":"$id.$key.salmon_quant_output.salmon_quant_output"
            }
    

        ,
                "trim_json": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trim_json.json`. The fastp json format report file name",
                "help_text": "Type: `file`, default: `$id.$key.trim_json.json`. The fastp json format report file name"
            ,
                "default":"$id.$key.trim_json.json"
            }
    

        ,
                "trim_html": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trim_html.html`. The fastp html format report file name",
                "help_text": "Type: `file`, default: `$id.$key.trim_html.html`. The fastp html format report file name"
            ,
                "default":"$id.$key.trim_html.html"
            }
    

        ,
                "merged_out": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.merged_out.merged_out`. File name to store merged fastp output",
                "help_text": "Type: `file`, default: `$id.$key.merged_out.merged_out`. File name to store merged fastp output."
            ,
                "default":"$id.$key.merged_out.merged_out"
            }
    

}
},
    
    
    "nextflow input-output arguments" : {
    "title": "Nextflow input-output arguments",
    "type": "object",
    "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
    "properties": {
    
        
                "publish_dir": {
                "type":
                "string",
                "description": "Type: `string`, required, example: `output/`. Path to an output directory",
                "help_text": "Type: `string`, required, example: `output/`. Path to an output directory."
            
            }
    

        ,
                "param_list": {
                "type":
                "string",
                "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel",
                "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.",
                "hidden": true
            
            }
    

}
}
},
"allOf": [

    {
    "$ref": "#/definitions/inputs"
    },

    {
    "$ref": "#/definitions/extra pipeline options"
    },

    {
    "$ref": "#/definitions/fastqc options"
    },

    {
    "$ref": "#/definitions/umi-tools options"
    },

    {
    "$ref": "#/definitions/read trimming options"
    },

    {
    "$ref": "#/definitions/read filtering options"
    },

    {
    "$ref": "#/definitions/output"
    },

    {
    "$ref": "#/definitions/nextflow input-output arguments"
    }
]
}
