{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "snpeff_ann",
  "description": "Genetic variant annotation, and functional effect prediction toolbox. \nIt annotates and predicts the effects of genetic variants on genes and \nproteins (such as amino acid changes).\n",
  "type": "object",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "input": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Input variants file.",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"test.vcf\"`. "
        },
        "genome_version": {
          "type": "string",
          "description": "Reference genome version.",
          "help_text": "Type: `string`, multiple: `False`, required, example: `\"GRCh38.86\"`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "The output file.",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output.vcf\"`, direction: `output`, example: `\"out.vcf\"`. ",
          "default": "$id.$key.output.vcf"
        },
        "summary": {
          "type": "string",
          "format": "path",
          "description": "Summary file directory.",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.summary\"`, direction: `output`, example: `\"summary_dir\"`. ",
          "default": "$id.$key.summary"
        },
        "genes": {
          "type": "string",
          "format": "path",
          "description": "Txt file directory.",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.genes\"`, direction: `output`, example: `\"genes_dir\"`. ",
          "default": "$id.$key.genes"
        }
      }
    },
    "options": {
      "title": "Options",
      "type": "object",
      "description": "No description",
      "properties": {
        "chr": {
          "type": "string",
          "description": "Prepend 'string' to chromosome name (e.g",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "classic": {
          "type": "boolean",
          "description": "Use old style annotations instead of Sequence Ontology and Hgvs.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "csv_stats": {
          "type": "string",
          "format": "path",
          "description": "Create CSV summary file.",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "download": {
          "type": "boolean",
          "description": "Download reference genome if not available.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "input_format": {
          "type": "string",
          "description": "Input format [ vcf, bed ]",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "file_list": {
          "type": "boolean",
          "description": "Input actually contains a list of files to process.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "output_format": {
          "type": "string",
          "description": "Output format [ vcf, gatk, bed, bedAnn ]",
          "help_text": "Type: `string`, multiple: `False`, example: `\"VCF\"`. "
        },
        "stats": {
          "type": "boolean",
          "description": "Create HTML summary file.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_stats": {
          "type": "boolean",
          "description": "Do not create stats (summary) file.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        }
      }
    },
    "results filter options": {
      "title": "Results filter options",
      "type": "object",
      "description": "No description",
      "properties": {
        "fi": {
          "type": "string",
          "format": "path",
          "description": "Only analyze changes that intersect with the intervals \nspecified in this file",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "no_downstream": {
          "type": "boolean",
          "description": "Do not show DOWNSTREAM changes",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_intergenic": {
          "type": "boolean",
          "description": "Do not show INTERGENIC changes.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_intron": {
          "type": "boolean",
          "description": "Do not show INTRON changes.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_upstream": {
          "type": "boolean",
          "description": "Do not show UPSTREAM changes.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_utr": {
          "type": "boolean",
          "description": "Do not show 5_PRIME_UTR or 3_PRIME_UTR changes.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no": {
          "type": "string",
          "description": "Do not show 'EffectType'",
          "help_text": "Type: `string`, multiple: `False`. "
        }
      }
    },
    "annotations options": {
      "title": "Annotations options",
      "type": "object",
      "description": "No description",
      "properties": {
        "cancer": {
          "type": "boolean",
          "description": "Perform 'cancer' comparisons (Somatic vs Germline).",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "cancer_samples": {
          "type": "string",
          "format": "path",
          "description": "Two column TXT file defining 'original \\t derived' samples.",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "fastaprot": {
          "type": "string",
          "format": "path",
          "description": "Create an output file containing the resulting protein sequences.\n",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "format_eff": {
          "type": "boolean",
          "description": "Use 'EFF' field compatible with older versions (instead of 'ANN').\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "gene_id": {
          "type": "boolean",
          "description": "Use gene ID instead of gene name (VCF output).",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "hgvs": {
          "type": "boolean",
          "description": "Use HGVS annotations for amino acid sub-field.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "hgvs_old": {
          "type": "boolean",
          "description": "Use old HGVS notation.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "hgvs1_letter_aa": {
          "type": "boolean",
          "description": "Use one letter Amino acid codes in HGVS notation.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "hgvs_tr_id": {
          "type": "boolean",
          "description": "Use transcript ID in HGVS notation.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "lof": {
          "type": "boolean",
          "description": "Add loss of function (LOF) and Nonsense mediated decay (NMD) tags.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "-no_hgvs": {
          "type": "boolean",
          "description": "Do not add HGVS annotations.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_lof": {
          "type": "boolean",
          "description": "Do not add LOF and NMD annotations.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_shift_hgvs": {
          "type": "boolean",
          "description": "Do not shift variants according to HGVS notation (most 3prime end).\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "oicr": {
          "type": "boolean",
          "description": "Add OICR tag in VCF file.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "sequence_ontology": {
          "type": "boolean",
          "description": "Use Sequence Ontology terms.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        }
      }
    },
    "generic options": {
      "title": "Generic options",
      "type": "object",
      "description": "No description",
      "properties": {
        "config": {
          "type": "string",
          "format": "path",
          "description": "Specify config file",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "config_option": {
          "type": "string",
          "description": "Override a config file option (name=value).",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "debug": {
          "type": "boolean",
          "description": "Debug mode (very verbose).",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "data_dir": {
          "type": "string",
          "format": "path",
          "description": "Override data_dir parameter from config file.",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "no_download": {
          "type": "boolean",
          "description": "Do not download a SnpEff database, if not available locally.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_log": {
          "type": "boolean",
          "description": "Do not report usage statistics to server.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "quiet": {
          "type": "boolean",
          "description": "Quiet mode (do not show any messages or errors)",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "verbose": {
          "type": "boolean",
          "description": "Verbose mode.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        }
      }
    },
    "database options": {
      "title": "Database options",
      "type": "object",
      "description": "No description",
      "properties": {
        "canon": {
          "type": "boolean",
          "description": "Only use canonical transcripts.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "canon_list": {
          "type": "string",
          "format": "path",
          "description": "Only use canonical transcripts, replace some transcripts using the 'gene_id         \ntranscript_id' entries in <file>.\n",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "tag": {
          "type": "string",
          "description": "Only use transcript having a tag 'tagName'",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "no_tag": {
          "type": "boolean",
          "description": "Filter out transcript having a tag 'tagName'",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "interaction": {
          "type": "boolean",
          "description": "Annotate using interactions (requires interaction database).",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "interval": {
          "type": "string",
          "format": "path",
          "description": "Use a custom intervals in TXT/BED/BigBed/VCF/GFF file (you may use this option many times).\n",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "max_tsl": {
          "type": "integer",
          "description": "Only use transcripts having Transcript Support Level lower than <TSL_number>.",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "motif": {
          "type": "boolean",
          "description": "Annotate using motifs (requires Motif database).",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "nextprot": {
          "type": "boolean",
          "description": "Annotate using NextProt (requires NextProt database).",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_genome": {
          "type": "boolean",
          "description": "Do not load any genomic database (e.g",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_expand_iub": {
          "type": "boolean",
          "description": "Disable IUB code expansion in input variants.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_interaction": {
          "type": "boolean",
          "description": "Disable inteaction annotations.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_motif": {
          "type": "boolean",
          "description": "Disable motif annotations.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_nextprot": {
          "type": "boolean",
          "description": "Disable NextProt annotations.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "only_reg": {
          "type": "boolean",
          "description": "Only use regulation tracks.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "only_protein": {
          "type": "boolean",
          "description": "Only use protein coding transcripts.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "only_tr": {
          "type": "string",
          "format": "path",
          "description": "Only use the transcripts in this file",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"file.txt\"`. "
        },
        "reg": {
          "type": "string",
          "description": "Regulation track to use (this option can be used add several times).",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "ss": {
          "type": "integer",
          "description": "Set size for splice sites (donor and acceptor) in bases",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "splice_region_exon_size": {
          "type": "integer",
          "description": "Set size for splice site region within exons",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "splice_region_intron_min": {
          "type": "integer",
          "description": "Set minimum number of bases for splice site region within intron",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "splice_region_intron_max": {
          "type": "integer",
          "description": "Set maximum number of bases for splice site region within intron",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "strict": {
          "type": "boolean",
          "description": "Only use 'validated' transcripts (i.e",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "ud": {
          "type": "integer",
          "description": "Set upstream downstream interval length (in bases).",
          "help_text": "Type: `integer`, multiple: `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": "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/results filter options"
    },
    {
      "$ref": "#/$defs/annotations options"
    },
    {
      "$ref": "#/$defs/generic options"
    },
    {
      "$ref": "#/$defs/database options"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
