{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "bedtools_random",
  "description": "Generate random intervals among a genome.\n\nbedtools random generates a specified number of random intervals with a defined length \nacross a reference genome. This tool is useful for creating random genomic regions for \nstatistical analysis, generating null datasets for enrichment testing, or creating \ncontrol datasets for comparative genomics studies.\n\nThis tool is commonly used for:\n- Creating random control regions for enrichment analysis\n- Generating null datasets for statistical testing\n- Producing background intervals for comparative studies\n- Creating random sampling of genomic space\n- Building control datasets for machine learning applications\n- Testing genomic analysis pipelines with known random data\n",
  "type": "object",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "genome": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Genome file with chromosome names and sizes.\n\n**Format:** Tab-delimited file with chromosome information\n**Content:** Each line contains: <chromName><TAB><chromSize>\n**Requirements:** Chromosome names and their corresponding sizes in base pairs\n**Creation:** Can be generated using `samtools faidx` on FASTA files\n**Example:** chr1<TAB>249250621\n",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"genome.txt\"`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "Output file with generated random intervals.\n\n**Format:** 6-column format (chrom, start, end, name, score, strand)\n**Content:** Randomly placed intervals across the specified genome\n**Coordinates:** 0-based start, 1-based end (standard BED format)\n**Additional columns:** Sequential name, score (interval length), random strand\n**Ordering:** Intervals are not necessarily sorted by position\n",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output.bed\"`, direction: `output`, example: `\"random_intervals.bed\"`. ",
          "default": "$id.$key.output.bed"
        }
      }
    },
    "options": {
      "title": "Options",
      "type": "object",
      "description": "No description",
      "properties": {
        "length": {
          "type": "integer",
          "description": "Length of the intervals to generate in base pairs.\n\n**Default:** 100\n**Usage:** All generated intervals will have this fixed length\n**Range:** Positive integer values\n**Considerations:** Length should be reasonable relative to chromosome sizes\n",
          "help_text": "Type: `integer`, multiple: `False`, default: `100`, example: `1000`. ",
          "default": 100
        },
        "number": {
          "type": "integer",
          "description": "Number of intervals to generate.\n\n**Default:** 1,000,000\n**Usage:** Total number of random intervals to create\n**Range:** Positive integer values\n**Considerations:** Large numbers may take longer to generate and require more memory\n",
          "help_text": "Type: `integer`, multiple: `False`, default: `1000000`, example: `10000`. ",
          "default": 1000000
        },
        "seed": {
          "type": "integer",
          "description": "Integer seed for random number generation.\n\n**Default:** Automatically chosen seed (non-deterministic)\n**Usage:** Provides reproducible results when the same seed is used\n**Range:** Any integer value\n**Applications:** Essential for reproducible analyses and testing\n",
          "help_text": "Type: `integer`, multiple: `False`, example: `12345`. "
        }
      }
    },
    "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"
    }
  ]
}
