{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "bcftools_stats",
"description": "Parses VCF or BCF and produces a txt stats file which can be plotted using plot-vcfstats.\nWhen two files are given, the program generates separate stats for intersection\nand the complements. By default only sites are compared, -s/-S must given to include\nalso sample columns.\n",
"type": "object",
"definitions": {

    
    
    "inputs" : {
    "title": "Inputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "input": {
                "type":
                "string",
                "description": "Type: List of `file`, required, multiple_sep: `\";\"`. Input VCF/BCF file",
                "help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. Input VCF/BCF file. Maximum of two files."
            
            }
    

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

}
},
    
    
    "options" : {
    "title": "Options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "allele_frequency_bins": {
                "type":
                "string",
                "description": "Type: `string`, example: `0.1,0.5,1`. Allele frequency bins, a list of bin values (0",
                "help_text": "Type: `string`, example: `0.1,0.5,1`. Allele frequency bins, a list of bin values (0.1,0.5,1).\n"
            
            }
    

        ,
                "allele_frequency_bins_file": {
                "type":
                "string",
                "description": "Type: `file`. Same as allele_frequency_bins, but in a file",
                "help_text": "Type: `file`. Same as allele_frequency_bins, but in a file.\nFormat of file is one value per line. \ne.g. \n  0.1\n  0.5\n  1\n"
            
            }
    

        ,
                "allele_frequency_tag": {
                "type":
                "string",
                "description": "Type: `string`. Allele frequency tag to use, by default estimated from AN,AC or GT",
                "help_text": "Type: `string`. Allele frequency tag to use, by default estimated from AN,AC or GT.\n"
            
            }
    

        ,
                "first_allele_only": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Include only 1st allele at multiallelic sites",
                "help_text": "Type: `boolean_true`, default: `false`. Include only 1st allele at multiallelic sites.\n"
            ,
                "default": "False"
            }
    

        ,
                "collapse": {
                "type":
                "string",
                "description": "Type: `string`, choices: ``snps`, `indels`, `both`, `all`, `some`, `none``. Treat as identical records with \u003csnps|indels|both|all|some|none\u003e",
                "help_text": "Type: `string`, choices: ``snps`, `indels`, `both`, `all`, `some`, `none``. Treat as identical records with \u003csnps|indels|both|all|some|none\u003e.\nSee https://samtools.github.io/bcftools/bcftools.html#common_options for details.\n",
                "enum": ["snps", "indels", "both", "all", "some", "none"]
            
            
            }
    

        ,
                "depth": {
                "type":
                "string",
                "description": "Type: `string`, example: `0,500,1`. Depth distribution: min,max,bin size",
                "help_text": "Type: `string`, example: `0,500,1`. Depth distribution: min,max,bin size.\n"
            
            }
    

        ,
                "exclude": {
                "type":
                "string",
                "description": "Type: `string`, example: `QUAL \u003c 30 \u0026\u0026 DP \u003c 10`. Exclude sites for which the expression is true",
                "help_text": "Type: `string`, example: `QUAL \u003c 30 \u0026\u0026 DP \u003c 10`. Exclude sites for which the expression is true.\nSee https://samtools.github.io/bcftools/bcftools.html#expressions for details.\n"
            
            }
    

        ,
                "exons": {
                "type":
                "string",
                "description": "Type: `file`. tab-delimited file with exons for indel frameshifts statistics",
                "help_text": "Type: `file`. tab-delimited file with exons for indel frameshifts statistics. \nThe columns of the file are CHR, FROM, TO, with 1-based, inclusive, positions. \nThe file is BGZF-compressed and indexed with tabix (e.g. tabix -s1 -b2 -e3 file.gz).\n"
            
            }
    

        ,
                "apply_filters": {
                "type":
                "string",
                "description": "Type: `string`. Require at least one of the listed FILTER strings (e",
                "help_text": "Type: `string`. Require at least one of the listed FILTER strings (e.g. \"PASS,.\").\n"
            
            }
    

        ,
                "fasta_reference": {
                "type":
                "string",
                "description": "Type: `file`. Faidx indexed reference sequence file to determine INDEL context",
                "help_text": "Type: `file`. Faidx indexed reference sequence file to determine INDEL context.\n"
            
            }
    

        ,
                "include": {
                "type":
                "string",
                "description": "Type: `string`, example: `QUAL \u003e= 30 \u0026\u0026 DP \u003e= 10`. Select sites for which the expression is true",
                "help_text": "Type: `string`, example: `QUAL \u003e= 30 \u0026\u0026 DP \u003e= 10`. Select sites for which the expression is true.\nSee https://samtools.github.io/bcftools/bcftools.html#expressions for details.\n"
            
            }
    

        ,
                "split_by_ID": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Collect stats for sites with ID separately (known vs novel)",
                "help_text": "Type: `boolean_true`, default: `false`. Collect stats for sites with ID separately (known vs novel).\n"
            ,
                "default": "False"
            }
    

        ,
                "regions": {
                "type":
                "string",
                "description": "Type: `string`, example: `20:1000000-2000000`. Restrict to comma-separated list of regions",
                "help_text": "Type: `string`, example: `20:1000000-2000000`. Restrict to comma-separated list of regions. \nFollowing formats are supported: chr|chr:pos|chr:beg-end|chr:beg-[,\u2026\u200b].\n"
            
            }
    

        ,
                "regions_file": {
                "type":
                "string",
                "description": "Type: `file`. Restrict to regions listed in a file",
                "help_text": "Type: `file`. Restrict to regions listed in a file. \nRegions can be specified either on a VCF, BED, or tab-delimited file (the default). \nFor more information check manual.\n"
            
            }
    

        ,
                "regions_overlap": {
                "type":
                "string",
                "description": "Type: `string`, choices: ``pos`, `record`, `variant`, `0`, `1`, `2``. This option controls how overlapping records are determined: \nset to \u0027pos\u0027 or \u00270\u0027 if the VCF record has to have POS inside a region (this corresponds to the default behavior of -t/-T); \nset to \u0027record\u0027 or \u00271\u0027 if also overlapping records with POS outside a region should be included (this is the default behavior of -r/-R, \nand includes indels with POS at the end of a region, which are technically outside the region); \nor set to \u0027variant\u0027 or \u00272\u0027 to include only true overlapping variation (compare the full VCF representation \"TA\u003eT-\" vs the true sequence variation \"A\u003e-\")",
                "help_text": "Type: `string`, choices: ``pos`, `record`, `variant`, `0`, `1`, `2``. This option controls how overlapping records are determined: \nset to \u0027pos\u0027 or \u00270\u0027 if the VCF record has to have POS inside a region (this corresponds to the default behavior of -t/-T); \nset to \u0027record\u0027 or \u00271\u0027 if also overlapping records with POS outside a region should be included (this is the default behavior of -r/-R, \nand includes indels with POS at the end of a region, which are technically outside the region); \nor set to \u0027variant\u0027 or \u00272\u0027 to include only true overlapping variation (compare the full VCF representation \"TA\u003eT-\" vs the true sequence variation \"A\u003e-\").\n",
                "enum": ["pos", "record", "variant", "0", "1", "2"]
            
            
            }
    

        ,
                "samples": {
                "type":
                "string",
                "description": "Type: `string`. List of samples for sample stats, \"-\" to include all samples",
                "help_text": "Type: `string`. List of samples for sample stats, \"-\" to include all samples.\n"
            
            }
    

        ,
                "samples_file": {
                "type":
                "string",
                "description": "Type: `file`. File of samples to include",
                "help_text": "Type: `file`. File of samples to include.\ne.g. \n  sample1    1\n  sample2    2\n  sample3    2\n"
            
            }
    

        ,
                "targets": {
                "type":
                "string",
                "description": "Type: `string`, example: `20:1000000-2000000`. Similar as -r, --regions, but the next position is accessed by streaming the whole VCF/BCF \nrather than using the tbi/csi index",
                "help_text": "Type: `string`, example: `20:1000000-2000000`. Similar as -r, --regions, but the next position is accessed by streaming the whole VCF/BCF \nrather than using the tbi/csi index. Both -r and -t options can be applied simultaneously: -r uses the \nindex to jump to a region and -t discards positions which are not in the targets. Unlike -r, targets \ncan be prefixed with \"^\" to request logical complement. For example, \"^X,Y,MT\" indicates that \nsequences X, Y and MT should be skipped. Yet another difference between the -t/-T and -r/-R is \nthat -r/-R checks for proper overlaps and considers both POS and the end position of an indel, \nwhile -t/-T considers the POS coordinate only (by default; see also --regions-overlap and --targets-overlap). \nNote that -t cannot be used in combination with -T.\nFollowing formats are supported: chr|chr:pos|chr:beg-end|chr:beg-[,\u2026\u200b].\n"
            
            }
    

        ,
                "targets_file": {
                "type":
                "string",
                "description": "Type: `file`. Similar to --regions_file option but streams rather than index-jumps",
                "help_text": "Type: `file`. Similar to --regions_file option but streams rather than index-jumps.\n"
            
            }
    

        ,
                "targets_overlaps": {
                "type":
                "string",
                "description": "Type: `string`, choices: ``pos`, `record`, `variant`, `0`, `1`, `2``. Include if POS in the region (0), record overlaps (1), variant overlaps (2)",
                "help_text": "Type: `string`, choices: ``pos`, `record`, `variant`, `0`, `1`, `2``. Include if POS in the region (0), record overlaps (1), variant overlaps (2).\n",
                "enum": ["pos", "record", "variant", "0", "1", "2"]
            
            
            }
    

        ,
                "user_tstv": {
                "type":
                "string",
                "description": "Type: `string`. Collect Ts/Tv stats for any tag using the given binning [0:1:100]",
                "help_text": "Type: `string`. Collect Ts/Tv stats for any tag using the given binning [0:1:100].\nFormat is \u003cTAG[:min:max:n]\u003e.\nA subfield can be selected as e.g. \u0027PV4[0]\u0027, here the first value of the PV4 tag.\n"
            
            }
    

        ,
                "verbose": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Produce verbose per-site and per-sample output",
                "help_text": "Type: `boolean_true`, default: `false`. Produce verbose per-site and per-sample output.\n"
            ,
                "default": "False"
            }
    

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