parameters = {
    "features_to_harmonize": {
        "type": "feature-list-multi",
        "label": "Features to harmonize",
        "description": "Select the features to be harmonised across sites.",
    },
    "batch_list_harmonisations": {
        "type": "feature-list-multi",
        "label": "Batch list harmonisations",
        "description": "Select column names indicating batch effect within covars (i.e. ['PLD', 'LD',’readout’]).",
    },
    "covariates": {
        "type": "feature-list-multi",
        "label": "Covariates",
        "description": "Select the covariates to be protected during harmonisation across sites.",
    },
    "discrete_covariates": {
        "type": "feature-list-multi",
        "label": "Discrete covariates",
        "description": "Select the discrete/categorical covariates to be protected during harmonisation across sites, such as sex.",
    },
    "continuous_covariates": {
        "type": "feature-list-multi",
        "label": "Continuous covariates",
        "description": "Select the continuous covariates to be protected during harmonisation across sites, such as age.",
    },
    "numerical_covariates": {
        "type": "feature-list-multi",
        "label": "Numerical covariates",
        "description": "Determine which covariates are numerical, others will be viewed as categorical.",
    },
    "smooth_terms": {
        "type": "feature-list-multi",
        "label": "Smooth terms",
        "description": "Select the covariates that are assumed to be non-linearly associated with the features.",
    },
    "discrete_cluster_features": {
        "type": "feature-list-multi",
        "label": "Discrete cluster features",
        "description": "Select the discrete/categorical cluster features used to determine site indicators, such as 'readout'.",
    },
    "continuous_cluster_features": {
        "type": "feature-list-multi",
        "label": "Continuous cluster features",
        "description": "Select the continuous cluster features used to determine site indicators, such as ‘PLD’, ‘LD’.",
    },
    "metric": {
        "type": "selection",
        "label": "Metric",
        "description": "Metric to define the optimal number of clusters.",
        "options": ["distortion", "silhouette", "calinski_harabasz"],
        "hide": True,
    },
    "features_reduction": {
        "type": "selection",
        "label": "Features reduction",
        "description": "Method for reducing the embedded space with n components. Can be None, 'pca' or 'umap'.",
        "options": ["None", "pca", "umap"],
    },
    "feature_reduction_dimensions": {
        "type": "int",
        "label": "Feature reduction dimensions",
        "description": "Dimension of the embedded space for features reduction.",
        "default": 2,
        "hide": True,
    },
    "empirical_bayes": {
        "type": "bool",
        "label": "Empirical bayes",
        "description": "Whether to use empirical Bayes (EB) estimates of site effects.",
        "default": True,
    },
    "mean_only": {
        "type": "bool",
        "label": "Mean only",
        "description": "Select if harmonisation of only the mean, instead of both the mean and variance (scaling), is performed.",
        "default": False,
    },
    "parametric": {
        "type": "bool",
        "label": "Parametric",
        "description": "Deselect if non-parametric adjustments should be performed.",
        "default": True,
    },
    "use_gmm": {
        "type": "bool",
        "label": "Use GMM",
        "description": "Select to use Gaussian Mixture Modeling (GMM) to identify scan groupings associated with hidden covariates to better address bimodal feature distributions. Off by default.",
        "default": False,
    },
    "site_indicator": {
        "type": "feature-list-single",
        "label": "Site indicator",
        "description": "The site identifier.",
        "default": "site",
    },
    "patient_identifier": {
        "type": "feature-list-single",
        "label": "Patient identifier",
        "description": "Column name identifying each patient.",
        "default": "participant_id",
        "hide": True,
    },
    "intermediate_results_path": {
        "type": "str",
        "label": "Intermediate results path",
        "description": "Path to save intermediate results.",
        "default": ".",
        "hide": True,
    },
    "return_extended": {
        "type": "bool",
        "label": "Return extended",
        "description": "Whether to return extended outputs (intermediate dataframes).",
        "default": False,
        "hide": True,
    },
    "data_subset": {
        "type": "feature-list-multi",
        "label": "Data subset",
        "description": "Features of the dataset subset to be passed to autocombat for harmonization.",
        "hide": True,
    },
}
