{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "souporcell",
  "description": "souporcell is a method for clustering mixed-genotype scRNAseq experiments by individual.",
  "type": "object",
  "$defs": {
    "input": {
      "title": "Input",
      "type": "object",
      "description": "No description",
      "properties": {
        "fasta": {
          "type": "string",
          "format": "path",
          "description": "reference fasta file",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "bam": {
          "type": "string",
          "format": "path",
          "description": "cellranger bam",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "bam_index": {
          "type": "string",
          "format": "path",
          "description": "cellranger bam index",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "barcodes": {
          "type": "string",
          "format": "path",
          "description": "barcodes.tsv from cellranger",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "clusters": {
          "type": "integer",
          "description": "number cluster, tbd add easy way to run on a range of k",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "ploidy": {
          "type": "integer",
          "description": "ploidy, must be 1 or 2",
          "help_text": "Type: `integer`, multiple: `False`, default: `2`. ",
          "default": 2
        },
        "min_alt": {
          "type": "integer",
          "description": "min alt to use locus",
          "help_text": "Type: `integer`, multiple: `False`, default: `10`. ",
          "default": 10
        },
        "min_ref": {
          "type": "integer",
          "description": "min ref to use locus",
          "help_text": "Type: `integer`, multiple: `False`, default: `10`. ",
          "default": 10
        },
        "max_loci": {
          "type": "integer",
          "description": "max loci per cell, affects speed",
          "help_text": "Type: `integer`, multiple: `False`, default: `2048`. ",
          "default": 2048
        },
        "restarts": {
          "type": "integer",
          "description": "number of restarts in clustering, when there are > 12 clusters we recommend increasing this to avoid local minima",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "common_variants": {
          "type": "string",
          "format": "path",
          "description": "common variant loci or known variant loci vcf, must be vs same reference fasta",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "known_genotypes": {
          "type": "string",
          "format": "path",
          "description": "known variants per clone in population vcf mode, must be .vcf right now we dont accept gzip or bcf sorry",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "known_genotypes_sample_names": {
          "type": "string",
          "description": "which samples in population vcf from known genotypes option represent the donors in your sample",
          "help_text": "Type: `string`, multiple: `False`. "
        },
        "skip_remap": {
          "type": "boolean",
          "description": "dont remap with minimap2 (not recommended unless in conjunction with --common_variants",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "ignore": {
          "type": "boolean",
          "description": "set to True to ignore data error assertions",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        }
      }
    },
    "output": {
      "title": "Output",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "name of directory to place souporcell files",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.output\"`, direction: `output`, example: `\"souporcell_out\"`. ",
          "default": "$id.$key.output"
        }
      }
    },
    "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/input"
    },
    {
      "$ref": "#/$defs/output"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
