{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "bcftools_annotate",
"description": "Add or remove annotations from a VCF/BCF file.\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."
            
            }
    

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

}
},
    
    
    "options" : {
    "title": "Options",
    "type": "object",
    "description": "For examples on how to use use bcftools annotate see http://samtools.github.io/bcftools/howtos/annotate.html.\nFor more details on the options see https://samtools.github.io/bcftools/bcftools.html#annotate.\n",
    "properties": {
    
        
                "annotations": {
                "type":
                "string",
                "description": "Type: `file`. VCF file or tabix-indexed FILE with annotations: CHR\\tPOS[\\tVALUE]+ ",
                "help_text": "Type: `file`. VCF file or tabix-indexed FILE with annotations: CHR\\tPOS[\\tVALUE]+ . \n"
            
            }
    

        ,
                "columns": {
                "type":
                "string",
                "description": "Type: `string`. List of columns in the annotation file, e",
                "help_text": "Type: `string`. List of columns in the annotation file, e.g. CHROM,POS,REF,ALT,-,INFO/TAG. \nSee man page for details.\n"
            
            }
    

        ,
                "columns_file": {
                "type":
                "string",
                "description": "Type: `file`. Read -c columns from FILE, one name per row, with optional --merge_logic TYPE: NAME[ TYPE]",
                "help_text": "Type: `file`. Read -c columns from FILE, one name per row, with optional --merge_logic TYPE: NAME[ TYPE].\n"
            
            }
    

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

        ,
                "force": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. continue even when parsing errors, such as undefined tags, are encountered",
                "help_text": "Type: `boolean_true`, default: `false`. continue even when parsing errors, such as undefined tags, are encountered. \nNote this can be an unsafe operation and can result in corrupted BCF files. \nIf this option is used, make sure to sanity check the result thoroughly.\n"
            ,
                "default": "False"
            }
    

        ,
                "header_line": {
                "type":
                "string",
                "description": "Type: `string`. Header line which should be appended to the VCF header, can be given multiple times",
                "help_text": "Type: `string`. Header line which should be appended to the VCF header, can be given multiple times.\n"
            
            }
    

        ,
                "header_lines": {
                "type":
                "string",
                "description": "Type: `file`. File with header lines to append to the VCF header",
                "help_text": "Type: `file`. File with header lines to append to the VCF header.\nFor example:\n  ##INFO=\u003cID=NUMERIC_TAG,Number=1,Type=Integer,Description=\"Example header line\"\u003e\n  ##INFO=\u003cID=STRING_TAG,Number=1,Type=String,Description=\"Yet another header line\"\u003e\n"
            
            }
    

        ,
                "set_id": {
                "type":
                "string",
                "description": "Type: `string`. Set ID column using a `bcftools query`-like expression, see man page for details",
                "help_text": "Type: `string`. Set ID column using a `bcftools query`-like expression, see man page for details.\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"
            
            }
    

        ,
                "keep_sites": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Leave --include/--exclude sites unchanged instead of discarding them",
                "help_text": "Type: `boolean_true`, default: `false`. Leave --include/--exclude sites unchanged instead of discarding them.\n"
            ,
                "default": "False"
            }
    

        ,
                "merge_logic": {
                "type":
                "string",
                "description": "Type: `string`. When multiple regions overlap a single record, this option defines how to treat multiple annotation values",
                "help_text": "Type: `string`. When multiple regions overlap a single record, this option defines how to treat multiple annotation values.\nSee man page for more details.\n"
            
            }
    

        ,
                "mark_sites": {
                "type":
                "string",
                "description": "Type: `string`. Annotate sites which are present (\"+\") or absent (\"-\") in the -a file with a new INFO/TAG flag",
                "help_text": "Type: `string`. Annotate sites which are present (\"+\") or absent (\"-\") in the -a file with a new INFO/TAG flag.\n"
            
            }
    

        ,
                "min_overlap": {
                "type":
                "string",
                "description": "Type: `string`. Minimum overlap required as a fraction of the variant in the annotation -a file (ANN), \nin the target VCF file (:VCF), or both for reciprocal overlap (ANN:VCF)",
                "help_text": "Type: `string`. Minimum overlap required as a fraction of the variant in the annotation -a file (ANN), \nin the target VCF file (:VCF), or both for reciprocal overlap (ANN:VCF). \nBy default overlaps of arbitrary length are sufficient. \nThe option can be used only with the tab-delimited annotation -a file and with BEG and END columns present.\n"
            
            }
    

        ,
                "no_version": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Do not append version and command line information to the output VCF header",
                "help_text": "Type: `boolean_true`, default: `false`. Do not append version and command line information to the output VCF header.\n"
            ,
                "default": "False"
            }
    

        ,
                "output_type": {
                "type":
                "string",
                "description": "Type: `string`, choices: ``u`, `z`, `b`, `v``. Output type:\n  u: uncompressed BCF\n  z: compressed VCF\n  b: compressed BCF\n  v: uncompressed VCF\n",
                "help_text": "Type: `string`, choices: ``u`, `z`, `b`, `v``. Output type:\n  u: uncompressed BCF\n  z: compressed VCF\n  b: compressed BCF\n  v: uncompressed VCF\n",
                "enum": ["u", "z", "b", "v"]
            
            
            }
    

        ,
                "pair_logic": {
                "type":
                "string",
                "description": "Type: `string`, choices: ``snps`, `indels`, `both`, `all`, `some`, `exact``. Controls how to match records from the annotation file to the target VCF",
                "help_text": "Type: `string`, choices: ``snps`, `indels`, `both`, `all`, `some`, `exact``. Controls how to match records from the annotation file to the target VCF. \nEffective only when -a is a VCF or BCF file. \nThe option replaces the former uninuitive --collapse. \nSee Common Options for more.\n",
                "enum": ["snps", "indels", "both", "all", "some", "exact"]
            
            
            }
    

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

        ,
                "rename_annotations": {
                "type":
                "string",
                "description": "Type: `file`. Rename annotations: TYPE/old\\tnew, where TYPE is one of FILTER,INFO,FORMAT",
                "help_text": "Type: `file`. Rename annotations: TYPE/old\\tnew, where TYPE is one of FILTER,INFO,FORMAT.\n"
            
            }
    

        ,
                "rename_chromosomes": {
                "type":
                "string",
                "description": "Type: `file`. Rename chromosomes according to the map in file, with \"old_name new_name\\n\" pairs \nseparated by whitespaces, each on a separate line",
                "help_text": "Type: `file`. Rename chromosomes according to the map in file, with \"old_name new_name\\n\" pairs \nseparated by whitespaces, each on a separate line.\n"
            
            }
    

        ,
                "samples": {
                "type":
                "string",
                "description": "Type: `string`. Subset of samples to annotate",
                "help_text": "Type: `string`. Subset of samples to annotate.\nSee also https://samtools.github.io/bcftools/bcftools.html#common_options.\n"
            
            }
    

        ,
                "samples_file": {
                "type":
                "string",
                "description": "Type: `file`. Subset of samples to annotate in file format",
                "help_text": "Type: `file`. Subset of samples to annotate in file format.\nSee also https://samtools.github.io/bcftools/bcftools.html#common_options.\n"
            
            }
    

        ,
                "single_overlaps": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Use this option to keep memory requirements low with very large annotation files",
                "help_text": "Type: `boolean_true`, default: `false`. Use this option to keep memory requirements low with very large annotation files. \nNote, however, that this comes at a cost, only single overlapping intervals are considered in this mode. \nThis was the default mode until the commit af6f0c9 (Feb 24 2019).\n"
            ,
                "default": "False"
            }
    

        ,
                "remove": {
                "type":
                "string",
                "description": "Type: `string`. List of annotations to remove",
                "help_text": "Type: `string`. List of annotations to remove. \nUse \"FILTER\" to remove all filters or \"FILTER/SomeFilter\" to remove a specific filter. \nSimilarly, \"INFO\" can be used to remove all INFO tags and \"FORMAT\" to remove all FORMAT tags except GT. \nTo remove all INFO tags except \"FOO\" and \"BAR\", use \"^INFO/FOO,INFO/BAR\" (and similarly for FORMAT and FILTER). \n\"INFO\" can be abbreviated to \"INF\" and \"FORMAT\" to \"FMT\".\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"
    }
]
}
