BREAKING CHANGE: Removed UCell dependency - integrated UCell scoring algorithm directly into scGate
Seurat V4 priority: All functions now prioritize Seurat V4 compatibility (tested with 4.4.0)
Seurat V5 compatible: Also works with Seurat V5 through compatibility layer
New internal functions: .AddModuleScore_UCell(), .SmoothKNN() for signature scoring and kNN smoothing
Uses Seurat::GetAssayData() instead of SeuratObject::Layers() for V4 compatibility
Added BiocNeighbors and Matrix as dependencies (replacing UCell)
Cross-platform compatibility: replaced system("rm -r") with unlink() for Windows support
Numerical stability: improved MCC calculation to handle edge cases (log(0), integer overflow)
Performance optimization: vectorized operations (rowSums, pmax, max.col)
Code quality: fixed potential bugs with 1:length() loops, improved parameter validation
New maintainer: Zaoqu Liu
Update maintainer emails
Bug fixes
Enable parallelization over a list of scGate models (in multi-classifier mode)
Fix bug on parallelization when specifying BPPARAM
Added cell ontology links for controlled cell type dictionary
Update accessor functions for compatibility with Seurat v5
Use function SmoothKNN() from the UCell package for nearest neighbor smoothing of signature scores
Clean up code for CRAN submission
Simultaneously evaluate multiple gating models, given as a list to model parameter. This returns individual gatings as well as a combined cell type annotation from all the models (scGate_multi metadata column), and allows running scGate as a multi-class classifier and annotate cell types in a dataset.
New reduction parameter: this i) Allows nearest-neighbor smoothing on an existing dimensionality reduction (e.g. "pca" or "harmony") and ii) Can significantly speed up computation time and annotation of integrated objects