{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "bcftools_concat",
  "description": "Concatenate or combine VCF/BCF files. All source files must have the same sample\ncolumns appearing in the same order. The program can be used, for example, to\nconcatenate chromosome VCFs into one VCF, or combine a SNP VCF and an indel\nVCF into one. The input files must be sorted by chr and position. The files\nmust be given in the correct order to produce sorted VCF on output unless\nthe -a, --allow-overlaps option is specified. With the --naive option, the files\nare concatenated without being recompressed, which is very fast.\n",
  "type": "object",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "input": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "format": "path",
          "description": "Input VCF/BCF files to concatenate.\n\nAll source files must have the same sample columns appearing in \nthe same order",
          "help_text": "Type: `file`, multiple: `True`, direction: `input`, example: `[\"input1.vcf.gz input2.vcf.gz\"]`. "
        },
        "file_list": {
          "type": "string",
          "format": "path",
          "description": "Read the list of VCF/BCF files from a file, one file name per line.\n\nAlternative to providing multiple --input files.\n",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"files_list.txt\"`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "Write output to a file.\n\nIf not specified, output goes to standard output.\n",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output.gz\"`, direction: `output`, example: `\"concatenated.vcf.gz\"`. ",
          "default": "$id.$key.output.gz"
        }
      }
    },
    "options": {
      "title": "Options",
      "type": "object",
      "description": "No description",
      "properties": {
        "allow_overlaps": {
          "type": "boolean",
          "description": "First coordinate of the next file can precede last record of the current file.\n\nAllows overlapping records between files during concatenation.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "compact_ps": {
          "type": "boolean",
          "description": "Do not output PS tag at each site, only at the start of a new phase set block.\n\nReduces output size for phased data.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "rm_dups": {
          "type": "string",
          "description": "Output duplicate records present in multiple files only once.\n\n**Options:**\n- `snps`: Remove duplicate SNPs\n- `indels`: Remove duplicate indels  \n- `both`: Remove duplicate SNPs and indels\n- `all`: Remove all duplicates\n- `exact`: Remove exact duplicates only\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"exact\"`, choices: ``snps`, `indels`, `both`, `all`, `exact``. ",
          "enum": [
            "snps",
            "indels",
            "both",
            "all",
            "exact"
          ]
        },
        "remove_duplicates": {
          "type": "boolean",
          "description": "Alias for --rm_dups exact.\n\nRemove exact duplicate records present in multiple files.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "drop_genotypes": {
          "type": "boolean",
          "description": "Drop individual genotype information.\n\nRemoves all sample-specific data from output.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "ligate": {
          "type": "boolean",
          "description": "Ligate phased VCFs by matching phase at overlapping haplotypes.\n\nConnects phase information across files.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "ligate_force": {
          "type": "boolean",
          "description": "Ligate even non-overlapping chunks, keep all sites.\n\nForces ligation without requiring overlap validation.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "ligate_warn": {
          "type": "boolean",
          "description": "Drop sites in imperfect overlaps.\n\nConservative ligation that removes problematic sites.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_version": {
          "type": "boolean",
          "description": "Do not append version and command line to the header.\n\nProduces cleaner output headers.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "naive": {
          "type": "boolean",
          "description": "Concatenate files without recompression.\n\nVery fast operation with header compatibility check.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "naive_force": {
          "type": "boolean",
          "description": "Same as --naive, but header compatibility is not checked.\n\n**Warning:** Dangerous option, use with caution.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "output_type": {
          "type": "string",
          "description": "Output type and compression level.\n\n**Options:**\n- `u`: uncompressed BCF\n- `b`: compressed BCF  \n- `v`: uncompressed VCF\n- `z`: compressed VCF (with optional compression level 0-9)\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"z\"`, choices: ``u`, `z`, `b`, `v``. ",
          "enum": [
            "u",
            "z",
            "b",
            "v"
          ]
        },
        "min_pq": {
          "type": "integer",
          "description": "Break phase set if phasing quality is lower than specified value.\n\nOnly relevant when working with phased data.\n",
          "help_text": "Type: `integer`, multiple: `False`, example: `30`. "
        },
        "regions": {
          "type": "string",
          "description": "Restrict to comma-separated list of regions.\n\n**Formats supported:** chr|chr:pos|chr:beg-end|chr:beg-[,…​]\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"chr20:1000000-2000000\"`. "
        },
        "regions_file": {
          "type": "string",
          "format": "path",
          "description": "Restrict to regions listed in a file.\n\nRegions can be specified in VCF, BED, or tab-delimited format.\n",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"regions.bed\"`. "
        },
        "regions_overlap": {
          "type": "string",
          "description": "Include if POS in the region (0), record overlaps (1), variant overlaps (2).\n\n**Options:**\n- `0`: POS inside region (default for -t/-T)\n- `1`: overlapping records included (default for -r/-R) \n- `2`: true overlapping variation only\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"1\"`, choices: ``0`, `1`, `2``. ",
          "enum": [
            "0",
            "1",
            "2"
          ]
        },
        "verbosity": {
          "type": "integer",
          "description": "Set verbosity level.\n\nControls amount of diagnostic output.\n",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "write_index": {
          "type": "string",
          "description": "Automatically index the output files.\n\n**Format:** Specify index format or use default.\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"tbi\"`. "
        }
      }
    },
    "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": "Path to an output directory.",
          "help_text": "Type: `string`, multiple: `False`, required, example: `\"output/\"`. "
        }
      }
    }
  },
  "allOf": [
    {
      "$ref": "#/$defs/inputs"
    },
    {
      "$ref": "#/$defs/outputs"
    },
    {
      "$ref": "#/$defs/options"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
