{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "sortmerna",
"description": "Local sequence alignment tool for filtering, mapping and clustering. The main \napplication of SortMeRNA is filtering rRNA from metatranscriptomic data.\n",
"type": "object",
"definitions": {

    
    
    "input" : {
    "title": "Input",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "paired": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Reads are paired-end",
                "help_text": "Type: `boolean_true`, default: `false`. Reads are paired-end. If a single reads file is provided, use this option \nto indicate the file contains interleaved paired reads when neither\n\u0027paired_in\u0027 | \u0027paired_out\u0027 | \u0027out2\u0027 | \u0027sout\u0027 are specified.\n"
            ,
                "default": "False"
            }
    

        ,
                "input": {
                "type":
                "string",
                "description": "Type: List of `file`, multiple_sep: `\";\"`. Input fastq",
                "help_text": "Type: List of `file`, multiple_sep: `\";\"`. Input fastq"
            
            }
    

        ,
                "ref": {
                "type":
                "string",
                "description": "Type: List of `file`, multiple_sep: `\";\"`. Reference fasta file(s) for rRNA database",
                "help_text": "Type: List of `file`, multiple_sep: `\";\"`. Reference fasta file(s) for rRNA database."
            
            }
    

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

}
},
    
    
    "output" : {
    "title": "Output",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "log": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.log.log`, example: `$id.sortmerna.log`. Sortmerna log file",
                "help_text": "Type: `file`, default: `$id.$key.log.log`, example: `$id.sortmerna.log`. Sortmerna log file."
            ,
                "default": "$id.$key.log.log"
            }
    

        ,
                "output": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.output.output`. Directory and file prefix for aligned output",
                "help_text": "Type: `file`, default: `$id.$key.output.output`. Directory and file prefix for aligned output. The appropriate extension: \n(fasta|fastq|blast|sam|etc) is automatically added.\nIf \u0027dir\u0027 is not specified, the output is created in the WORKDIR/out/.\nIf \u0027pfx\u0027 is not specified, the prefix \u0027aligned\u0027 is used.\n"
            ,
                "default": "$id.$key.output.output"
            }
    

        ,
                "other": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.other.other`. Create Non-aligned reads output file with this path/prefix",
                "help_text": "Type: `file`, default: `$id.$key.other.other`. Create Non-aligned reads output file with this path/prefix. Must be used with fastx."
            ,
                "default": "$id.$key.other.other"
            }
    

}
},
    
    
    "options" : {
    "title": "Options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "kvdb": {
                "type":
                "string",
                "description": "Type: `string`. Path to directory of the key-value database file, used for storing the alignment results",
                "help_text": "Type: `string`. Path to directory of the key-value database file, used for storing the alignment results."
            
            }
    

        ,
                "idx_dir": {
                "type":
                "string",
                "description": "Type: `string`. Path to the directory for storing the reference index files",
                "help_text": "Type: `string`. Path to the directory for storing the reference index files."
            
            }
    

        ,
                "readb": {
                "type":
                "string",
                "description": "Type: `string`. Path to the directory for storing pre-processed reads",
                "help_text": "Type: `string`. Path to the directory for storing pre-processed reads."
            
            }
    

        ,
                "fastx": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Output aligned reads into FASTA/FASTQ file",
                "help_text": "Type: `boolean_true`, default: `false`. Output aligned reads into FASTA/FASTQ file"
            ,
                "default": "False"
            }
    

        ,
                "sam": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Output SAM alignment for aligned reads",
                "help_text": "Type: `boolean_true`, default: `false`. Output SAM alignment for aligned reads."
            ,
                "default": "False"
            }
    

        ,
                "sq": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Add SQ tags to the SAM file",
                "help_text": "Type: `boolean_true`, default: `false`. Add SQ tags to the SAM file"
            ,
                "default": "False"
            }
    

        ,
                "blast": {
                "type":
                "string",
                "description": "Type: `string`, choices: ``0`, `1`, `1 cigar`, `1 cigar qcov`, `1 cigar qcov qstrand``. Blast options:\n* \u00270\u0027                    - pairwise\n* \u00271\u0027                    - tabular(Blast - m 8 format)\n* \u00271 cigar\u0027              - tabular + column for CIGAR\n* \u00271 cigar qcov\u0027         - tabular + columns for CIGAR and query coverage\n* \u00271 cigar qcov qstrand\u0027 - tabular + columns for CIGAR, query coverage and strand\n",
                "help_text": "Type: `string`, choices: ``0`, `1`, `1 cigar`, `1 cigar qcov`, `1 cigar qcov qstrand``. Blast options:\n* \u00270\u0027                    - pairwise\n* \u00271\u0027                    - tabular(Blast - m 8 format)\n* \u00271 cigar\u0027              - tabular + column for CIGAR\n* \u00271 cigar qcov\u0027         - tabular + columns for CIGAR and query coverage\n* \u00271 cigar qcov qstrand\u0027 - tabular + columns for CIGAR, query coverage and strand\n",
                "enum": ["0", "1", "1 cigar", "1 cigar qcov", "1 cigar qcov qstrand"]
            
            
            }
    

        ,
                "num_alignments": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Report first INT alignments per read reaching E-value",
                "help_text": "Type: `integer`, example: `0`. Report first INT alignments per read reaching E-value. If Int = 0, all alignments will be output. Default: \u00270\u0027\n"
            
            }
    

        ,
                "min_lis": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `2`. search all alignments having the first INT longest LIS",
                "help_text": "Type: `integer`, example: `2`. search all alignments having the first INT longest LIS. LIS stands for Longest Increasing Subsequence, it is\ncomputed using seeds\u0027 positions to expand hits into longer matches prior to Smith-Waterman alignment. Default: \u00272\u0027.\n"
            
            }
    

        ,
                "print_all_reads": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. output null alignment strings for non-aligned reads to SAM and/or BLAST tabular files",
                "help_text": "Type: `boolean_true`, default: `false`. output null alignment strings for non-aligned reads to SAM and/or BLAST tabular files."
            ,
                "default": "False"
            }
    

        ,
                "paired_in": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. In the case where a pair of reads is aligned with a score above the threshold, the output of the reads is controlled\nby the following options:\n* --paired_in and --paired_out are both false: Only one read per pair is output to the aligned fasta file",
                "help_text": "Type: `boolean_true`, default: `false`. In the case where a pair of reads is aligned with a score above the threshold, the output of the reads is controlled\nby the following options:\n* --paired_in and --paired_out are both false: Only one read per pair is output to the aligned fasta file.\n* --paired_in is true and --paired_out is false: Both reads of the pair are output to the aligned fasta file.\n* --paired_in is false and --paired_out is true: Both reads are output the the other fasta file (if it is specified).\n"
            ,
                "default": "False"
            }
    

        ,
                "paired_out": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. See description of --paired_in",
                "help_text": "Type: `boolean_true`, default: `false`. See description of --paired_in."
            ,
                "default": "False"
            }
    

        ,
                "out2": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Output paired reads into separate files",
                "help_text": "Type: `boolean_true`, default: `false`. Output paired reads into separate files. Must be used with \u0027--fastx\u0027. If a single reads file is provided, this options\nimplies interleaved paired reads. When used with \u0027sout\u0027, four (4) output files for aligned reads will be generated:\n\u0027aligned-paired-fwd, aligned-paired-rev, aligned-singleton-fwd, aligned-singleton-rev\u0027. If \u0027other\u0027 option is also used,\neight (8) output files will be generated.\n"
            ,
                "default": "False"
            }
    

        ,
                "sout": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Separate paired and singleton aligned reads",
                "help_text": "Type: `boolean_true`, default: `false`. Separate paired and singleton aligned reads. Must be used with \u0027--fastx\u0027. If a single reads file is provided,\nthis options implies interleaved paired reads. Cannot be used with \u0027--paired_in\u0027 or \u0027--paired_out\u0027.\n"
            ,
                "default": "False"
            }
    

        ,
                "zip_out": {
                "type":
                "string",
                "description": "Type: `string`, example: `-1`, choices: ``1`, `true`, `t`, `yes`, `y`, `0`, `false`, `f`, `no`, `n`, `-1``. Compress the output files",
                "help_text": "Type: `string`, example: `-1`, choices: ``1`, `true`, `t`, `yes`, `y`, `0`, `false`, `f`, `no`, `n`, `-1``. Compress the output files. The possible values are: \n* \u00271/true/t/yes/y\u0027\n* \u00270/false/f/no/n\u0027\n*\u0027-1\u0027 (the same format as input - default)\nThe values are Not case sensitive.\n",
                "enum": ["1", "true", "t", "yes", "y", "0", "false", "f", "no", "n", "-1"]
            
            
            }
    

        ,
                "match": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `2`. Smith-Waterman score for a match (positive integer)",
                "help_text": "Type: `integer`, example: `2`. Smith-Waterman score for a match (positive integer). Default: \u00272\u0027.\n"
            
            }
    

        ,
                "mismatch": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `-3`. Smith-Waterman penalty for a mismatch (negative integer)",
                "help_text": "Type: `integer`, example: `-3`. Smith-Waterman penalty for a mismatch (negative integer). Default: \u0027-3\u0027.\n"
            
            }
    

        ,
                "gap_open": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `5`. Smith-Waterman penalty for introducing a gap (positive integer)",
                "help_text": "Type: `integer`, example: `5`. Smith-Waterman penalty for introducing a gap (positive integer). Default: \u00275\u0027.\n"
            
            }
    

        ,
                "gap_ext": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `2`. Smith-Waterman penalty for extending a gap (positive integer)",
                "help_text": "Type: `integer`, example: `2`. Smith-Waterman penalty for extending a gap (positive integer). Default: \u00272\u0027.\n"
            
            }
    

        ,
                "N": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `-1`. Smith-Waterman penalty for ambiguous letters (N\u0027s) scored as --mismatch",
                "help_text": "Type: `integer`, example: `-1`. Smith-Waterman penalty for ambiguous letters (N\u0027s) scored as --mismatch. Default: \u0027-1\u0027.\n"
            
            }
    

        ,
                "a": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1`. Number of threads to use",
                "help_text": "Type: `integer`, example: `1`. Number of threads to use. Default: \u00271\u0027.\n"
            
            }
    

        ,
                "e": {
                "type":
                "number",
                "description": "Type: `double`, example: `1.0`. E-value threshold",
                "help_text": "Type: `double`, example: `1.0`. E-value threshold. Default: \u00271\u0027.\n"
            
            }
    

        ,
                "F": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Search only the forward strand",
                "help_text": "Type: `boolean_true`, default: `false`. Search only the forward strand."
            ,
                "default": "False"
            }
    

        ,
                "R": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Search only the reverse-complementary strand",
                "help_text": "Type: `boolean_true`, default: `false`. Search only the reverse-complementary strand."
            ,
                "default": "False"
            }
    

        ,
                "num_alignment": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `-1`. Report first INT alignments per read reaching E-value (--num_alignments 0 signifies all alignments will be output)",
                "help_text": "Type: `integer`, example: `-1`. Report first INT alignments per read reaching E-value (--num_alignments 0 signifies all alignments will be output).\nDefault: \u0027-1\u0027\n"
            
            }
    

        ,
                "best": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1`. Report INT best alignments per read reaching E-value by searching --min_lis INT candidate alignments (--best 0\nsignifies all candidate alignments will be searched) Default: \u00271\u0027",
                "help_text": "Type: `integer`, example: `1`. Report INT best alignments per read reaching E-value by searching --min_lis INT candidate alignments (--best 0\nsignifies all candidate alignments will be searched) Default: \u00271\u0027.\n"
            
            }
    

        ,
                "verbose": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Verbose output",
                "help_text": "Type: `boolean_true`, default: `false`. Verbose output."
            ,
                "default": "False"
            }
    

}
},
    
    
    "otu picking options" : {
    "title": "OTU picking options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "id": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.97`. %id similarity threshold (the alignment must still pass the E-value threshold)",
                "help_text": "Type: `double`, example: `0.97`. %id similarity threshold (the alignment must still pass the E-value threshold). Default: \u00270.97\u0027.\n"
            
            }
    

        ,
                "coverage": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.97`. %query coverage threshold (the alignment must still pass the E-value threshold)",
                "help_text": "Type: `double`, example: `0.97`. %query coverage threshold (the alignment must still pass the E-value threshold). Default: \u00270.97\u0027.\n"
            
            }
    

        ,
                "de_novo": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. FASTA/FASTQ file for reads matching database \u003c %id off (set using --id) and \u003c %cov (set using --coverage)\n(alignment must still pass the E-value threshold)",
                "help_text": "Type: `boolean_true`, default: `false`. FASTA/FASTQ file for reads matching database \u003c %id off (set using --id) and \u003c %cov (set using --coverage)\n(alignment must still pass the E-value threshold).\n"
            ,
                "default": "False"
            }
    

        ,
                "otu_map": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Output OTU map (input to QIIME\u0027s make_otu_table",
                "help_text": "Type: `boolean_true`, default: `false`. Output OTU map (input to QIIME\u0027s make_otu_table.py).\n"
            ,
                "default": "False"
            }
    

}
},
    
    
    "advanced options" : {
    "title": "Advanced options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "num_seed": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `2`. Number of seeds matched before searching for candidate LIS",
                "help_text": "Type: `integer`, example: `2`. Number of seeds matched before searching for candidate LIS. Default: \u00272\u0027.\n"
            
            }
    

        ,
                "passes": {
                "type":
                "string",
                "description": "Type: List of `integer`, multiple_sep: `\";\"`. Three intervals at which to place the seed on the read L,L/2,3 (L is the seed length set in ",
                "help_text": "Type: List of `integer`, multiple_sep: `\";\"`. Three intervals at which to place the seed on the read L,L/2,3 (L is the seed length set in ./indexdb_rna).\n"
            
            }
    

        ,
                "edge": {
                "type":
                "string",
                "description": "Type: `string`, example: `4`. The number (or percentage if followed by %) of nucleotides to add to each edge of the alignment region on the\nreference sequence before performing Smith-Waterman alignment",
                "help_text": "Type: `string`, example: `4`. The number (or percentage if followed by %) of nucleotides to add to each edge of the alignment region on the\nreference sequence before performing Smith-Waterman alignment. Default: \u00274\u0027.\n"
            
            }
    

        ,
                "full_search": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Search for all 0-error and 1-error seed off matches in the index rather than stopping after finding a 0-error match\n(\u003c1% gain in sensitivity with up four-fold decrease in speed)",
                "help_text": "Type: `boolean_true`, default: `false`. Search for all 0-error and 1-error seed off matches in the index rather than stopping after finding a 0-error match\n(\u003c1% gain in sensitivity with up four-fold decrease in speed).\n"
            ,
                "default": "False"
            }
    

}
},
    
    
    "indexing options" : {
    "title": "Indexing Options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "index": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `2`, choices: ``0`, `1`, `2``. Create index files for the reference database",
                "help_text": "Type: `integer`, example: `2`, choices: ``0`, `1`, `2``. Create index files for the reference database. By default when this option is not used, the program checks the\nreference index and builds it if not already existing.\nThis can be changed by using \u0027-index\u0027 as follows:\n* \u0027-index 0\u0027 - skip indexing. If the index does not exist, the program will terminate\n                        and warn to build the index prior performing the alignment\n* \u0027-index 1\u0027 - only perform the indexing and terminate\n* \u0027-index 2\u0027 - the default behaviour, the same as when not using this option at all\n",
                "enum": [0, 1, 2]
            
            
            }
    

        ,
                "-L": {
                "type":
                "number",
                "description": "Type: `double`, example: `18.0`. Indexing seed length",
                "help_text": "Type: `double`, example: `18.0`. Indexing seed length. Default: \u002718\u0027\n"
            
            }
    

        ,
                "interval": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1`. Index every Nth L-mer in the reference database",
                "help_text": "Type: `integer`, example: `1`. Index every Nth L-mer in the reference database. Default: \u00271\u0027\n"
            
            }
    

        ,
                "max_pos": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1000`. Maximum number of positions to store for each unique L-mer",
                "help_text": "Type: `integer`, example: `1000`. Maximum number of positions to store for each unique L-mer. Set to 0 to store all positions. Default: \u00271000\u0027\n"
            
            }
    

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

    {
    "$ref": "#/definitions/otu picking options"
    },

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

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

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