{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "samtools_fastq",
"description": "Converts a SAM, BAM or CRAM to FASTQ format.",
"type": "object",
"definitions": {

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

}
},
    
    
    "outputs" : {
    "title": "Outputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "output": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.output.output`. output FASTQ file",
                "help_text": "Type: `file`, required, default: `$id.$key.output.output`. output FASTQ file"
            ,
                "default": "$id.$key.output.output"
            }
    

}
},
    
    
    "options" : {
    "title": "Options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "no_suffix": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. By default, either \u0027/1\u0027 or \u0027/2\u0027 is added to the end of read names where the corresponding \nREAD1 or READ2 FLAG bit is set",
                "help_text": "Type: `boolean_true`, default: `false`. By default, either \u0027/1\u0027 or \u0027/2\u0027 is added to the end of read names where the corresponding \nREAD1 or READ2 FLAG bit is set. Using -n causes read names to be left as they are.\n"
            ,
                "default": "False"
            }
    

        ,
                "suffix": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Always add either \u0027/1\u0027 or \u0027/2\u0027 to the end of read names even when put into different files",
                "help_text": "Type: `boolean_true`, default: `false`. Always add either \u0027/1\u0027 or \u0027/2\u0027 to the end of read names even when put into different files.\n"
            ,
                "default": "False"
            }
    

        ,
                "use_oq": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Use quality values from OQ tags in preference to standard quality string if available",
                "help_text": "Type: `boolean_true`, default: `false`. Use quality values from OQ tags in preference to standard quality string if available.\n"
            ,
                "default": "False"
            }
    

        ,
                "singleton": {
                "type":
                "string",
                "description": "Type: `file`. write singleton reads to FILE",
                "help_text": "Type: `file`. write singleton reads to FILE."
            
            }
    

        ,
                "copy_tags": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Copy RG, BC and QT tags to the FASTQ header line, if they exist",
                "help_text": "Type: `boolean_true`, default: `false`. Copy RG, BC and QT tags to the FASTQ header line, if they exist.\n"
            ,
                "default": "False"
            }
    

        ,
                "copy_tags_list": {
                "type":
                "string",
                "description": "Type: `string`. Specify a comma-separated list of tags to copy to the FASTQ header line, if they exist",
                "help_text": "Type: `string`. Specify a comma-separated list of tags to copy to the FASTQ header line, if they exist. \nTAGLIST can be blank or `*` to indicate all tags should be copied to the output. If using `*`, \nbe careful to quote it to avoid unwanted shell expansion.\n"
            
            }
    

        ,
                "read1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.read1.read1`. Write reads with the READ1 FLAG set (and READ2 not set) to FILE instead of outputting them",
                "help_text": "Type: `file`, default: `$id.$key.read1.read1`. Write reads with the READ1 FLAG set (and READ2 not set) to FILE instead of outputting them. \nIf the -s option is used, only paired reads will be written to this file.\n"
            ,
                "default": "$id.$key.read1.read1"
            }
    

        ,
                "read2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.read2.read2`. Write reads with the READ2 FLAG set (and READ1 not set) to FILE instead of outputting them",
                "help_text": "Type: `file`, default: `$id.$key.read2.read2`. Write reads with the READ2 FLAG set (and READ1 not set) to FILE instead of outputting them. \nIf the -s option is used, only paired reads will be written to this file.\n"
            ,
                "default": "$id.$key.read2.read2"
            }
    

        ,
                "output_reads": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.output_reads.output_reads`. Write reads with either READ1 FLAG or READ2 flag set to FILE instead of outputting them to stdout",
                "help_text": "Type: `file`, default: `$id.$key.output_reads.output_reads`. Write reads with either READ1 FLAG or READ2 flag set to FILE instead of outputting them to stdout. \nThis is equivalent to -1 FILE -2 FILE.\n"
            ,
                "default": "$id.$key.output_reads.output_reads"
            }
    

        ,
                "output_reads_both": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.output_reads_both.output_reads_both`. Write reads where the READ1 and READ2 FLAG bits set are either both set or both unset to FILE \ninstead of outputting them",
                "help_text": "Type: `file`, default: `$id.$key.output_reads_both.output_reads_both`. Write reads where the READ1 and READ2 FLAG bits set are either both set or both unset to FILE \ninstead of outputting them.\n"
            ,
                "default": "$id.$key.output_reads_both.output_reads_both"
            }
    

        ,
                "filter_flags": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Only output alignments with all bits set in INT present in the FLAG field",
                "help_text": "Type: `integer`, example: `0`. Only output alignments with all bits set in INT present in the FLAG field. INT can be specified \nin hex by beginning with \u00270x\u0027 (i.e. /^0x[0-9A-F]+/) or in octal by beginning with \u00270\u0027\n(i.e. /^0[0-7]+/). Default: `0`.\n"
            
            }
    

        ,
                "excl_flags": {
                "type":
                "string",
                "description": "Type: `string`, example: `0x900`. Do not output alignments with any bits set in INT present in the FLAG field",
                "help_text": "Type: `string`, example: `0x900`. Do not output alignments with any bits set in INT present in the FLAG field. INT can be specified \nin hex by beginning with \u00270x\u0027 (i.e. /^0x[0-9A-F]+/) or in octal by beginning with \u00270\u0027 \n(i.e. /^0[0-7]+/). This defaults to 0x900 representing filtering of secondary and \nsupplementary alignments. Default: `0x900`.\n"
            
            }
    

        ,
                "incl_flags": {
                "type":
                "string",
                "description": "Type: `string`, example: `0`. Only output alignments with any bits set in INT present in the FLAG field",
                "help_text": "Type: `string`, example: `0`. Only output alignments with any bits set in INT present in the FLAG field. INT can be specified \nin hex by beginning with \u00270x\u0027 (i.e. /^0x[0-9A-F]+/), in octal by beginning with \u00270\u0027\n(i.e. /^0[0-7]+/), as a decimal number not beginning with \u00270\u0027 or as a comma-separated list of \nflag names. Default: `0`.\n"
            
            }
    

        ,
                "excl_flags_all": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Only EXCLUDE reads with all of the bits set in INT present in the FLAG field",
                "help_text": "Type: `integer`, example: `0`. Only EXCLUDE reads with all of the bits set in INT present in the FLAG field. INT can be specified \nin hex by beginning with \u00270x\u0027 (i.e. /^0x[0-9A-F]+/) or in octal by beginning with \u00270\u0027 (i.e. /^0[0-7]+/).\nDefault: `0`.\n"
            
            }
    

        ,
                "aux_tag": {
                "type":
                "string",
                "description": "Type: `string`. Only output alignments containing an auxiliary tag matching both TAG and VAL",
                "help_text": "Type: `string`. Only output alignments containing an auxiliary tag matching both TAG and VAL. If VAL is omitted \nthen any value is accepted. The tag types supported are i, f, Z, A and H. \"B\" arrays are not \nsupported. This is comparable to the method used in samtools view --tag. The option may be specified \nmultiple times and is equivalent to using the --aux_tag_file option.\n"
            
            }
    

        ,
                "aux_tag_file": {
                "type":
                "string",
                "description": "Type: `string`. Only output alignments containing an auxiliary tag matching TAG and having a value listed in FILE",
                "help_text": "Type: `string`. Only output alignments containing an auxiliary tag matching TAG and having a value listed in FILE. \nThe format of the file is one line per value. This is equivalent to specifying --aux_tag multiple times.\n"
            
            }
    

        ,
                "casava": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Add Illumina Casava 1",
                "help_text": "Type: `boolean_true`, default: `false`. Add Illumina Casava 1.8 format entry to header, for example: `1:N:0:ATCACG`.\n"
            ,
                "default": "False"
            }
    

        ,
                "compression": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. set compression level when writing gz or bgzf fastq files",
                "help_text": "Type: `integer`, example: `0`. set compression level when writing gz or bgzf fastq files."
            
            }
    

        ,
                "index1": {
                "type":
                "string",
                "description": "Type: `file`. write first index reads to FILE",
                "help_text": "Type: `file`. write first index reads to FILE."
            
            }
    

        ,
                "index2": {
                "type":
                "string",
                "description": "Type: `file`. write second index reads to FILE",
                "help_text": "Type: `file`. write second index reads to FILE."
            
            }
    

        ,
                "barcode_tag": {
                "type":
                "string",
                "description": "Type: `string`, example: `BC`. Auxiliary tag to find index reads in",
                "help_text": "Type: `string`, example: `BC`. Auxiliary tag to find index reads in. Default: `BC`.\n"
            
            }
    

        ,
                "quality_tag": {
                "type":
                "string",
                "description": "Type: `string`, example: `QT`. Auxiliary tag to find index quality in",
                "help_text": "Type: `string`, example: `QT`. Auxiliary tag to find index quality in. Default: `QT`.\n"
            
            }
    

        ,
                "index_format": {
                "type":
                "string",
                "description": "Type: `string`. string to describe how to parse the barcode and quality tags",
                "help_text": "Type: `string`. string to describe how to parse the barcode and quality tags. For example:\n* `i14i8`: the first 14 characters are index 1, the next 8 characters are index 2.\n* `n8i14`: ignore the first 8 characters, and use the next 14 characters for index 1.\nIf the tag contains a separator, then the numeric part can be replaced with \u0027*\u0027 to mean \n\u0027read until the separator or end of tag\u0027, for example: `n*i*`.\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"
    }
]
}
