Changes
Additions
- Added
setThreadsandgetThreadsto control threading in supported C++ kernels anduwotUMAP backends - Updated
NormalizeDatato use threaded sparse log-normalization and reduce matrix-copying overhead - Updated
FindVariableFeaturesto share a sparse VST implementation across assay versions with threaded standardized-variance calculations - Updated
ScaleDatato center, scale, and clip default inputs in a single threaded C++ call - Updated
SCTransformto use threaded C++ calculations for supported Pearson residuals and corrected counts - Updated the v5
SCTransformworkflow to avoid intermediate assay objects and defer default residual calculation until feature selection is complete - Updated
RunPCAto use a threaded dense Gram-matrix backend by default and reuse feature variances - Updated
FindNeighborsto use threaded C++ Annoy searches and SNN graph construction - Updated
FindClustersto reuse graph preparation across resolutions and parallelize modularity-optimization random starts - Updated
RunUMAPto use the Seurat thread setting foruwot,uwot2, and model projection - Updated
FindMarkersto reuse matrix subsets for fold-change calculations and process sparse inputs efficiently - Updated
FindAllMarkersto test supported Wilcoxon comparisons across all identities in oneprestocall, and compute fold changes and detection percentages in bulk - Updated
IntegrateLayerswithRPCAIntegrationto reduce per-layer setup overhead and use threaded integration calculations - Updated
IntegrateLayerswithCCAIntegrationto use threaded anchor scoring and integration-weight calculations - Added
svd.methodparameter toCCAIntegrationfor use throughIntegrateLayers - Updated large dense CCA comparisons to use an implicit RSpectra backend (
svd.method = "rspectra") and avoid materializing the cell-by-cell cross-product matrix - Updated
CCAIntegrationto skip gene loadings when anchor filtering is disabled
Fixes
- Fixed
AddModuleScore(andCellCycleScoring) on v5 objects with on-disk (e.g. BPCells) assays, where each layer was fully densified to an in-memorydgCMatrixbefore scoring; scoring now operates directly on the on-disk matrix (#10448) - Fixed
GetResidual()to correctly handle multi-model SCT assays with partial feature overlap (#10541) - Fixed bug in
PercentageFeatureSetwhere layer data was incorrectly retrieved prior to finding features with requested pattern (#10438) - Updated
as.SingleCellExperimentto address conversion case where an object has both original and sketched assay / reductions (differing numbers of cells) (#10419) - Fixed bugs in behavior of
RidgePlotparametersfill.by,y.max, andsame.y.lims(#10424, #10517) - Fixed naming of combined p-value column in output of
FindConservedMarkerswhen a non-defaultmeta.methodis specified (#10429) - Updated minimum required
uwotversion to0.2.1(#10447) - Registered
Radius.VisiumV2as an S3 method to fixRadiusreturningNULLforVisiumV2images (#10454) - Fixed
FindSpatiallyVariableFeatures()to correctly match FOV coordinates to cells in the requested assay and handle various edge cases, including fewer than two matched cells, a single varying feature, or no varying requested features (#10504) - Updated argument handling in
FindSpatiallyVariableFeatures()by resolvingselection.methodwithmatch.arg()and restoring theFindSpatiallyVariableFeatures.Assay()defaultnfeaturesvalue to2000(#10504) - Fixed
RunMarkVario()to return one named mark variogram result per feature for single-feature inputs and parallel execution chunks (#10505) - Updated
IntegrateLayers()to throw an error message when less than two groups/layers are provided (#10396) - Fixed recorrection in
SCTransformafter subsetting soFindMarkers()works on subsetted SCT assays with observed median UMI lower than the correction depth stored in every SCT model (#10509) - Fixed
FindNeighborsto correctly convert Annoy angular distances to cosine distances - Fixed
RunPCAon v5 assays to exclude unavailable requested features and cap the number of PCs by the available features and cells - Fixed
SCTransformresidual retrieval to reuse cached features and respect an explicitly suppliedclip.range - Fixed
SCTransformon v5 assays to preserve features selected byvariable.features.rv.thwhenvariable.features.n = NULL, including across multiple layers - Fixed reference-based RPCA/CCA anchor finding to exclude query-query comparisons regardless of
verbose