{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "samtools_sort",
"description": "Sort SAM/BAM/CRAM file.",
"type": "object",
"definitions": {

    
    
    "inputs" : {
    "title": "Inputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "input": {
                "type":
                "string",
                "description": "Type: `file`, required. SAM/BAM/CRAM input file",
                "help_text": "Type: `file`, required. SAM/BAM/CRAM input file."
            
            }
    

}
},
    
    
    "outputs" : {
    "title": "Outputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "output": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.output.bam`, example: `out.bam`. Write final output to file",
                "help_text": "Type: `file`, required, default: `$id.$key.output.bam`, example: `out.bam`. Write final output to file.\n"
            ,
                "default":"$id.$key.output.bam"
            }
    

        ,
                "output_fmt": {
                "type":
                "string",
                "description": "Type: `string`, example: `BAM`. Specify output format (SAM, BAM, CRAM)",
                "help_text": "Type: `string`, example: `BAM`. Specify output format (SAM, BAM, CRAM).\n"
            
            }
    

        ,
                "output_fmt_option": {
                "type":
                "string",
                "description": "Type: `string`. Specify a single output file format option in the form\nof OPTION or OPTION=VALUE",
                "help_text": "Type: `string`. Specify a single output file format option in the form\nof OPTION or OPTION=VALUE.\n"
            
            }
    

        ,
                "reference": {
                "type":
                "string",
                "description": "Type: `file`, example: `ref.fa`. Reference sequence FASTA FILE",
                "help_text": "Type: `file`, example: `ref.fa`. Reference sequence FASTA FILE.\n"
            
            }
    

        ,
                "write_index": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Automatically index the output files",
                "help_text": "Type: `boolean_true`, default: `false`. Automatically index the output files.\n"
            ,
                "default":false
            }
    

        ,
                "prefix": {
                "type":
                "string",
                "description": "Type: `string`. Write temporary files to PREFIX",
                "help_text": "Type: `string`. Write temporary files to PREFIX.nnnn.bam.\n"
            
            }
    

        ,
                "no_PG": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Do not add a PG line",
                "help_text": "Type: `boolean_true`, default: `false`. Do not add a PG line.\n"
            ,
                "default":false
            }
    

        ,
                "template_coordinate": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Sort by template-coordinate",
                "help_text": "Type: `boolean_true`, default: `false`. Sort by template-coordinate.\n"
            ,
                "default":false
            }
    

        ,
                "input_fmt_option": {
                "type":
                "string",
                "description": "Type: `string`. Specify a single input file format option in the form\nof OPTION or OPTION=VALUE",
                "help_text": "Type: `string`. Specify a single input file format option in the form\nof OPTION or OPTION=VALUE.\n"
            
            }
    

}
},
    
    
    "options" : {
    "title": "Options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "compression": {
                "type":
                "integer",
                "description": "Type: `integer`, default: `0`. Set compression level, from 0 (uncompressed) to 9 (best)",
                "help_text": "Type: `integer`, default: `0`. Set compression level, from 0 (uncompressed) to 9 (best).\n"
            ,
                "default":0
            }
    

        ,
                "uncompressed": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Output uncompressed data (equivalent to --compression 0)",
                "help_text": "Type: `boolean_true`, default: `false`. Output uncompressed data (equivalent to --compression 0).\n"
            ,
                "default":false
            }
    

        ,
                "minimiser": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Use minimiser for clustering unaligned/unplaced reads",
                "help_text": "Type: `boolean_true`, default: `false`. Use minimiser for clustering unaligned/unplaced reads.\n"
            ,
                "default":false
            }
    

        ,
                "not_reverse": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Do not use reverse strand (only compatible with --minimiser)\n",
                "help_text": "Type: `boolean_true`, default: `false`. Do not use reverse strand (only compatible with --minimiser)\n"
            ,
                "default":false
            }
    

        ,
                "kmer_size": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `20`. Kmer size to use for minimiser",
                "help_text": "Type: `integer`, example: `20`. Kmer size to use for minimiser.\n"
            
            }
    

        ,
                "order": {
                "type":
                "string",
                "description": "Type: `file`, example: `ref.fa`. Order minimisers by their position in FILE FASTA",
                "help_text": "Type: `file`, example: `ref.fa`. Order minimisers by their position in FILE FASTA.\n"
            
            }
    

        ,
                "window": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `100`. Window size for minimiser INDEXING VIA --order REF",
                "help_text": "Type: `integer`, example: `100`. Window size for minimiser INDEXING VIA --order REF.FA.\n"
            
            }
    

        ,
                "homopolymers": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Squash homopolymers when computing minimiser",
                "help_text": "Type: `boolean_true`, default: `false`. Squash homopolymers when computing minimiser.\n"
            ,
                "default":false
            }
    

        ,
                "natural_sort": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Sort by read name (natural): cannot be used with samtools index",
                "help_text": "Type: `boolean_true`, default: `false`. Sort by read name (natural): cannot be used with samtools index.\n"
            ,
                "default":false
            }
    

        ,
                "ascii_sort": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Sort by read name (ASCII): cannot be used with samtools index",
                "help_text": "Type: `boolean_true`, default: `false`. Sort by read name (ASCII): cannot be used with samtools index.\n"
            ,
                "default":false
            }
    

        ,
                "tag": {
                "type":
                "string",
                "description": "Type: `string`. Sort by value of TAG",
                "help_text": "Type: `string`. Sort by value of TAG. Uses position as secondary index \n(or read name if --natural_sort is set).\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/inputs"
    },

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

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

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