{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/multiqc/latest.json",
  "title": "MultiQCConfig",
  "description": "Schema for MultiQC config validation",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/MultiQC/MultiQC/refs/heads/main/multiqc/utils/config_schema.json",
    "sourceSha256": "83a051c9628f3ab58bc259e936d718ce7b8b49b28a5f89017dd3b83fd9421aee",
    "fileMatch": [
      "multiqc_config.yaml",
      "multiqc_config.yml",
      ".multiqc_config.yaml",
      ".multiqc_config.yml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Report title",
      "title": "Title"
    },
    "subtitle": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Report subtitle",
      "title": "Subtitle"
    },
    "intro_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Report introduction text",
      "title": "Intro Text"
    },
    "report_comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Report comment",
      "title": "Report Comment"
    },
    "report_header_info": {
      "anyOf": [
        {
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Report header dictionary",
      "title": "Report Header Info"
    },
    "show_analysis_paths": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Show analysis paths in the report",
      "title": "Show Analysis Paths"
    },
    "show_analysis_time": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Show analysis time in the report",
      "title": "Show Analysis Time"
    },
    "custom_logo": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Path to custom logo image",
      "title": "Custom Logo"
    },
    "custom_logo_dark": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Path to custom logo image for dark mode",
      "title": "Custom Logo Dark"
    },
    "custom_logo_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "URL for custom logo",
      "title": "Custom Logo Url"
    },
    "custom_logo_title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Title for custom logo",
      "title": "Custom Logo Title"
    },
    "custom_logo_width": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Width in pixels for the custom logo",
      "title": "Custom Logo Width"
    },
    "custom_css_files": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Custom CSS files to include",
      "title": "Custom Css Files"
    },
    "simple_output": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Simple output",
      "title": "Simple Output"
    },
    "template": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Report template to use",
      "title": "Template"
    },
    "template_dark_mode": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable dark mode toggle and JavaScript for the report template",
      "title": "Template Dark Mode"
    },
    "plot_font_family": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Custom font family for plots (defaults to system font stack)",
      "title": "Plot Font Family"
    },
    "profile_runtime": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Profile runtime",
      "title": "Profile Runtime"
    },
    "profile_memory": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Profile memory",
      "title": "Profile Memory"
    },
    "pandoc_template": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Pandoc template",
      "title": "Pandoc Template"
    },
    "read_count_multiplier": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Read count multiplier",
      "title": "Read Count Multiplier"
    },
    "read_count_prefix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Read count prefix",
      "title": "Read Count Prefix"
    },
    "read_count_desc": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Read count description",
      "title": "Read Count Desc"
    },
    "long_read_count_multiplier": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Long read count multiplier",
      "title": "Long Read Count Multiplier"
    },
    "long_read_count_prefix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Long read count prefix",
      "title": "Long Read Count Prefix"
    },
    "long_read_count_desc": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Long read count description",
      "title": "Long Read Count Desc"
    },
    "base_count_multiplier": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Base count multiplier",
      "title": "Base Count Multiplier"
    },
    "base_count_prefix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Base count prefix",
      "title": "Base Count Prefix"
    },
    "base_count_desc": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Base count description",
      "title": "Base Count Desc"
    },
    "output_fn_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Output filename",
      "title": "Output Fn Name"
    },
    "data_dir_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Data directory name",
      "title": "Data Dir Name"
    },
    "plots_dir_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Plots directory name",
      "title": "Plots Dir Name"
    },
    "data_format": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Data format for output files",
      "title": "Data Format"
    },
    "force": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Overwrite existing reports",
      "title": "Force"
    },
    "verbose": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Verbose output",
      "title": "Verbose"
    },
    "no_ansi": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Disable ANSI output",
      "title": "No Ansi"
    },
    "quiet": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Quiet output",
      "title": "Quiet"
    },
    "prepend_dirs": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Prepend directories to sample names",
      "title": "Prepend Dirs"
    },
    "prepend_dirs_depth": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Depth to prepend directories",
      "title": "Prepend Dirs Depth"
    },
    "prepend_dirs_sep": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Separator for prepended directories",
      "title": "Prepend Dirs Sep"
    },
    "file_list": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Create a file list",
      "title": "File List"
    },
    "require_logs": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Require logs for reports",
      "title": "Require Logs"
    },
    "version_check_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Version check URL",
      "title": "Version Check Url"
    },
    "make_data_dir": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Create data directory",
      "title": "Make Data Dir"
    },
    "zip_data_dir": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Zip data directory",
      "title": "Zip Data Dir"
    },
    "data_dump_file": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Write data to a file",
      "title": "Data Dump File"
    },
    "data_dump_file_write_raw": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Write raw data to a file",
      "title": "Data Dump File Write Raw"
    },
    "megaqc_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "MegaQC URL to upload to",
      "title": "Megaqc Url"
    },
    "megaqc_access_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "MegaQC access token",
      "title": "Megaqc Access Token"
    },
    "megaqc_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "MegaQC timeout",
      "title": "Megaqc Timeout"
    },
    "export_plots": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Export plots",
      "title": "Export Plots"
    },
    "export_plots_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Timeout in seconds for exporting each plot to a static image (default: 60)",
      "title": "Export Plots Timeout"
    },
    "make_report": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Make report",
      "title": "Make Report"
    },
    "make_pdf": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Make PDF",
      "title": "Make Pdf"
    },
    "ai_summary": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI summary",
      "title": "Ai Summary"
    },
    "ai_summary_full": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI summary full",
      "title": "Ai Summary Full"
    },
    "ai_provider": {
      "anyOf": [
        {
          "enum": [
            "seqera",
            "openai",
            "anthropic",
            "aws_bedrock",
            "custom"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI provider",
      "title": "Ai Provider"
    },
    "ai_model": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI model",
      "title": "Ai Model"
    },
    "ai_custom_endpoint": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI custom endpoint",
      "title": "Ai Custom Endpoint"
    },
    "ai_auth_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI auth type",
      "title": "Ai Auth Type"
    },
    "ai_retries": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI retries",
      "title": "Ai Retries"
    },
    "ai_extra_query_options": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI extra query options",
      "title": "Ai Extra Query Options"
    },
    "ai_custom_context_window": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "AI custom context window",
      "title": "Ai Custom Context Window"
    },
    "ai_prompt_short": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Prompt for short AI summary, put before the report details when sent to the provider",
      "title": "Ai Prompt Short"
    },
    "ai_prompt_full": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Prompt for full AI summary, put before the report details when sent to the provider",
      "title": "Ai Prompt Full"
    },
    "no_ai": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Disable AI",
      "title": "No Ai"
    },
    "ai_anonymize_samples": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Anonymize samples",
      "title": "Ai Anonymize Samples"
    },
    "ai_reasoning_effort": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Reasoning effort level for OpenAI reasoning models (low, medium, high)",
      "title": "Ai Reasoning Effort"
    },
    "ai_max_completion_tokens": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum completion tokens for OpenAI reasoning models",
      "title": "Ai Max Completion Tokens"
    },
    "ai_extended_thinking": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable extended thinking for Anthropic Claude 4 models",
      "title": "Ai Extended Thinking"
    },
    "ai_thinking_budget_tokens": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Budget tokens for Anthropic extended thinking",
      "title": "Ai Thinking Budget Tokens"
    },
    "seqera_api_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Seqera API URL",
      "title": "Seqera Api Url"
    },
    "seqera_website": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Seqera website",
      "title": "Seqera Website"
    },
    "plots_force_flat": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Force static plot images",
      "title": "Plots Force Flat"
    },
    "plots_force_interactive": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Force interactive plots",
      "title": "Plots Force Interactive"
    },
    "plots_export_font_scale": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Font scale for exported plots",
      "title": "Plots Export Font Scale"
    },
    "plots_flat_numseries": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Number of series to show in flat plots",
      "title": "Plots Flat Numseries"
    },
    "plots_defer_loading_numseries": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Number of series to defer loading - user will need to press button to render plot",
      "title": "Plots Defer Loading Numseries"
    },
    "lineplot_number_of_points_to_hide_markers": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Number of points to hide markers - sum of data points in all samples",
      "title": "Lineplot Number Of Points To Hide Markers"
    },
    "barplot_legend_on_bottom": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Place bar plot legend at the bottom (not recommended)",
      "title": "Barplot Legend On Bottom"
    },
    "boxplot_boxpoints": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Boxplot boxpoints setting",
      "title": "Boxplot Boxpoints"
    },
    "box_min_threshold_outliers": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "For more than this number of samples, show only outliers",
      "title": "Box Min Threshold Outliers"
    },
    "box_min_threshold_no_points": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "For more than this number of samples, show no points",
      "title": "Box Min Threshold No Points"
    },
    "violin_downsample_after": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Downsample data for violin plot starting from this number os samples",
      "title": "Violin Downsample After"
    },
    "violin_min_threshold_outliers": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "For more than this number of samples, show only outliers",
      "title": "Violin Min Threshold Outliers"
    },
    "violin_min_threshold_no_points": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "For more than this number of samples, show no points",
      "title": "Violin Min Threshold No Points"
    },
    "collapse_tables": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Collapse tables",
      "title": "Collapse Tables"
    },
    "max_table_rows": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum number of rows to show in tables",
      "title": "Max Table Rows"
    },
    "max_configurable_table_columns": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum number of columns to show in tables",
      "title": "Max Configurable Table Columns"
    },
    "general_stats_columns": {
      "type": "object",
      "description": "Configuration for general stats columns per module. Keys are module IDs.",
      "title": "General Stats Columns",
      "additionalProperties": {
        "$ref": "#/$defs/GeneralStatsModuleConfig"
      }
    },
    "general_stats_helptext": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Help text for general statistics table.",
      "title": "General Stats Helptext"
    },
    "table_columns_visible": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "type": "boolean"
                }
              }
            ]
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Which columns to show in tables",
      "title": "Table Columns Visible"
    },
    "table_columns_placement": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Placement of columns in tables",
      "title": "Table Columns Placement"
    },
    "table_columns_name": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            ]
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Name of columns in tables",
      "title": "Table Columns Name"
    },
    "table_cond_formatting_colours": {
      "anyOf": [
        {
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Colours to use for conditional formatting in tables",
      "title": "Table Cond Formatting Colours"
    },
    "table_cond_formatting_rules": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": {
              "items": {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "integer"
                    },
                    {
                      "type": "number"
                    }
                  ]
                }
              },
              "type": "array"
            }
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Rules for conditional formatting in tables",
      "title": "Table Cond Formatting Rules"
    },
    "decimalPoint_format": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Decimal point format",
      "title": "Decimalpoint Format"
    },
    "thousandsSep_format": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Thousands separator format",
      "title": "Thousandssep Format"
    },
    "remove_sections": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sections to remove",
      "title": "Remove Sections"
    },
    "section_comments": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Comments for sections",
      "title": "Section Comments"
    },
    "lint": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Lint",
      "title": "Lint"
    },
    "strict": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Strict",
      "title": "Strict"
    },
    "development": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Development",
      "title": "Development"
    },
    "custom_plot_config": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Custom plot config",
      "title": "Custom Plot Config"
    },
    "custom_table_header_config": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Custom table header config",
      "title": "Custom Table Header Config"
    },
    "software_versions": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Software versions",
      "title": "Software Versions"
    },
    "ignore_symlinks": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Ignore symlinks",
      "title": "Ignore Symlinks"
    },
    "ignore_images": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Ignore images",
      "title": "Ignore Images"
    },
    "fn_ignore_dirs": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Directories to ignore",
      "title": "Fn Ignore Dirs"
    },
    "fn_ignore_paths": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Paths to ignore",
      "title": "Fn Ignore Paths"
    },
    "sample_names_ignore": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to ignore",
      "title": "Sample Names Ignore"
    },
    "sample_names_ignore_re": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to ignore (regex)",
      "title": "Sample Names Ignore Re"
    },
    "sample_names_only_include": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to include",
      "title": "Sample Names Only Include"
    },
    "sample_names_only_include_re": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to include (regex)",
      "title": "Sample Names Only Include Re"
    },
    "sample_names_rename_buttons": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to rename",
      "title": "Sample Names Rename Buttons"
    },
    "sample_names_replace": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to replace",
      "title": "Sample Names Replace"
    },
    "sample_names_replace_regex": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to replace (regex)",
      "title": "Sample Names Replace Regex"
    },
    "sample_names_replace_exact": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to replace (exact)",
      "title": "Sample Names Replace Exact"
    },
    "sample_names_replace_complete": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to replace (complete)",
      "title": "Sample Names Replace Complete"
    },
    "sample_names_rename": {
      "anyOf": [
        {
          "items": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sample names to rename",
      "title": "Sample Names Rename"
    },
    "show_hide_buttons": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Show/hide buttons",
      "title": "Show Hide Buttons"
    },
    "show_hide_patterns": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Show/hide patterns",
      "title": "Show Hide Patterns"
    },
    "show_hide_regex": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "boolean"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Show/hide regex",
      "title": "Show Hide Regex"
    },
    "show_hide_mode": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Show/hide mode",
      "title": "Show Hide Mode"
    },
    "highlight_patterns": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Patterns for highlighting samples",
      "title": "Highlight Patterns"
    },
    "highlight_colors": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Colors to use for highlighting patterns",
      "title": "Highlight Colors"
    },
    "highlight_regex": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether to use regex mode for highlighting",
      "title": "Highlight Regex"
    },
    "no_version_check": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "No version check",
      "title": "No Version Check"
    },
    "log_filesize_limit": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Log filesize limit",
      "title": "Log Filesize Limit"
    },
    "filesearch_lines_limit": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Filesearch lines limit",
      "title": "Filesearch Lines Limit"
    },
    "report_readerrors": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Report read errors",
      "title": "Report Readerrors"
    },
    "skip_generalstats": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Skip generalstats",
      "title": "Skip Generalstats"
    },
    "skip_versions_section": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Skip versions section",
      "title": "Skip Versions Section"
    },
    "disable_version_detection": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Disable version detection",
      "title": "Disable Version Detection"
    },
    "versions_table_group_header": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Versions table group header",
      "title": "Versions Table Group Header"
    },
    "data_format_extensions": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Data format extensions",
      "title": "Data Format Extensions"
    },
    "export_plot_formats": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Export plot formats",
      "title": "Export Plot Formats"
    },
    "filesearch_file_shared": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Filesearch file shared",
      "title": "Filesearch File Shared"
    },
    "custom_content": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Custom content",
      "title": "Custom Content"
    },
    "fn_clean_sample_names": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Clean sample names",
      "title": "Fn Clean Sample Names"
    },
    "use_filename_as_sample_name": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": false,
      "description": "Use filename as sample name (can be bool for all modules or list for specific modules/patterns)",
      "title": "Use Filename As Sample Name"
    },
    "fn_clean_exts": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/$defs/CleanPattern"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Extensions to clean from sample names",
      "title": "Fn Clean Exts"
    },
    "fn_clean_trim": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Strings to trim from start/end of sample names",
      "title": "Fn Clean Trim"
    },
    "extra_fn_clean_exts": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/$defs/CleanPattern"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Additional extensions to clean from sample names",
      "title": "Extra Fn Clean Exts"
    },
    "extra_fn_clean_trim": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Additional strings to trim from start/end of sample names",
      "title": "Extra Fn Clean Trim"
    },
    "sp": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "anyOf": [
              {
                "$ref": "#/$defs/SearchPattern"
              },
              {
                "items": {
                  "$ref": "#/$defs/SearchPattern"
                },
                "type": "array"
              }
            ]
          }
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Search patterns for finding tool outputs",
      "title": "Sp"
    },
    "parquet_format": {
      "anyOf": [
        {
          "enum": [
            "long",
            "wide"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Parquet table format. Long format has columns 'sample_name', 'metric_name' and 'val_raw',\n        'val_raw_type', 'val_str'. To select values for a certain metric, you need to filter based on its name. In contrast,\n        the wide format has columns named after metrics, prefixed with table name and optional namespace. It's easier to\n        for analytics, however, might hit limits on the maximal number of columns in certain edge cases, as well as\n        have potential issues in case of mixed types (i.e. if some values are non-numeric, as Parquet requires a column\n        to have a single type).\n        ",
      "title": "Parquet Format"
    }
  },
  "$defs": {
    "CleanPattern": {
      "description": "Pattern for cleaning sample names",
      "properties": {
        "type": {
          "default": "truncate",
          "description": "Type of pattern matching to use",
          "enum": [
            "truncate",
            "remove",
            "regex",
            "regex_keep"
          ],
          "title": "Type",
          "type": "string"
        },
        "pattern": {
          "description": "Pattern to match",
          "title": "Pattern",
          "type": "string"
        },
        "module": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Module(s) to apply this pattern to",
          "title": "Module"
        }
      },
      "required": [
        "pattern"
      ],
      "title": "CleanPattern",
      "type": "object"
    },
    "GeneralStatsColumnConfig": {
      "description": "Configuration for a general stats column",
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column title",
          "title": "Title"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column description",
          "title": "Description"
        },
        "namespace": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column namespace",
          "title": "Namespace"
        },
        "scale": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Color scale",
          "title": "Scale"
        },
        "format": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number format",
          "title": "Format"
        },
        "min": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum value",
          "title": "Min"
        },
        "max": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum value",
          "title": "Max"
        },
        "ceiling": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Ceiling value",
          "title": "Ceiling"
        },
        "floor": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Floor value",
          "title": "Floor"
        },
        "shared_key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Shared key name",
          "title": "Shared Key"
        },
        "hidden": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether column is hidden by default",
          "title": "Hidden"
        },
        "placement": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column placement order",
          "title": "Placement"
        }
      },
      "title": "GeneralStatsColumnConfig",
      "type": "object"
    },
    "GeneralStatsModuleConfig": {
      "description": "Configuration for a module's general stats columns",
      "properties": {
        "columns": {
          "type": "object",
          "description": "Columns to show in general stats table. Keys are column IDs.",
          "title": "Columns",
          "additionalProperties": {
            "$ref": "#/$defs/GeneralStatsColumnConfig"
          }
        }
      },
      "title": "GeneralStatsModuleConfig",
      "type": "object"
    },
    "SearchPattern": {
      "description": "Search pattern configuration for finding tool outputs",
      "properties": {
        "fn": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Filename pattern to match",
          "title": "Fn"
        },
        "fn_re": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Filename regex pattern to match",
          "title": "Fn Re"
        },
        "contents": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File contents to match",
          "title": "Contents"
        },
        "contents_re": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File contents regex pattern to match",
          "title": "Contents Re"
        },
        "num_lines": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of lines to search",
          "title": "Num Lines"
        },
        "shared": {
          "default": false,
          "description": "Allow file to be processed by multiple search patterns",
          "title": "Shared",
          "type": "boolean"
        },
        "skip": {
          "default": false,
          "description": "Skip this search pattern",
          "title": "Skip",
          "type": "boolean"
        },
        "max_filesize": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum file size to process",
          "title": "Max Filesize"
        },
        "exclude_fn": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Exclude files matching this pattern",
          "title": "Exclude Fn"
        },
        "exclude_fn_re": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Exclude files matching this regex pattern",
          "title": "Exclude Fn Re"
        },
        "exclude_contents": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Exclude files containing this content",
          "title": "Exclude Contents"
        },
        "exclude_contents_re": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Exclude files containing this regex content",
          "title": "Exclude Contents Re"
        }
      },
      "title": "SearchPattern",
      "type": "object"
    }
  },
  "additionalProperties": true
}
