slot argument to GetAssayData() is now defunct. All internal accessors (.cntEval(), .pull.Enrich()) now use the layer API for SeuratObject >= 5.0.0 and fall back to slot only for older versions..adding.Enrich() to use the SeuratObject package version (not sc@version) when selecting CreateAssay5Object vs CreateAssayObject, preventing mismatches on objects created across Seurat versions.performPCA() error ("Enrichment matrix must be numeric") when enrichment data is returned as a sparse matrix from the Seurat v5 layer API.devel branch to R-CMD-check and test-coverage workflow triggersv* tags to trigger).themeEscape() internal theme function for consistent visualization styling across all plotting functions.cntEval() to detect SeuratObject version and use layer argument instead of deprecated slot argument for SeuratObject >= 5.0.0ridgeEnrichment(), splitEnrichment(), geyserEnrichment(), heatmapEnrichment(), scatterEnrichment(), pcaEnrichment(), densityEnrichment(), gseaEnrichment(), enrichItPlot())densityEnrichment(): Added plot title showing gene set name, alphanumeric sorting of group labels, and improved rug segment styling\code{}, \itemize{}, \enumerate{}, \strong{}, and \emph{} tagsBioconductor Release 3.22
densityEnrichment() interaction with GSVA package through compute.gene.cdf — corrected boolean argument for internal CDF computationgeyserEnrichment() gains summarise.by argument to collapse data (e.g., by patient ID) before plottingcolor.by now accepts both metadata columns and features (other gene sets) across geyserEnrichment(), heatmapEnrichment(), ridgeEnrichment(), scatterEnrichment(), and splitEnrichment()gseaEnrichment() missing attribute error and plotting issuescolor.by checks to correctly determine if a variable is a feature or metadata columndgCMatrix scaling input in geyserEnrichment() — sparse matrices were not handled beforeheatmapEnrichment() (issue #160)t() calls on sparse matrices by properly handling dgCMatrix in internal utilitiesrowSums2() now ignores NAs, fixing errors when NA values were present in the expression matrixDelayedMatrixStats as a conditional dependency for dgCMatrix count matricesenrichIt() -- rank-based GSEA wrapper via fgsea for differential gene expression analysisenrichItPlot() -- visualization helper for enrichIt() results using network-style gene set plotsgseaEnrichment() -- classic GSEA enrichment plot with running enrichment score, rug marks, and NES/p-value display| Area | Function(s) | What changed |
|------|-------------|--------------|
| Visualisation | ridgeEnrichment() | True gradient coloring for numeric color.by; optional per-cell rugs; quantile median line; fixed grey-fill bug |
| | densityEnrichment() | New rug.height parameter; ~4x faster ranking via MatrixGenerics::rowMeans2; cleaner two-panel layout via patchwork |
| | gseaEnrichment() | New rug.height parameter; legend shows ES/NES/p; vectorised ES calculation |
| | splitEnrichment() | Rewritten: split violins when split.by has 2 levels, dodged violins otherwise; inline boxplots; auto Z-scaling |
| | scatterEnrichment() | Density-aware points via ggpointdensity; hex-bin alternative; optional Pearson/Spearman overlay; continuous or discrete color mapping |
| Dimensionality reduction | performPCA() / pcaEnrichment() | Uses irlba::prcomp_irlba() for large matrices; stores eigen-values/contribution in misc; add.percent.contribution now always respected |
| Scoring backend | escape.matrix() / .compute_enrichment() | Lazy loading of heavy back-ends (GSVA, UCell, AUCell); unified .build_gsva_param(); drops empty gene-sets up-front |
| Normalization | performNormalization() | Chunk-wise expressed-gene scaling (memory-friendly); accepts external scale.factor; optional signed log-transform; returns object with assay <assay>_normalized |
| Gene-set retrieval | getGeneSets() | Downloads cached under tools::R_user_dir("escape", "cache"); graceful KEGG append; clearer error for non-human/mouse requests |
.colorizer(), .colorby(), .orderFunction()) removed redundant tidyverse imports.split_* helpers to cap memory during parallel scoring/normalizationridgeEnrichment() no longer produces grey fills when the chosen gene-set is mapped to color.bypcaEnrichment() axis labels correctly include variance contribution when display.factors = FALSE.grabDimRed() handles both Seurat v5 and <v5 slot structures; fixes missing eigen-values for SCE objectsescape.matrix() respects min.size = NULL (no filtering) and handles zero-overlap gene-sets gracefullyna.omit, value, etc.Config/reticulate for BiocParallelescape.gene.sets data object now fully documented with source, usage, and referenceescape.matrix() now silently removes gene-sets with zero detected featuresgetGeneSets() gains local caching; supports only Homo sapiens / Mus musculusgroups parameter handling and data splitting in escape.matrix()performNormalization() per-gene-set rescalingMatrix::t() explicitly to resolve sparse matrix transposition issuesperformNormalization() conditional logic and per-gene-set rescalingheatmapEnrichment()densityEnrichment() GSVA function pull to match new APIdensityEnrichment() for new GSVA function nameperformNormalization()getGeneSets() to prevent issues with m_df errorperformNormalization() errors when input.data was a matrix; now requires single-cell object and enrichment datarunEscape() functionBPPARAM argument to runEscape() and escape.matrix()runEscape() and escape.matrix() for make.positivesplitEnrichment() for group.by = NULLrunEscape() -- convenience wrapper to compute and attach enrichment as a new assaygeyserEnrichment() -- geyser-style enrichment visualizationscatterEnrichment() -- scatter plot for pairwise gene set comparisonheatmapEnrichment() -- heatmap of enrichment scores across groupsenrichIt() to escape.matrix()enrichmentPlot() to densityEnrichment()performPCA() now works with a matrix or single-cell objectpcaEnrichment() combines biplot-like functionsgetGeneSets() to output a list of gene set objects with reformatted names following the Seurat "-" conventiongetSignificance()masterPCAPlot()masterPCAPlot top_n() call to slice_max by top.contributionsperformPCA, eliminated merge callgetSignificance()getSignificance() outputgetSignificance() returns p-values for each comparison using TukeyHSD()gene.sets parameter in getSignificance() to select specific gene setsenrichmentPlot() beta releasesubcategory to getGeneSets() for library subset selectionmin.size filtering now works correctlymin.size parameter to enrichIt() for gene set size filteringgene.sets parameter in masterPCAPlot() and performPCA() for column selectionDietSeurat() call in vignette to prevent issuesescape.gene.sets)lm.fit using limma from getSignificance()getSignificance() ANOVA model callgetSignificance() fit call to match documentationmatch.args() in getSignificance()match.args() in getSignificance()match.args() to getSignificance()stop() to message()getSignificance() to allow ANOVA and T-testgetGeneSets()enrichIt() callgsva() and added BiocParallelcores = 4 to cores = 2 in the vignette