{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "bedtools_annotate",
  "description": "Annotates the depth and breadth of coverage of features from multiple files.\n\nThis tool analyzes how intervals in the input file are covered by features\nfrom one or more annotation files. It reports either the fraction of each\ninterval covered, the count of overlapping features, or both metrics.\n\n**Default behavior:** Reports fraction of each input interval covered by features\n**Multiple files:** Can process multiple annotation files simultaneously\n**Strand options:** Supports same-strand, opposite-strand, or strand-agnostic analysis\n",
  "type": "object",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "input": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Input file in BED, GFF, or VCF format to be annotated.\n\nEach interval in this file will be analyzed for coverage by\nfeatures from the annotation files.\n",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"intervals.bed\"`. "
        },
        "files": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "format": "path",
          "exists": true,
          "description": "One or more annotation files for coverage analysis.\n\n**Format:** BED, GFF, or VCF files containing features to analyze\n**Multiple files:** Use space-separated list or multiple --files flags\n**Processing:** Each file analyzed separately with results in columns\n",
          "help_text": "Type: `file`, multiple: `True`, required, direction: `input`, example: `[\"annotations1.bed\";\"annotations2.bed\"]`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "Output file with annotation results.\n\nContains input intervals with additional columns showing coverage\nstatistics from each annotation file.\n",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output.bed\"`, direction: `output`, example: `\"annotated_intervals.bed\"`. ",
          "default": "$id.$key.output.bed"
        }
      }
    },
    "options": {
      "title": "Options",
      "type": "object",
      "description": "No description",
      "properties": {
        "names": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Descriptive names for each annotation file.\n\n**Usage:** One name per file in same order as --files\n**Header:** Names appear in output header line\n**Format:** Space-separated list or multiple --names flags\n",
          "help_text": "Type: `string`, multiple: `True`, example: `[\"ChIP-seq_peaks\";\"DNA_methylation\"]`. "
        },
        "counts": {
          "type": "boolean",
          "description": "Report count of overlapping features instead of coverage fraction.\n\n**Default output:** Fraction of input interval covered (0.0-1.0)\n**With --counts:** Integer count of overlapping features\n**Use case:** When feature count is more relevant than coverage area\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "both": {
          "type": "boolean",
          "description": "Report both feature counts and coverage fractions.\n\n**Output format:** Count followed by fraction for each annotation file\n**Columns:** Doubles the number of result columns\n**Use case:** Comprehensive analysis requiring both metrics\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "strand": {
          "type": "boolean",
          "description": "Require same strandedness for overlap detection.\n\nOnly count overlaps between features on the same strand.\nFeatures on opposite strands are ignored.\n\n**Default:** Strand-agnostic analysis\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "different_strand": {
          "type": "boolean",
          "description": "Require different strandedness for overlap detection.\n\nOnly count overlaps between features on opposite strands.\nFeatures on the same strand are ignored.\n\n**Default:** Strand-agnostic analysis\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "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": "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"
    }
  ]
}
