{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "bedtools_multiinter",
  "description": "Identify common intervals among multiple BED/GFF/VCF files.\n\nbedtools multiinter finds regions that are shared across multiple interval files and \nreports statistics about the overlaps. It can identify intervals that are present in \nall files, some files, or generate a matrix showing which intervals are found in which files.\n\nThis tool is commonly used for:\n- Finding consensus regions across multiple datasets\n- Identifying tissue-specific or condition-specific intervals\n- Creating intersection matrices for comparative analysis\n- Merging annotations from multiple sources\n- Quality control of peak calling across replicates\n",
  "type": "object",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "input": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "format": "path",
          "exists": true,
          "description": "Input BED/GFF/VCF files to intersect.\n\n**Format:** BED, GFF, or VCF files with genomic coordinates\n**Content:** Intervals to find intersections between\n**Requirements:** Each file must be sorted by chromosome and start position\n**Usage:** Intersections will be calculated across all provided files\n**Output:** Results show which intervals are shared between files\n",
          "help_text": "Type: `file`, multiple: `True`, required, direction: `input`, example: `[\"file1.bed\";\"file2.bed\";\"file3.bed\"]`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "Output file with intersection results.\n\n**Format:** Tab-delimited file showing intersection statistics\n**Content:** Intervals and which files they appear in\n**Columns:** Chromosome, start, end, plus indicator columns for each input file\n",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output.bed\"`, direction: `output`, example: `\"intersections.bed\"`. ",
          "default": "$id.$key.output.bed"
        }
      }
    },
    "options": {
      "title": "Options",
      "type": "object",
      "description": "No description",
      "properties": {
        "cluster": {
          "type": "boolean",
          "description": "Invoke Ryan Layer's clustering algorithm.\n\n**Effect:** Uses advanced clustering for overlapping intervals\n**Usage:** Alternative algorithm for intersection detection\n**Default:** false (uses standard intersection algorithm)\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "header": {
          "type": "boolean",
          "description": "Print a header line with column names.\n\n**Content:** Chromosome, start, end plus names of each input file\n**Usage:** Makes output easier to interpret and parse\n**Default:** false (no header printed)\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "names": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of names to describe each input file.\n\n**Format:** One name per input file, in the same order\n**Usage:** These names appear in the header line (requires --header)\n**Length:** Must match the number of input files\n**Default:** Files are numbered sequentially if not provided\n",
          "help_text": "Type: `string`, multiple: `True`, example: `[\"Sample1\";\"Sample2\";\"Sample3\"]`. "
        },
        "genome": {
          "type": "string",
          "format": "path",
          "description": "Genome file for calculating empty regions.\n\n**Format:** Tab-delimited file with chromosome names and lengths\n**Content:** One line per chromosome: <chrom_name><tab><chrom_length>\n**Usage:** Required for --empty option to work\n**Purpose:** Defines chromosome boundaries for empty region calculation\n",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"genome.txt\"`. "
        },
        "empty": {
          "type": "boolean",
          "description": "Report empty regions without values in all files.\n\n**Requirements:** Must be used with --genome option\n**Purpose:** Shows intervals where no input files have overlapping features\n**Usage:** Useful for finding gaps in coverage across all datasets\n**Default:** false (only reports regions with overlaps)\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "filler": {
          "type": "string",
          "description": "Text to use when representing intervals with no value.\n\n**Default:** \"0\"\n**Usage:** Customize the placeholder for empty intersections\n**Examples:** \"N/A\", \".\", \"NULL\"\n**Context:** Appears in output when intervals have no overlapping features\n",
          "help_text": "Type: `string`, multiple: `False`, default: `\"0\"`, example: `\"N/A\"`. ",
          "default": "0"
        }
      }
    },
    "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"
    }
  ]
}
