The scSimEval Shiny Studio is a fully self-contained, browser-based graphical interface that gives researchers access to all 62 evaluation measures and every visualization in the package — without writing a single line of R code.
Launch it locally in R with:
File size limit: The app accepts uploads up to 10 GB per file, which comfortably handles large-scale single-cell and multiomics datasets.
The studio is organized into seven primary navigation tabs in the top navigation bar, plus an eight-panel Visualizations module inside Tab 4. The sections below document every tab, every control, and all export options in the order they appear in the application.
The landing page introduces scSimEval Studio, explicitly highlighting simulation evaluation across single-cell RNA-seq (scRNA-seq), single-cell ATAC-seq (scATAC-seq), and single-cell multiomics (scRNA-seq + scATAC-seq) datasets against real biological references across 62 evaluation measures without requiring synthetic ground truth.
In the standalone web deployment (scSimEval_shiny), a
floating Google Analytics all-time pageview counter badge appears at the
bottom-right corner, continuously reporting container-lifetime visits
without UI latency.
The four KPI cards below the hero section display: 62 evaluation measures, 8 biological dimensions, 3 modalities (RNA / ATAC / Co-Assay), and the [0, 1] normalized fidelity scale.
Interactive operational mode cards showcase: 1. Pre-computed Benchmarks: 1-click loading of benchmark evaluations across multiple simulators and datasets. 2. Single-Cell RNA-seq Evaluation: Count matrix evaluation across statistical, clustering, and technical properties. 3. Multi-Omics (RNA + ATAC) Evaluation: Co-assay multiomics benchmarking assessing cross-modal coupling alongside unimodal properties. 4. Upload Pre-Computed Benchmark Table: Instant ingestion of previously calculated benchmark tables for reporting.
Data ingestion and evaluation control centre. It features three comprehensive subtabs:
Choose one of four evaluation modes from the radio button panel on the left sidebar:
Click Load Demo Benchmark to instantly populate the app with pre-computed multi-dataset results across Simulator 1 to Simulator 6 across all 62 measures. No file uploads required.
Package Example Datasets vs. Shiny App Demo Data: * R Package Example Datasets (
data/): Lightweight, runnable count matrices (example_scrna,example_scatac,example_multiomics, 60 features × 80 cells) designed for rapid command-line testing of individual evaluation functions in R console sessions. * Shiny App Demo Data (inst/shiny/scSimEvalApp/data/): A rich pre-computed benchmark results archive (6 simulators × 62 metrics × 2 datasets = 744 metric observations) accompanied by reference and simulated count matrices (100 genes × 50 cells). This gives web users an immediate, zero-latency tour of all tabs, ranking leaderboards, bubble matrices, and 8 visualization panels without requiring computationally intensive matrix evaluations.
Evaluate one or more unimodal count-matrix simulators across single
or multiple experimental datasets. * Reference Count
Matrix: Real empirical cells. Formats: .rds,
.csv, .tsv, .txt,
.xlsx. * Number of Single-Cell Simulators
(1–6): Generates matching upload cards with simulator name,
simulated count matrix, runtime (seconds), and peak RAM (MiB). *
Cell Type Labels (Optional): Vector / factor / 2-column
table (Cell_ID,Cell_Type). Unlocks +12–15 clustering and
biological signal metrics. * Batch Annotations
(Optional): Vector / factor / 2-column table
(Cell_ID,Batch). Unlocks +7 batch mixing metrics.
The Shiny app dynamically scales the number of quantitative metrics measured based on the uploaded files:
| Experiment Mode | Uploaded Inputs | Metrics Measured | Active Evaluation Categories & Scope |
|---|---|---|---|
| Single-Cell (scRNA / scATAC) | Count Matrix alone (no metadata) | ~23 Metrics | Cat I (Distributional, 14 metrics), Cat II (Correlations & Zeroes, 6 metrics), Cat VI (Trajectory, 2 metrics), Cat VIII (Scalability, 2 metrics). |
| Single-Cell (scRNA / scATAC) | Matrix + Cell Types | ~35–38 Metrics | Adds +12–15 metrics: Unlocks Cat III (Cellular Structure / ARI, NMI, AMI, Silhouette) and Cat V (Biological Signal / SimBench DE, DP, DV, top DEG Jaccard). |
| Single-Cell (scRNA / scATAC) | Matrix + Batch Info | ~30 Metrics | Adds +7 metrics: Unlocks Cat IV (Batch Mixing / Batch Silhouette, Shannon Entropy, PCR \(R^2\), CMS, ISI, Seurat mixing). |
| Single-Cell (scRNA / scATAC) | Full Metadata (Matrix + Cell Types + Batch) | Up to ~55 Metrics | Unlocks the complete unimodal suite across Categories I, II, III, IV, V, VI, and VIII. |
| Paired Multiomics (scRNA + scATAC) | RNA + ATAC Matrices alone | ~48 Metrics | Unimodal distributions for both modalities (~40 metrics) PLUS Cat VII (Cross-Modal Coupling: FOSCTTM, Match@1, generation, \(R_V\), peak-to-gene linkage). |
| Paired Multiomics (scRNA + scATAC) | Full Metadata (RNA + ATAC + Cell Types + Batch) | All 62 Metrics | Complete multiomics benchmark suite across all 8 canonical categories (Categories I–VIII). |
| Unpaired Multiomics (Independent cells) | RNA + ATAC Matrices alone | ~38–42 Metrics | Both unimodal distributions plus population coupling (co-expression module fidelity, Network Jaccard, cross-modality correlation). |
| Unpaired Multiomics (Independent cells) | RNA + ATAC + Cell Types (+ Batch) | Up to ~58 Metrics | Essential for unpaired: Unlocks cluster-matched label transfer, cell-type regulatory linkage, and technical donor integration. |
Load output previously saved from
evaluate_simulation_accuracy(),
evaluate_multiomics_accuracy(), or
evaluate_multiple_datasets().
Interactive matrix viewer supporting browsing, filtering, and summary statistics across all loaded biological reference and simulated count matrices.
The flagship visualization: every simulator × all 62 metrics in one colour-coded matrix. Bubble diameter is proportional to the normalized fidelity score. Scores ≥ 0.96 are rendered as bold square glyphs. Simulators are rank-ordered top-to-bottom by composite average score. * Multi-Dataset Selector Bar: Switch seamlessly between All Datasets (Cross-Dataset Average) or inspect individual datasets (Dataset 1, Dataset 2, …, Dataset N) separately. * Minimalist vs Publication Matrix: Toggle between a sleek, dot-matrix view and a fully annotated publication matrix. * Confirmation & Plot Action Button: Click Confirm & Generate Plot to render with app-wide loading indicators. * High-Resolution Exports & R Script: Download 600 DPI JPEG, vector PDF, or a Download R Script providing the complete analytical workflow with ggplot2 code.
Eight diagnostic sub-panels accessed via the pill navigation bar. Every sub-panel is equipped with the Global Multi-Dataset Selector Bar (allowing inspection of All Datasets Average or specific datasets), active dataset badges, Confirm & Generate Plot buttons, app-wide processing overlays, 600 DPI JPEG / PDF downloads, and a Download R Script workflow generator:
plot_evaluation_summary() — rank-ordered horizontal bar
chart across all 8 categories and composite score.plot_distribution_qc() — grid comparing expression
densities, ECDF curves, KS distances, library sizes, and zero-inflation
curves between reference and simulated cells.plot_scalability_benchmark() — runtime (seconds) and memory
(peak RAM in MiB) dashboards with Pareto efficiency
frontiers, throughput (cells/sec), and resource cost index.plot_metric_boxplots() /
plot_category_metric_bars() /
plot_individual_metric_bar() — score distribution boxplots
and barplots across categories with Raw vs Normalized view toggles.plot_metric_heatmap() — method × metric grid with exact
scores in bold text, direction-aware fill colours, and unsupervised
hierarchical clustering.plot_metric_pca() — simulators projected into performance
space with discriminating metric vector loadings.plot_metric_mds() — Multi-Dimensional Scaling ordination
mapping simulator algorithmic proximity.compute_dataset_embeddings() +
plot_dataset_embeddings() — dimension reduction comparing
reference cells directly to simulated cells, with cell-type cluster
fidelity metrics.The central hub for data exploration and multi-format exports:
A full DT table with per-column dropdown search
boxes for instant filtering by Dataset, Method, and Category.
Explicitly displays: * Score_Raw: Raw unnormalized
metric values in physical and statistical units (e.g. KS distance,
Wasserstein distance, runtime in seconds, peak RAM in
MiB, Chi-Square values, Pearson correlation). *
Score: Direction-aware normalized score \([0, 1]\) where 1.0 represents top
fidelity.
Export benchmark results in Excel Workbook (.xlsx), CSV Table (.csv), Tab-delimited (.tsv), R Data Object (.rds), or Complete Archive (.zip).
An in-app reference guide structured into seven sections: 1. Workflow Architecture & Pipeline — 4-step pipeline diagram and multi-dataset processing. 2. The Eight Evaluation Categories — tabular reference for all 62 metrics, highlighting peak RAM in MiB. 3. Metric Measurement Capacity by Data & Metadata Mode — detailed reference table documenting metric numbers and unlocked categories. 4. Score Normalization Pipeline — direction inversion, min-max scaling, and raw vs normalized score reporting. 5. Comprehensive Guide to App Tabs — detailed walkthrough of each application module. 6. Input Data Formats & Metadata Templates — matrix structures (genes × cells), cell-type and batch annotation vectors, and sample CSV downloads. 7. Computational Sizing, RAM (MiB/GiB), & Guidelines — hardware recommendations contrasting Cloud, Local Workstation, and HPC clusters.
Information regarding the development team at Division of Agricultural Bioinformatics, ICAR-IASRI, maintainer contacts, GitHub issues link, and recommended citations.
Every Shiny control maps directly to a documented R function:
| Shiny Panel | R Function |
|---|---|
| Data Hub → Single-Cell | evaluate_simulation_accuracy() |
| Data Hub → Multiomics | evaluate_multiomics_accuracy() |
| Data Hub → Multiple Datasets | evaluate_multiple_datasets() |
| Bubble Matrix | plot_benchmark_bubble_matrix() |
| Evaluation Summary | plot_evaluation_summary() |
| Distribution QC | plot_distribution_qc() |
| Scalability Benchmark | plot_scalability_benchmark() |
| Metric Plots (all categories) | plot_metric_boxplots() |
| Metric Plots (by category) | plot_category_metric_bars() |
| Metric Plots (individual) | plot_individual_metric_bar() |
| Metric Heatmap | plot_metric_heatmap() |
| PCA Ordination | plot_metric_pca() |
| MDS Metric Space | plot_metric_mds() |
| Cell Embeddings | compute_dataset_embeddings() +
plot_dataset_embeddings() |
| Embedding Quality Metrics | compute_embedding_quality_metrics() |
For complete parameter descriptions see the Reference index.
#> R version 4.6.1 (2026-06-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 26.04.1 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.32.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: Etc/UTC
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] scSimEval_0.99.7 rmarkdown_2.32
#>
#> loaded via a namespace (and not attached):
#> [1] RColorBrewer_1.1-3 sys_3.4.3
#> [3] jsonlite_2.0.0 magrittr_2.0.5
#> [5] ggbeeswarm_0.7.3 SuppDists_1.1-9.9
#> [7] modeltools_0.2-25 farver_2.1.2
#> [9] nloptr_2.2.1 provenance_4.4
#> [11] vctrs_0.7.3 memoise_2.0.1
#> [13] minqa_1.2.8 htmltools_0.5.9
#> [15] S4Arrays_1.13.2 curl_8.0.0
#> [17] BiocNeighbors_2.7.3 SparseArray_1.13.4
#> [19] overlapping_2.5 sass_0.4.10
#> [21] bslib_0.12.0 testthat_3.3.2
#> [23] httr2_1.3.0 cachem_1.1.0
#> [25] buildtools_1.0.0 igraph_2.3.4
#> [27] lifecycle_1.0.5 pkgconfig_2.0.3
#> [29] rsvd_1.0.5 Matrix_1.7-6
#> [31] R6_2.6.1 fastmap_1.2.0
#> [33] rbibutils_2.4.1 MatrixGenerics_1.25.0
#> [35] clue_0.3-68 digest_0.6.39
#> [37] S4Vectors_0.51.10 scater_1.41.2
#> [39] irlba_2.4.1 IsoplotR_7.0
#> [41] GenomicRanges_1.65.4 RSQLite_3.53.3
#> [43] beachmat_2.29.3 philentropy_0.10.0
#> [45] filelock_1.0.3 labeling_0.4.3
#> [47] abind_1.4-8 compiler_4.6.1
#> [49] proxy_0.4-29 bit64_4.8.6
#> [51] withr_3.0.3 CellMixS_1.29.0
#> [53] S7_0.2.2 BiocParallel_1.47.0
#> [55] viridis_0.6.5 DBI_1.3.0
#> [57] MASS_7.3-66 DelayedArray_0.39.8
#> [59] bluster_1.23.1 tools_4.6.1
#> [61] vipor_0.4.7 otel_0.2.0
#> [63] beeswarm_0.4.0 prabclus_2.3-5
#> [65] nnet_7.3-21 glue_1.8.1
#> [67] nlme_3.1-171 grid_4.6.1
#> [69] waddR_1.27.0 cluster_2.1.8.3
#> [71] ade4_1.7-24 generics_0.1.4
#> [73] gtable_0.3.6 class_7.3-24
#> [75] tidyr_1.3.2 ScaledMatrix_1.21.0
#> [77] BiocSingular_1.29.2 XVector_0.53.0
#> [79] flexmix_2.3-21 BiocGenerics_0.59.12
#> [81] ggrepel_0.9.8 RANN_2.6.3
#> [83] pillar_1.11.1 limma_3.99.1
#> [85] clValid_0.7 robustbase_0.99-7
#> [87] splines_4.6.1 dplyr_1.2.1
#> [89] BiocFileCache_3.3.0 lattice_0.23-1
#> [91] bit_4.6.0 tidyselect_1.2.1
#> [93] SingleCellExperiment_1.35.2 locfit_1.5-9.12
#> [95] scuttle_1.23.2 maketools_1.3.2
#> [97] clusterSim_0.51-6 knitr_1.52
#> [99] gridExtra_2.3.1 reformulas_0.4.4
#> [101] IRanges_2.47.5 Seqinfo_1.3.2
#> [103] edgeR_4.99.6 SummarizedExperiment_1.43.0
#> [105] stats4_4.6.1 xfun_0.61
#> [107] Biobase_2.73.2 statmod_1.5.2
#> [109] diptest_0.77-2 randtests_1.0.2
#> [111] brio_1.1.5 arm_1.15-3
#> [113] matrixStats_1.5.0 DEoptimR_1.2-2
#> [115] yaml_2.3.12 boot_1.3-32
#> [117] eva_0.2.7 evaluate_1.0.5
#> [119] codetools_0.2-20 MLmetrics_1.1.3
#> [121] kSamples_1.2-12 kernlab_0.9-33
#> [123] tibble_3.3.1 cli_3.6.6
#> [125] RcppParallel_6.2.1 Rdpack_2.6.6
#> [127] jquerylib_0.1.4 Rcpp_1.1.2
#> [129] dbplyr_2.6.0 coda_0.19-4.1
#> [131] parallel_4.6.1 ggplot2_4.0.3
#> [133] blob_1.3.0 mclust_6.1.3
#> [135] lme4_2.0-6 viridisLite_0.4.3
#> [137] ggridges_0.5.7 scales_1.4.0
#> [139] e1071_1.7-17 purrr_1.2.2
#> [141] fpc_2.2-15 rlang_1.3.0
#> [143] cowplot_1.2.0