{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "umitools_extract",
"description": "UMI-tools contains tools for dealing with Unique Molecular Identifiers (UMIs)/Random Molecular Tags (RMTs) and single cell RNA-Seq cell barcodes. See https://umi-tools.readthedocs.io/en/latest/ for more information.\nThis component flexible removes UMI sequences from fastq reads. UMIs are removed and appended to the read name.\nThis component extracts UMI barcode from a read and add it to the read name, leaving any sample barcode in place\n",
"type": "object",
"definitions": {

    
    
    "input" : {
    "title": "Input",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "paired": {
                "type":
                "boolean",
                "description": "Type: `boolean`, default: `false`. Paired fastq files or not?",
                "help_text": "Type: `boolean`, default: `false`. Paired fastq files or not?"
            ,
                "default": "False"
            }
    

        ,
                "input": {
                "type":
                "string",
                "description": "Type: List of `file`, required, example: `sample.fastq`, multiple_sep: `\",\"`. Input fastq files, either one or two (paired)",
                "help_text": "Type: List of `file`, required, example: `sample.fastq`, multiple_sep: `\",\"`. Input fastq files, either one or two (paired)"
            
            }
    

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

}
},
    
    
    "output" : {
    "title": "Output",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "fastq_1": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.fastq_1.fastq`. Output file for read 1",
                "help_text": "Type: `file`, required, default: `$id.$key.fastq_1.fastq`. Output file for read 1."
            ,
                "default": "$id.$key.fastq_1.fastq"
            }
    

        ,
                "fastq_2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.fastq_2.fastq`. Output file for read 2",
                "help_text": "Type: `file`, default: `$id.$key.fastq_2.fastq`. Output file for read 2."
            ,
                "default": "$id.$key.fastq_2.fastq"
            }
    

}
},
    
    
    "optional arguments" : {
    "title": "Optional arguments",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "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_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"
            }
    

        ,
                "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"
            }
    

}
},
    
    
    "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/input"
    },

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

    {
    "$ref": "#/definitions/optional arguments"
    },

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