{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "spaceranger_count",
  "description": "Count gene expression and protein expression reads from a single capture area.",
  "type": "object",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "gex_reference": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Path of folder containing 10x-compatible reference",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"/path/to/refdata-gex-GRCh38-2020-A\"`. "
        },
        "input": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Path to a directory containing input FASTQ data",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"/path/to/fastq_folder\"`. "
        },
        "probe_set": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "CSV file specifying the probe set used",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"Visium_Human_Transcriptome_Probe_Set_v2.0_GRCh38-2020-A.csv\"`. "
        },
        "cytaimage": {
          "type": "string",
          "format": "path",
          "description": "Brightfield image generated by the CytAssist instrument",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"cyta_image.tif\"`. "
        },
        "image": {
          "type": "string",
          "format": "path",
          "description": "H&E or fluorescence microscope image in TIFF or JPG format",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"brightfield.tif\"`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "The folder to store the alignment results",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output\"`, direction: `output`, example: `\"/path/to/output\"`. ",
          "default": "$id.$key.output"
        }
      }
    },
    "slide information": {
      "title": "Slide Information",
      "type": "object",
      "description": "No description",
      "properties": {
        "slide": {
          "type": "string",
          "description": "Visium slide serial number (e.g., 'V10J25-015')",
          "help_text": "Type: `string`, multiple: `False`, example: `\"V10J25-015\"`. "
        },
        "area": {
          "type": "string",
          "description": "Visium capture area identifier (e.g., 'A1')",
          "help_text": "Type: `string`, multiple: `False`, example: `\"A1\"`. "
        },
        "unknown_slide": {
          "type": "string",
          "description": "Use this option if the slide serial number and area were entered incorrectly on the CytAssist \ninstrument and the correct values are unknown",
          "help_text": "Type: `string`, multiple: `False`, choices: ``visium-1`, `visium-2`, `visium-2-large`, `visium-hd``. ",
          "enum": [
            "visium-1",
            "visium-2",
            "visium-2-large",
            "visium-hd"
          ]
        },
        "slidefile": {
          "type": "string",
          "format": "path",
          "description": "Slide design file for offline use",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"slide_design.gpr\"`. "
        },
        "override_id": {
          "type": "boolean",
          "description": "Overrides the slide serial number and capture area provided in the Cytassist image metadata",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        }
      }
    },
    "image options": {
      "title": "Image Options",
      "type": "object",
      "description": "No description",
      "properties": {
        "darkimage": {
          "type": "string",
          "format": "path",
          "description": "Multi-channel, dark-background fluorescence image",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"fluorescence.tif\"`. "
        },
        "colorizedimage": {
          "type": "string",
          "format": "path",
          "description": "Color image representing pre-colored dark-background fluorescence images",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"colored_fluorescence.tif\"`. "
        },
        "dapi_index": {
          "type": "integer",
          "description": "Index of DAPI channel (1-indexed) of fluorescence image",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "image_scale": {
          "type": "number",
          "description": "Microns per microscope image pixel",
          "help_text": "Type: `double`, multiple: `False`, example: `0.65`. "
        },
        "reorient_images": {
          "type": "boolean",
          "description": "Whether to rotate and mirror image to align fiducial pattern",
          "help_text": "Type: `boolean`, multiple: `False`, default: `true`. ",
          "default": true
        }
      }
    },
    "processing options": {
      "title": "Processing Options",
      "type": "object",
      "description": "No description",
      "properties": {
        "create_bam": {
          "type": "boolean",
          "description": "Enable or disable BAM file generation",
          "help_text": "Type: `boolean`, multiple: `False`, required, default: `true`. ",
          "default": true
        },
        "nosecondary": {
          "type": "boolean",
          "description": "Disable secondary analysis (e.g., clustering)",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "r1_length": {
          "type": "integer",
          "description": "Hard trim the input Read 1 to this length before analysis",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "r2_length": {
          "type": "integer",
          "description": "Hard trim the input Read 2 to this length before analysis",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "filter_probes": {
          "type": "boolean",
          "description": "Whether to filter the probe set using the \"included\" column",
          "help_text": "Type: `boolean`, multiple: `False`, default: `true`. ",
          "default": true
        },
        "custom_bin_size": {
          "type": "integer",
          "description": "Bin Visium HD data to specified size in microns (4-100, even values only) in addition to the standard binning size (2 µm, 8 µm, 16 µm)",
          "help_text": "Type: `integer`, multiple: `False`. "
        }
      }
    },
    "input selection": {
      "title": "Input Selection",
      "type": "object",
      "description": "No description",
      "properties": {
        "project": {
          "type": "string",
          "description": "Project folder name within mkfastq output",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "sample": {
          "type": "string",
          "description": "Prefix of FASTQ filenames to select",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "lanes": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "Only use FASTQs from selected lanes",
          "help_text": "Type: `integer`, multiple: `True`, example: `[1;2;3]`. "
        }
      }
    },
    "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/slide information"
    },
    {
      "$ref": "#/$defs/image options"
    },
    {
      "$ref": "#/$defs/processing options"
    },
    {
      "$ref": "#/$defs/input selection"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
