Package: scClustEval 1.0.0

scClustEval: Single Cell Clustering Evaluation and Optimization Framework

A comprehensive framework for evaluating and optimizing single-cell RNA-seq clustering results using self-projection machine learning approaches. The package implements an iterative optimization strategy that merges poorly discriminated clusters based on confusion matrix analysis, achieving robust and reliable cell type identification. Features include multiple classifier support (logistic regression, random forest, SVM, etc.), ROC curve analysis, confusion matrix visualization, and seamless integration with Seurat objects. This is an R implementation inspired by the SCCAF Python package.

Authors:Zaoqu Liu [aut, cre], Chichau Miao [ctb]

scClustEval_1.0.0.tar.gz
scClustEval_1.0.0.zip(r-4.7-x86_64)scClustEval_1.0.0.zip(r-4.7-arm64)scClustEval_1.0.0.zip(r-4.6-x86_64)scClustEval_1.0.0.zip(r-4.6-arm64)
scClustEval_1.0.0.tgz(r-4.6-x86_64)scClustEval_1.0.0.tgz(r-4.6-arm64)
scClustEval_1.0.0.tar.gz(r-4.7-arm64)scClustEval_1.0.0.tar.gz(r-4.7-x86_64)scClustEval_1.0.0.tar.gz(r-4.6-arm64)scClustEval_1.0.0.tar.gz(r-4.6-x86_64)
scClustEval_1.0.0.tgz(r-4.6-emscripten)
manual.pdf |manual.html✨
DESCRIPTION |NEWS
card.svg |card.png
scClustEval/json (API)

# Install 'scClustEval' in R:
install.packages('scClustEval', repos = c('https://zaoqu-liu.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/zaoqu-liu/scclusteval/issues

Uses libs:
  • openblas– Optimized BLAS
  • c++– GNU Standard C++ Library v3
  • openmp– GCC OpenMP (GOMP) support library

On CRAN:

Conda:

openblascppopenmp

4.84 score 139 scripts 40 exports 77 dependencies

Last updated from:dabff729e1 (on main). Checks:10 NOTE, 2 OK, 3 FAIL. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-arm64NOTE211
linux-devel-x86_64NOTE288
source / vignettesOK299
linux-release-arm64NOTE206
linux-release-x86_64NOTE269
macos-release-arm64NOTE197
macos-release-x86_64NOTE343
macos-oldrel-arm64FAIL105
macos-oldrel-x86_64FAIL196
windows-devel-arm64NOTE308
windows-devel-x86_64NOTE245
windows-release-arm64NOTE270
windows-release-x86_64NOTE220
windows-oldrel-x86_64FAIL89
wasm-releaseOK197

Exports:.get_color_paletteAddClusterReliabilitybhattacharyya_distancebhattacharyya_matrixcalc_confusion_matrixcluster_adjacency_matrixcreate_classifierget_available_classifiersget_connection_matrixget_distance_matrixget_top_markersGetExpressionMatrixmake_unique_namesmerge_clustersnormalize_confmat_r1normalize_confmat_r2normalize_confusion_matrixper_cell_accuracyper_cluster_accuracyplot_assessment_summaryplot_cluster_centersplot_cluster_linksplot_cluster_sankeyplot_confusion_heatmapplot_embedding_with_linksplot_optimization_historyplot_rocPlotConfusionLinksQuickAssessRunAssessmentRunOptimizationsc_assessmentsc_optimizesc_optimize_allSCCAF_assessmentSCCAF_optimizeSCCAF_optimize_allself_projectiontrain_test_splittrain_test_split_stratified

Dependencies:caretclasscliclockcodetoolscpp11data.tablediagramdigestdplyre1071farverforeachfuturefuture.applygenericsggplot2glmnetglobalsgluegowergtablehardhatigraphipredisobanditeratorsKernSmoothlabelinglatticelavalifecyclelistenvlubridatemagrittrMASSMatrixModelMetricsnlmennetnumDerivparallellypillarpkgconfigplyrpROCprodlimprogressrproxypurrrR6RColorBrewerRcppRcppArmadilloRcppEigenrecipesreshape2rlangrpartS7scalesshapesparsevctrsSQUAREMstringistringrsurvivaltibbletidyrtidyselecttimechangetimeDatetzdbutf8vctrsviridisLitewithr

Algorithm Principles and Mathematical Foundation
Overview | The Challenge of Cell Clustering Evaluation | Self-Projection Framework | Core Concept | Algorithm Steps | Mathematical Formulation | 1. Data Partitioning | 2. Classification Model | 3. Confusion Matrix | Confusion Matrix Normalization | R1 Normalization | R2 Normalization | Visualization of Confusion Analysis | Cluster Merging Strategy | Graph-Based Approach | Community Detection | Iterative Optimization | Convergence Criteria | Cutoff Adaptation | Classifier Comparison | Supported Algorithms | Mathematical Details | Performance Metrics | Per-Cluster Accuracy | Overall Accuracy | Summary | References

Last update: 2026-01-26
Started: 2026-01-26

Quick Start Guide
Introduction | Installation | Loading the Package | Creating Example Data | Basic Assessment | Running Self-Projection | Understanding Results | Visualization | ROC Curves | Confusion Matrix Heatmaps | Simulating Over-Clustering | Assessment of Over-Clustered Data | Single Optimization Round | Full Optimization Pipeline | Optimization History | Compare Before and After | Sankey Diagram | Using Different Classifiers | Summary

Last update: 2026-01-26
Started: 2026-01-26

Seurat Integration
Overview | Compatibility | Key Functions for Seurat | Basic Workflow | Loading a Seurat Object | Quick Assessment | Full Assessment | Feature Space Options | Clustering Optimization | Standard Optimization Workflow | Visualizing Optimization Results | Accessing Optimization History | Constrained Optimization | Adding Cluster Reliability Scores | Working with Multiple Assays | Seurat v5 Specific Notes | Complete Workflow Example | Troubleshooting | Common Issues | Summary

Last update: 2026-01-26
Started: 2026-01-26

Visualization Guide
Overview | Preparing Example Data | ROC and Precision-Recall Curves | Basic ROC Plot | Precision-Recall Curves | Combined ROC and PRC | Customizing ROC Plots | Confusion Matrix Heatmaps | Raw Confusion Matrix | R1-Normalized (Default) | R2-Normalized | Custom Color Schemes | Side-by-Side Comparison | Per-Cluster Accuracy Plots | Assessment Summary | Custom Accuracy Plot | Optimization Visualization | Preparing Optimization Results | Optimization History | Custom Optimization Plot | Sankey Diagrams | Basic Sankey | Custom Sankey | Creating Publication-Ready Figures | Combined Assessment Figure | Saving Plots | Theme Customization | Applying Custom Themes | Summary

Last update: 2026-01-26
Started: 2026-01-26

Introduction to scClustEval
Overview | Installation | Quick Start | Loading the package | Basic Assessment with Matrix Input | With Seurat Objects | Clustering Optimization | The Optimization Process | Visualization Functions | ROC Curves | Confusion Matrix Heatmap | Optimization History | Classifier Options | Advanced Usage | Using Constraints | Parallel Processing | Session Info | References

Last update: 2026-01-25
Started: 2026-01-25

Readme and manuals

Help Manual

Help pageTopics
scClustEval: Single Cell Clustering Evaluation and Optimization FrameworkscClustEval-package scClustEval
Add cluster reliability scores to Seurat objectAddClusterReliability
Assessment Functions for scClustEvalassessment
Bhattacharyya distancebhattacharyya_distance
Bhattacharyya distance matrixbhattacharyya_matrix
Calculate confusion matrixcalc_confusion_matrix
Classifier Functions for scClustEvalclassifiers
Cluster adjacency matrixcluster_adjacency_matrix
Clustering Functions for scClustEvalclustering
Confusion Matrix Functions for scClustEvalconfusion_matrix
Create a classifiercreate_classifier
Get available classifiersget_available_classifiers
Get connection matrix between clusteringsget_connection_matrix
Get distance matrix between clustersget_distance_matrix
Get top markers from classifierget_top_markers
Extract feature matrix from Seurat (exported helper)GetExpressionMatrix
Make unique namesmake_unique_names
Merge clustersmerge_clusters
Normalize confusion matrix (R1 norm)normalize_confmat_r1
Normalize confusion matrix (R2 norm)normalize_confmat_r2
Normalize confusion matrixnormalize_confusion_matrix
Optimization Functions for scClustEvaloptimization
Compute per-cell accuracyper_cell_accuracy
Compute per-cluster accuracyper_cluster_accuracy
Plot assessment summaryplot_assessment_summary
Plot cluster centroids on embeddingplot_cluster_centers
Plot cluster connections on embeddingplot_cluster_links
Plot Sankey diagram of cluster changesplot_cluster_sankey
Plot confusion matrix heatmapplot_confusion_heatmap
Plot embedding with cluster linksplot_embedding_with_links
Plot optimization historyplot_optimization_history
Plot ROC curvesplot_roc
Plot method for scClustEval objectsplot.scClustEval
Plot Seurat embedding with cluster confusion linksPlotConfusionLinks
Print method for scClustEvalprint.scClustEval
Print method for classifierprint.scClustEval_classifier
Print method for optimization resultprint.scClustEval_optim
Quick assessment from Seurat objectQuickAssess
Run clustering assessment on Seurat objectRunAssessment
Run clustering optimization on Seurat objectRunOptimization
Single Cell Clustering Assessmentsc_assessment
Single round of clustering optimizationsc_optimize
Full iterative optimization pipelinesc_optimize_all
SCCAF AssessmentSCCAF_assessment
SCCAF OptimizeSCCAF_optimize
SCCAF Optimize AllSCCAF_optimize_all
Self-projection assessmentself_projection
Seurat Integration Functions for scClustEvalseurat_integration
Summary method for scClustEvalsummary.scClustEval
Summary method for optimization resultsummary.scClustEval_optim
Simple train-test splittrain_test_split
Stratified train-test splittrain_test_split_stratified
Utility Functions for scClustEvalutils
Visualization Functions for scClustEvalvisualization
Package Startup Functionszzz