{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://raw.githubusercontent.com/nf-core/scdownstream/master/assets/schema_analysis_plan.json",
    "title": "nf-core/scdownstream pipeline - params.analysis_plan schema",
    "description": "Schema for the file provided with params.analysis_plan",
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "integration": {
                "type": "string",
                "pattern": "^\\S*$",
                "default": null,
                "errorMessage": "Integration name cannot contain spaces",
                "description": "Integration method name, or empty to match all integrations",
                "meta": ["integration"]
            },
            "subset": {
                "type": "string",
                "pattern": "^\\S*$",
                "default": null,
                "errorMessage": "Subset cannot contain spaces",
                "description": "Clustering subset (global or a label value), or empty to match all subsets",
                "meta": ["subset"]
            },
            "resolution": {
                "type": "number",
                "minimum": 0,
                "default": null,
                "description": "Leiden resolution, or empty to match all resolutions",
                "meta": ["resolution"]
            },
            "analyses": {
                "type": "string",
                "pattern": "^(|paga|liana|cell2cell|de|aggregate_per_cell_annotation|cytetype)(,(paga|liana|cell2cell|de|aggregate_per_cell_annotation|cytetype))*$",
                "default": null,
                "errorMessage": "Analyses must be a comma-separated list of paga, liana, cell2cell, de, aggregate_per_cell_annotation, and/or cytetype",
                "description": "Downstream analyses to run for matching clusterings, or empty to run all analyses. cell2cell additionally requires --cell2cell true. Cluster-level cell type annotation uses aggregate_per_cell_annotation (majority vote of per-cell SingleR/CellTypist labels) and/or cytetype (CyteType LLM; requires cytetype_study_context).",
                "meta": ["analyses"]
            },
            "de_methods": {
                "type": "string",
                "pattern": "^(|wilcoxon|t-test|t-test_overestim_var|logreg|pydeseq2|edgepython|edgepython_sc)(,(wilcoxon|t-test|t-test_overestim_var|logreg|pydeseq2|edgepython|edgepython_sc))*$",
                "default": null,
                "errorMessage": "de_methods must be a comma-separated list of wilcoxon, t-test, t-test_overestim_var, logreg, pydeseq2, edgepython, and/or edgepython_sc",
                "description": "Differential expression engines for matching clusterings, or empty to use the global --de_methods default",
                "meta": ["de_methods"]
            }
        }
    }
}
