
Plot Comparison Boxplots Across Simulators Plot Benchmark Metric Score Distributions Across Simulators
Source:R/10_visualizations.R
plot_metric_boxplots.RdGenerates 600 DPI boxplots with jittered points showing the distribution of evaluation metric scores across simulated single-cell and multiomics datasets. Supports standardized direction-aligned fidelity scores (where higher is universally superior, resolving metric polarity differences across distance and correlation measures) or original unnormalized raw values with optional direction separation or per-metric faceting.
Arguments
- benchmark_data
A data frame (such as
demo$benchmark_summary_tableor output fromevaluate_simulation_accuracy()) or a named list of benchmark result tables.- categories
Optional character vector of categories to include. Default
NULL(all 8 categories).- metrics
Optional character vector of specific metrics to include. Default
NULL(all).- score_type
Character. Score formulation:
"normalized"(default; direction-inverted standardized fidelity scores in [0, 1] where higher is universally superior across all measures) or"raw"(unnormalized original metric values).- separate_direction
Logical. When
score_type = "raw", whether to separate metrics by optimization direction (lower vs higher is better) into distinct sub-panels. DefaultFALSE.- facet_by
Character. Facet layout:
"category"(default; 8 canonical category panels) or"metric"(independent panels for each individual metric).- palette
Optional named character vector of simulator colors.
- ncol
Integer. Number of columns in facet wrap. Default
4.- base_size
Numeric. Base font size. Default
11.
Examples
data(example_scrna, package = "scSimEval")
res <- evaluate_simulation_accuracy(example_scrna$ref, example_scrna$sim)
#> [1/5] Extracting cell-level properties...
#> [2/5] Extracting feature-level properties...
#> [3/5] Computing univariate accuracy metrics...
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> Metric: 'bhattacharyya' with unit: 'log'; comparing: 2 vectors
#> [4/5] Computing bivariate metrics (Fasano-Franceschini, Peacock, KDE zstat, 2D EMD)...
#> Warning: argument is not numeric or logical: returning NA
#> Warning: emd: Maximum number of iterations has been reached (500)
#> Warning: argument is not numeric or logical: returning NA
#> Warning: emd: Maximum number of iterations has been reached (500)
#> Warning: argument is not numeric or logical: returning NA
#> Warning: emd: Maximum number of iterations has been reached (500)
#> Warning: argument is not numeric or logical: returning NA
#> Warning: emd: Maximum number of iterations has been reached (500)
#> [5/5] Computing zero-probability and manifold distances...
#> Unimodal accuracy evaluation complete.
