{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "score_genes_cell_cycle_scanpy",
  "description": "Calculates the score associated to S phase and G2M phase and annotates the cell cycle phase for each cell, as implemented by scanpy. \nThe score is the average expression of a set of genes subtracted with the average expression of a reference set of genes.\n",
  "type": "object",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "input": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Input h5mu file",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"input_file.h5mu\"`. "
        },
        "modality": {
          "type": "string",
          "description": "Which modality from the input MuData file to process.\n",
          "help_text": "Type: `string`, multiple: `False`, default: `\"rna\"`. ",
          "default": "rna"
        },
        "input_layer": {
          "type": "string",
          "description": "The layer of the adata object containing normalized expression values.\nIf not provided, the X attribute of the adata object will be used.\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"log_normalized\"`. "
        },
        "var_gene_names": {
          "type": "string",
          "description": "The name of the column in the var attribute of the adata object that contains the gene names (symbols).\nIf not provided, the index of the var attribute will be used.\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"gene_names\"`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "Output h5mu file\n",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output.h5mu\"`, direction: `output`, example: `\"output_file.h5mu\"`. ",
          "default": "$id.$key.output.h5mu"
        },
        "obs_phase": {
          "type": "string",
          "description": "The name of the column in the obs attribute of the adata object that will store the cell cycle phase annotation.\n",
          "help_text": "Type: `string`, multiple: `False`, default: `\"phase\"`. ",
          "default": "phase"
        },
        "obs_s_score": {
          "type": "string",
          "description": "The name of the column in the obs attribute of the adata object that will store the s phase score.\n",
          "help_text": "Type: `string`, multiple: `False`, default: `\"S_score\"`. ",
          "default": "S_score"
        },
        "obs_g2m_score": {
          "type": "string",
          "description": "The name of the column in the obs attribute of the adata object that will store the g2m phase score.\n",
          "help_text": "Type: `string`, multiple: `False`, default: `\"G2M_score\"`. ",
          "default": "G2M_score"
        },
        "output_compression": {
          "type": "string",
          "description": "Compression format to use for the output AnnData and/or Mudata objects.\nBy default no compression is applied.\n",
          "help_text": "Type: `string`, multiple: `False`, example: `\"gzip\"`, choices: ``gzip`, `lzf``. ",
          "enum": [
            "gzip",
            "lzf"
          ]
        }
      }
    },
    "arguments": {
      "title": "Arguments",
      "type": "object",
      "description": "No description",
      "properties": {
        "n_bins": {
          "type": "integer",
          "description": "Number of expression level bins for sampling.\n",
          "help_text": "Type: `integer`, multiple: `False`, default: `25`. ",
          "default": 25
        },
        "random_state": {
          "type": "integer",
          "description": "The random seed for sampling.\n",
          "help_text": "Type: `integer`, multiple: `False`, default: `0`. ",
          "default": 0
        },
        "allow_missing_genes": {
          "type": "boolean",
          "description": "If true, missing genes in the gene list will be ignored.\n",
          "help_text": "Type: `boolean`, multiple: `False`, default: `false`. ",
          "default": false
        }
      }
    },
    "gene list inputs": {
      "title": "Gene list inputs",
      "type": "object",
      "description": "The gene list inputs can be provided as a list of gene symbols or as a file containing a list of gene symbols. The gene list file should be formatted as a single column with gene symbols.\n\nMake sure that the gene list inputs are consistent with the gene names in the adata object as provided by the --var_gene_names argument.\n",
      "properties": {
        "s_genes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gene symbols for scoring s phase genes.\n",
          "help_text": "Type: `string`, multiple: `True`, example: `[\"gene1\";\"gene2\";\"gene3\"]`. "
        },
        "s_genes_file": {
          "type": "string",
          "format": "path",
          "description": "Path to a .txt file containing the gene list of s phase genes to be scored",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"s_gene_list.txt\"`. "
        },
        "g2m_genes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gene symbols for scoring g2m phase genes.\n",
          "help_text": "Type: `string`, multiple: `True`, example: `[\"gene1\";\"gene2\";\"gene3\"]`. "
        },
        "g2m_genes_file": {
          "type": "string",
          "format": "path",
          "description": "Path to a .txt file containing the gene list of g2m phase genes to be scored",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"g2m_gene_list.txt\"`. "
        },
        "gene_pool": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of gene symbols for sampling the reference set",
          "help_text": "Type: `string`, multiple: `True`, example: `[\"gene1\";\"gene2\";\"gene3\"]`. "
        },
        "gene_pool_file": {
          "type": "string",
          "format": "path",
          "description": "File with genes for sampling the reference set",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"gene_pool.txt\"`. "
        }
      }
    },
    "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/arguments"
    },
    {
      "$ref": "#/$defs/gene list inputs"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
