{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "bases2fastq",
  "description": "Bases2Fastq demultiplexes sequencing data generated by Element Biosciences instruments and converts base calls into FASTQ files.\n",
  "type": "object",
  "$defs": {
    "arguments": {
      "title": "Arguments",
      "type": "object",
      "description": "No description",
      "properties": {
        "chemistry_version": {
          "type": "string",
          "description": "Run parameters override, chemistry version.",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "demux_only": {
          "type": "boolean",
          "description": "Generate demux files and indexing stats without generating FASTQ\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "detect_adapters": {
          "type": "boolean",
          "description": "Detect adapters sequences, overriding any sequences present in run manifest.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "error_on_missing": {
          "type": "boolean",
          "description": "Terminate execution for a missing file (by default, missing files are\nskipped and execution continues)",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "exclude_tile": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex matching tile names to exclude",
          "help_text": "Type: `string`, multiple: `True`. "
        },
        "filter_mask": {
          "type": "string",
          "description": "Run parameters override, custom pass filter mask.\n",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "flowcell_id": {
          "type": "string",
          "description": "Run parameters override, flowcell ID.\n",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "force_index_orientation": {
          "type": "boolean",
          "description": "Do not attempt to find orientation for I1/I2 reads (reverse complement).\nUse orientation given in run manifest.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "group_fastq": {
          "type": "boolean",
          "description": "Group all FASTQ/stats/metrics for a project are in the project folder.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "i1_cycles": {
          "type": "integer",
          "description": "Run parameters override, I1 cycles.\n",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "i2_cycles": {
          "type": "integer",
          "description": "Run parameters override, I2 cycles\n",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "include_tile": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex matching tile names to include",
          "help_text": "Type: `string`, multiple: `True`. "
        },
        "kit_configuration": {
          "type": "string",
          "description": "Run parameters override, kit configuration.\n",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "legacy_fastq": {
          "type": "boolean",
          "description": "Legacy naming for FASTQ files (e.g",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "log_level": {
          "type": "string",
          "description": "Severity level for logging.\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"INFO\"`, choices: ``DEBUG`, `INFO`, `WARNING`, `ERROR``. ",
          "enum": [
            "DEBUG",
            "INFO",
            "WARNING",
            "ERROR"
          ]
        },
        "no_error_on_invalid": {
          "type": "boolean",
          "description": "Skip invalid files and continue execution",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "no_projects": {
          "type": "boolean",
          "description": "Disable project directories\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "num_unassigned": {
          "type": "integer",
          "description": "Max Number of unassigned sequences to report.\n",
          "help_text": "Type: `integer`, multiple: `False`, example: `30`. "
        },
        "preparation_workflow": {
          "type": "string",
          "description": "Run parameters override, preparation workflow",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "qc_only": {
          "type": "boolean",
          "description": "Quickly generate run stats for single tile without generating FASTQ.\nUse --include_tile/--exclude_tile to define custom tile set.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "r1_cycles": {
          "type": "integer",
          "description": "Run parameters override, R1 cycles.\n",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "r2_cycles": {
          "type": "integer",
          "description": "Run parameters override, R2 cycles.\n",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "split_lanes": {
          "type": "boolean",
          "description": "Split FASTQ files by lane.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "skip_qc_report": {
          "type": "boolean",
          "description": "Do not generate HTML QC report.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "skip_multi_qc": {
          "type": "boolean",
          "description": "Do not generate MultiQC HTML report.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "settings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Run manifest settings override",
          "help_text": "Type: `string`, multiple: `True`. "
        }
      }
    },
    "input": {
      "title": "Input",
      "type": "object",
      "description": "No description",
      "properties": {
        "analysis_directory": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Location of analysis directory",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"input\"`. "
        },
        "run_manifest": {
          "type": "string",
          "format": "path",
          "description": "Location of run manifest to use instead of default RunManifest.csv found in analysis directory",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        }
      }
    },
    "output": {
      "title": "Output",
      "type": "object",
      "description": "No description",
      "properties": {
        "output_directory": {
          "type": "string",
          "format": "path",
          "description": "Location to save output fastqs",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output_directory\"`, direction: `output`, example: `\"fastq_dir\"`. ",
          "default": "$id.$key.output_directory"
        },
        "report": {
          "type": "string",
          "format": "path",
          "description": "Output location for the HTML report",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.report\"`, direction: `output`. ",
          "default": "$id.$key.report"
        },
        "logs": {
          "type": "string",
          "format": "path",
          "description": "Directory containing log files",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.logs\"`, direction: `output`, example: `\"logs_dir\"`. ",
          "default": "$id.$key.logs"
        }
      }
    },
    "cyto-fastq arguments": {
      "title": "Cyto-fastq Arguments",
      "type": "object",
      "description": "No description",
      "properties": {
        "batch": {
          "type": "string",
          "description": "Restrict cyto-fastq generation to batch(es) that match comma delimited list (e.g",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "cyto_fastq_mask": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Cycle mask for cyto fastq generation",
          "help_text": "Type: `string`, multiple: `True`. "
        },
        "panel": {
          "type": "string",
          "format": "path",
          "description": "Local or remote path to panel JSON\n",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "per_target_fastq": {
          "type": "boolean",
          "description": "Create per-target fastq for each cell assignment target site in each DISS batch according to FastqMasks in TargetCellAssignmentManifest.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "tca_manifest": {
          "type": "string",
          "format": "path",
          "description": "Location of TargetCellAssignmentManifest to use instead of default csv found in analysis directory\n",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        }
      }
    },
    "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/arguments"
    },
    {
      "$ref": "#/$defs/input"
    },
    {
      "$ref": "#/$defs/output"
    },
    {
      "$ref": "#/$defs/cyto-fastq arguments"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
