Changelog
Source:NEWS.md
Seurat 6.0.0
Additions
- Added scSLIDE (Single-cell Sample-Level Inference using Density Estimation) to Seurat, enabling sample-level analysis of single-cell data
- Added
PrepareSampleObjectto select landmark cells and map every cell to its nearest landmarks - Added
SketchDataByGroupto sketch cells within metadata groups using uniform or leverage-score sampling, with configurable cell counts per group and layer - Added
QuickCorTestto select genes correlated with a response variable, optionally within metadata groups - Added
RunPLSto compute a partial least squares (PLS) dimensional reduction, whose components capture the variation in expression most predictive of one or more sample- or cell-level responses (supportsplsr,cpplsandspls) - Added
FindmmNNandFindsmNNto map cells to landmarks using weighted combinations of reductions or a single reduction, respectively - Added
GenerateSampleObjectto summarize landmark assignments per sample into a Seurat object for downstream sample-level analysis - Added
NormalizeChiSquaredto normalize raw landmark-by-sample counts as deviations from expected counts - Added
RunDiffusionMapto compute a diffusion map reduction withdestiny, including support for a precomputed distance matrix and eigenvalue-weighted embeddings - Added
TrajDETestto test expression changes along a continuous trajectory using negative binomial regression withglmGamPoi - Added
PlotAnnotatedHeatmapto display expression heatmaps with cells or samples ordered by metadata variables and optional categorical or continuous annotation bars
- Added
- Added
ReadAteraandLoadAterato read 10x Genomics Atera spatial data, including expression and control counts, Azimuth cell type annotations, cell centroids, cell/nucleus segmentations, transcript coordinates, and morphology images- Added support for gene selection when reading molecules, feature-type selection when reading counts, BPCells-backed counts caching, and parallel Atera reads using the active
future::plan() - Added
LoadAteraMolecules,LoadAteraSegmentations, andLoadAteraCodewordsto load additional transcript coordinates, segmentation polygons, and per-codeword coordinates into existing Atera objects
- Added support for gene selection when reading molecules, feature-type selection when reading counts, BPCells-backed counts caching, and parallel Atera reads using the active
- Added gene and region selection to
ReadXeniumandLoadXeniumfor molecule coordinates
Fixes
- Fixed
LeverageScore(and soSketchData) on objects with fewer than 50 features or cells by using the number of components already computed from the object’s size - Updated
LeverageScore(and soSketchData) to scale better on BPCells on-disk data, by computing the random projection in blocks of cells instead of transposing the whole matrix. Results for a givenseeddiffer from previous versions - Fixed
LeverageScoreon BPCells on-disk data deleting unrelated files from the session temporary directory and leaving behind a full on-disk copy of the input matrix - Fixed
LeverageScoredensifying the whole layer when retrying after a failure, and reporting that no zero-variance features were found even when it had removed some - Fixed
ProjectDataandTransferSketchLabelsnot preserving factor levels and ordering in projected labels - Fixed SCT query projection using the resolved reference variance floor instead of the original
"umi_median"setting, which could reduce anchors inFindTransferAnchorsand causeTransferDatato fail - Improved table reading in
Read10X,ReadMtx,LoadSTARmap,LoadCurioSeeker, andReadSlideSeq, and coordinate handling inSpatialPlot - Fixed
Load10X_Spatialwith custom assay and slice names and uppercase feature names, and cell filtering inRead10X_Coordinates,Read10X_Segmentations, andRead10X_HD_GeoJson - Fixed
ImageDimPlotandImageFeaturePlotwith FOV and boundary names containing underscores - Fixed default orientation in
ImageDimPlotandImageFeaturePlotfor spatialFOVs, including older Xenium/Atera objects: x is horizontal and y increases downward; stored coordinates are unchanged - Fixed transcript quality filtering and count reader error reporting in
ReadXenium - Fixed
LoadXeniummolecule labels to match assay feature names when underscores or pipes are replaced with dashes - Reduced data exported to parallel workers by passing selected inputs directly
- Per-object inputs in
PrepSCTIntegration,FindIntegrationAnchors,MapQueryData, andBridgeCellsRepresentation - Feature chunks in
RunMarkVario - Cell names per field of view for segmentations and cell metadata rows for bounding boxes in
ReadVizgen
- Per-object inputs in
Seurat 5.6.0 (2026-10-03)
CRAN release: 2026-10-03
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
Seurat 5.5.1 (2026-06-26)
CRAN release: 2026-06-26
Additions
- Added
uwot.initparameter toRunUMAPto optionally customize method of UMAP initialization (#10386)
Fixes
- Fixed bug in
PrepSCTFindMarkersin the multi-model case that produced zero counts for some valid genes due to an incorrect filter for theta (#10410) - Fixed issue with
FindClustersnot setting metadata properly when a vector of resolutions is passed toresolutionand a custom cluster name is specified (#10385) - Updated logic in
Parentingto extract function names from the call stack efficiently, avoiding slowdowns when functions are run withdo.call(#10161) - Fixed bug in
PrepDR5affectingRunPCAon v5 objects, where supplied features could be incorrectly dropped when non-supplied features had zero variance (#10398) - Updated
LabelClustersto usefillargument for label background color ingeom_label*when specified, instead of the default per-cluster color (#10404)
Seurat 5.5.0 (2026-04-22)
CRAN release: 2026-04-22
Additions
- Added support for
vars.to.regressandlatent.datainScaleData.IterableMatrix(BPCells) (#10300) - Added warning to
SCTransformto notify thatdo.correct.umiis hard set toFwhen a reference SCT model is specified (#10329, #10366) - Added warning to
FindMarkers/FindAllMarkerswhen running on anIterableMatrix(BPCells) with column-major storage order (#10365) - Added
plot_typeparameter toElbowPlotto switch between default (PCs x standard deviation) and two new options: - Added
legend.positionparameterDimHeatmapto allow repositioning of legend whencombine = T(#9813) - Added “selected cells” indicator in
InteractiveSpatialPlot(#10254) - Added
stroke.alphaparameter toSpatialPlotto be able to control transparency for fill and stroke separately (#10345) - Added support for unnamed
colsvectors inSpatialPlot(#10298) - Added
assayparameter toFeaturePlotto specify assay to pull features from (#10349)
Fixes
- Fixed issue with UMAP version parsing in
RunUMAP(#10246) - Updated
HTODemuxto handle HTO assays containing a subset of cells (#10362) - Updated
Rcpperror handling (#10317, #10353) - Fixed issue with
NaNvalues being propagated inPrepSCTFindMarkers(#10361) - Fixed
umi.assaylabeling for model list inSCTransformto match the assay specified (#10330) - Fixed factor-level ordering for metadata columns resulting from
FindClusters(#10253) - Fixed error in
FindSpatiallyVariableFeaturesfrom use ofslotin function cascade (#10285) - Fixed classification of gRNA with less than 5 cells in
RunMixscapefor proper label as “NP” (#10299) - Fixed issue with checking object scope in
as.Seurat.SingleCellExperiment(#10339) - Fixed
SketchDatato pass the provided argument forverbosetoLeverageScore(#10145) - Fixed
FindConservedMarkersto pass the provided argument formin.cells.grouptoFindMarkers(#8910) - Updated
IntegrateEmbeddingsto respectdims.to.integratewhenreferenceis specified (#10172) - Fixed list structure of neighbors in
FindNeighborswhen SNN is not computed (#10364) - Updated
DimHeatmapto add PC labels as individual titles (#9813) - Updated layer-building logic in
Single/MultiExIPlotfor ggplot2 v4+ compatibility (#10333) - Fixed
order = Tin rasterizedDim/FeaturePlots viaggrastr-based rasterization (#10307, #10344) - Updated
SpatialPlotcoordinate system check when plottingVisiumV1images (#10267) - Updated
SpatialPlotfor Visium data to speed up plot construction (#10345) - Fixed interactive functionality of
LinkedDim/LinkedFeaturePlotand interactive mode inSpatialPlot(#10368) - Updated coordinate systems used for plot display in
InteractiveSpatialPlot(#10254) - Fixed coordinate ranges when spatial plots are generated with
crop = F(#10278, #10284)
Seurat 5.4.0 (2025-12-14)
CRAN release: 2025-12-14
Additions
- Added support for 10x Space Ranger 4.0 outputs (Visium data with segmentations)
- Updated data loading functions
Load10X_Spatial,Read10X_Image, - Updated
GetTissueCoordinates.VisiumV2 - Updated spatial visualization functions
SpatialPlot,SingleSpatialPlot,SpatialDimPlot,SpatialFeaturePlot - Added helper functions
Read10X_Segmentations,Read10X_HD_GeoJson,Format10X_GeoJson_CellID
- Updated data loading functions
- Added function
InteractiveSpatialPlotto allow users to interactively lasso-select cells from a spatial Seurat object (Visium, SlideSeq, or Vizgen data)
Fixes
- Updated loading & visualization functions (see above for list) for Visium objects – see #10125 for details
- For binned Visium data,
xnow correctly corresponds toimagecolfrom tissue positions;ynow correctly corresponds toimagerowfrom tissue positions; these are now consistent with 10X’s coordinate system (with the origin being the top left).
- For binned Visium data,
- Reverted #10062 in favor of fetching both grouping variables and dimensionality reduction embeddings with
FetchDataas previously; added warning to alert users when column names of metadata and dimensionality reduction embeddings conflict - Added color retrieval logic in
LabelClustersfor consistent cluster label coloring (#10198)
Seurat 5.3.1 (2025-10-29)
CRAN release: 2025-10-29
Changes
Additions
- Added option to use
cluster_leidenfromigraphwhen running Leiden clustering (#9931) - Added option to use
umap2fromuwotwhen running UMAP (#9918) - Added option to use
approx_powparameter fromuwotwhen running UMAP (#9449) - Updated
LoadXeniumto add support for Xenium protein data (#10024) - Added option to specify stroke size in
FeaturePlot(#10053) - Added
label.size.cutoffparameter toDimPlotto allow users to label only clusters above a certain size (#10092)
Fixes
- Fixed deprecated calls to Seurat functions
GetAssayDataandPackageCheck(#9924), (#10102) - Fixed errors in
RunAzimuthrelating toFindTransferAnchors(#9924) - Fixed errors in
LeverageScorerelating to handling of (variable) features (#9924) - Updated
PseudobulkExpressionto acccount for the case that a category passed togroup.byhas only one value (#10092) - Updated
VlnPlotto use assay passed to the function if specified (#10092) - Updated
FeatureScatterto allow gene names with parentheses to be plotted (#10092) - Updated
SingleRasterMapto store object metadata correctly (#10092) - Updated
FindClustersto order cluster factor levels correctly when assigning a custom cluster name (#10092) - Updated
FindConservedMarkersto remove NA values (#9917) - Updated visualization functions to avoid ggplot2
guides,aes_string, andfacet_griddeprecation warnings (#9409, #10116) - Fixed
DimPlotbug where metadata columns named ‘PC_1’, ‘UMAP_1’ etc override reduction embeddings (#10062)
Seurat 5.3.0 (2025-04-24)
CRAN release: 2025-04-23
Changes
- Fixed
PseudobulkExpressionto forward relevant arguments toNormalizeData(#9840) - Fixed bugs in
FindSpatiallyVariableFeatures; deprecated theslotparameter in favor oflayer(#9836) - Extended
FindTransferAnchors’sreferenceargument to accept SCT inputs containing more than one SCT model; in this case, the reference model that was fit against the largest number of cells is used (#9833) - Extended
FindTransferAnchors’squeryargument to accept multi-layer inputs; updatedMappingScoreto support multi-layer query inputs (#9832) - Updated
LeverageScore.defaultto convertBPCells::IterableMatrixinputs with less than 7500 cells into a sparse matrix before performing the calculation (#9831) - Dropped
VariableFeaturessetter fromSketchData(#9830) - Extended
Cells.SCTAssay’slayerargument accept slot names:"counts","data","scale.data"; enabled compatibility withSketchData/LeverageScore(#9830) - Updated
SCTransform.StdAssayto simplify and speed up the method (#9828) - Updated
AddModuleScoreto support multi-layer inputs (#9826) - Fixed
PseudobulkExpressionto work withSeuratinputs containing more than one assay (9824) - Added
RunICA.StdAssay(#9825) - Updated
HarmonyIntegrationto callharmony::RunHarmonyin favor of the deprecatedharmony::HarmonyMatrix(#9789) - Added
raster.dpiparameter toVlnPlot(#9665) - Fixed
SpatialDimPlot(..., interactive = TRUE)to supportSlideSeqandSTARmapinput types; addedScaleFactors.SlideSeq&ScaleFactors.STARmapgenerics (#9691) - Fixed
PercentageFeatureSetso that theassayparameter is always respected; fixedPercentageFeatureSetto raise a warning if anyfeaturesare absent in the specifiedassayinstead of throwing an error (#9686) - Fixed
GroupCorrelationandGroupCorrelationPlotto be compatible withSeuratObject>= 5.0.0 (#9625)
Seurat 5.2.1 (2025-01-23)
CRAN release: 2025-01-24
Changes
- Fixed
test_find_clusters.Rto accommodate variability in label assignments given byFindClustersacross different systems (#9641)
Seurat 5.2.0 (2024-12-20)
CRAN release: 2025-01-13
Changes
- Added
group.byparameter toFindAllMarkers, allowing users to regroup their data using a non-default identity class prior to performing differential expression (#9550) - Added
image.typeparameter toRead10X_ImageenablingVisiumV1instances to be populated instead of instances of the defaultVisiumV2class (#9556) - Fixed
IntegrateLayersto respect thedims.to.integrateparameter - Added
stroke.sizeparameter toDimPlot(#8180) - Updated
RunLeidento use theleidenbasepackage instead ofleiden; deprecated themethodparameter forRunLeidenandFindClusters; updatedRunLeidento resetrandom.seedto 1 if the value is 0 or less (#6792) - Updated
RunPCAto use theBPCells-provided SVD solver onBPCellsmatrices; updatedJackStrawto supportBPCellsmatrices (#8271) - Fixed
RunPCAto avoid convertingBPCellsmatrices into dense matrices - significantly reduces the function’s memory usage when running onBPCellsmatrices (#8966) - Updated
RunSLSIto supportBPCellsmatrices - Fixed
DietSeuratso that thelayersparameter is respected (#8197) - Updated
RunUMAPto supportumap-learnversion >= 0.5.0 (#9559) - Updated
LoadXeniumandReadXeniumto accommodate the output fromXOAv3.0; updatedLoadXeniumto provide more fine-grained control over the datatypes parsed in, including nucleus segmentation masks, segmentation methods, and other experimental metadata; updatedReadXeniumto load cell_feature_matrix.h5 when present in favor of the MEX format files; updatedReadXeniumto load .parquet files usingarrowinstead of .csv.gz files to support XOA 3.0 (#8604) - Fixed
LoadXeniumto accommodate datasets without “Blank Codeword” or “Unassigned Codeword” matrices(#9135) - Fixed
ReadXeniumto properly parse multiple molecular outputs at once (#8265) - Added
featuresparameter toLeverageScoreandSketchData - Updated
SketchData’sncellsparameter to accept integer vector
Seurat 5.1.0 (2024-05-08)
CRAN release: 2024-05-10
Changes
- Updated interactive
SpatialDimPlots to display spatial coordinates - Updated
BuildClusterTreetoPseudobulkExpression(..., method = "aggregate")instead ofAverageExpression - Fixed
SpatialPlotto properly handle images with shared cells - Added
cluster.nameparameter toBuildNicheAssay - Added
VisiumV2class, inheritsSeuratObject::FOV, returned byLoad10X_Spatial - Updated
Load10X_Spatialto support loading Visium HD datasets - addedbin.sizeparameter - Updated
Read10X_Coordinatesto handle newtissue_coordinates.parquetfiles - Added
shapeparameter toSpatialPlotand wrappers:SpatialFeaturePlotandSpatialDimPlot - Added
image.scaleparameter toSpatialPlotand related functions:SpatialFeaturePlot/ISpatialFeaturePlotandSpatialDimPlot/ISpatialDimPlot - Restored
image.nameparameter toRead10X_Image - Added
scaleparameter toRadius.VisiumV1 - Fixed calculation of
spot.radiusattribute forVisiumV1instance returned byRead10X_Image— replacescale.factors$fiducialwithscale.factors$spot - Added
Read10X_CoordinatesandRead10X_ScaleFactors - Fixed
SpatialPlotto properly handle mutli-assaySeuratinstances
Seurat 5.0.3 (2024-03-18)
CRAN release: 2024-03-18
Changes
- Fixed
PercentAboveto discount null values (#8412) - Added
logparameter toFeatureScatter - Fixed handling of
clip.rangeforSCTransformwhenncellsis less than the size of the passed dataset
Seurat 5.0.1 (2023-11-16)
CRAN release: 2023-11-17
Changes
- Fixed
SCTransform.StdAssayto pass extra arguments tosctransform::vst(). Fixes #875 - Fixed PercentageFeatureSet Layer calling (#8009)
- Fixed cell highlighting (#7914)
- Updated marker sorting to be by p-value with ties broken by absolute difference in percent expression
- Fixed issue with replicated barcodes in MappingScore (#7922)
- Improved
PseudobulkExpressionby adding ‘g’ to cell names that started with numeric values - Improved
PseudobulkExpressionby adding each variable specified ingroup.byas columns in the object metadata whenreturn.seurat=TRUE - Fixed
DimPlotandFeatureScatterwhich were breaking when using thesplit.byargument with a variable that contained NAs
Seurat 5.0.0 (2023-10-25)
CRAN release: 2023-11-04
Added
- Add
BridgeCellsRepresentationto construct a dictionary representation for each unimodal dataset. - Add
BuildNicheAssayto construct a new assay where each feature is a cell label. The values represent the sum of a particular cell label neighboring a given cell. - Add
CalcDispersionto calculate the dispersion of features. - Add
CCAIntegrationto perform Seurat-CCA Integration. - Add
CountSketchto generate a CountSketch random matrix. - Add
CreateCategoryMatrixto create a one-hot matrix for a given label. - Add
DISPto find variable features based on dispersion. - Add
FastRPCAIntegrationas a convenience wrapper function around the following three functions that are often run together when performing integration. - Add
FetchResiduals_referenceas a temporary function to get residuals from the reference. - Add
FetchResidualsto call sctransform::get_residuals. - Add
FetchResidualSCTModelto calculate Pearson residuals of features not in the scale.data. - Add
FindBridgeAnchorto find bridge anchors between two unimodal datasets. - Add
FindBridgeIntegrationAnchorsto find a set of anchors for integration between unimodal query and the other unimodal reference using a pre-computed BridgeReferenceSet. - Add
FindBridgeTransferAnchorsto find a set of anchors for label transfer between unimodal query and the other unimodal reference using a pre-computed BridgeReferenceSet. - Add
GaussianSketchto perform Gaussian sketching. - Add
HarmonyIntegrationto perform Harmony integration. - Add
IntegrateLayersto integrate layers in an assay object. - Add
JointPCAIntegrationto perform Seurat-Joint PCA Integration. - Add
LeverageScoreto compute the leverage scores for a given object. - Add
LoadCurioSeekerto load Curio Seeker data. - Add
MVPto find variable features based on mean.var.plot. - Add
NNtoGraphto convert the Neighbor class to an asymmetrical Graph class. - Add
PrepareBridgeReferenceto preprocess the multi-omic bridge and unimodal reference datasets into an extended reference. - Add
ProjectCellEmbeddingsto project query data onto the reference dimensional reduction. - Add
ProjectDatato project high-dimensional single-cell RNA expression data from a full dataset onto the lower-dimensional embedding of the sketch of the dataset. - Add
ProjectDimReducto project query data to reference dimensional reduction. - Add
ProjectIntegrationto integrate embeddings from the integrated sketched.assay. - Add
PseudobulkExpressionto normalize the count data present in a given assay. - Add
Read10X_probe_metadatato read the probe metadata from a 10x Genomics probe barcode matrix file in HDF5 format. - Add
RPCAIntegrationto perform Seurat-RPCA Integration. - Add
RunGraphLaplacianto run a graph Laplacian dimensionality reduction. - Add
SelectIntegrationFeatures5to select integration features for v5 assays. - Add
SelectSCTIntegrationFeaturesto select SCT integration features. - Add
SketchDatato use sketching methods to downsample high-dimensional single-cell RNA expression data for help with scalability for large datasets. - Add
TransferSketchLabelsto transfer cell type labels from a sketched dataset to a full dataset based on the similarities in the lower-dimensional space. - Add
UnSketchEmbeddingsto transfer embeddings from sketched cells to the full data. - Add
VSTto apply a variance stabilizing transformation for selection of variable features.
Seurat 4.4.0 (2023-09-27)
CRAN release: 2023-09-28
Added
- Add parallelization support with speed improvements for
PrepSCTFindMarkers - Fix bug in
LoadNanostring(#7566)
Changes
- Fix bug in
as.Seurat.SingleCellExperiment()(#6692) - Support for Visium probe information introduced in Spaceranger 2.1 (#7141)
- Add
LoadCurioSeekerto load sequencing-based spatial datasets generated using the Curio Seeker - Fix fold change calculation for assays (#7095)
- Fix
pt.sizebug when rasterization is set to true (#7379) - Fix
FoldChangeandFindMarkersto support all normalization approaches (#7115,#7110,#7095,#6976,#6654,#6701,#6773, #7107) - Fix for handling newer ParseBio formats in
ReadParseBio(#7565) - Fix for handling rasterization by default (#7842)
- Fix bug in
ReadMtx()to add back missing parameters - Fix
SCTransform()for V5 assays to retain gene attributes (#7557) - Fix
LeverageScore()for objects with few features (#7650
Seurat 4.3.0 (2022-11-18)
CRAN release: 2022-11-18
Changes
- Fix bug in
FindMarkers()when run post Integration/Transfer (#6856)
Seurat 4.2.1 (2022-11-08)
CRAN release: 2022-11-07
Changes
- Replaced import from
spatstat.corewithspatstat.explore - Fix bug in
FindMarkers()when usingSCTassay (#6856)
Seurat 4.2.0 (2022-09-21)
CRAN release: 2022-09-21
Changes
- Fix legend color in
DoHeatmap()(#5783) - Fix bug in
ScaleData()when regressing out one gene (#5970) - Fix name pulling in
PlotPerturbScore()(#6081) - Support spaceranger 2.0 (#6208)
- Fix bug in
SpatialDimPlot()when usinggroup.by(#6179) - Add
add.noiseparameter inVlnPlot()(#5756) - Fix uwot model backwards compatibility (#6345)
- Allow
pseudocount.usein differential expression functions to be set at theAssaylevel
Seurat 4.1.1 (2022-05-01)
CRAN release: 2022-05-02
Changes
- Fix
giveCsparserelated warnings inRead10X_h5 - Fix ident labeling for
SpatialPlot(#5774) - Fix
ReadMtxon Windows (#5687) - Fix
VlnPlotto switch on rasterization only when required (#5846) - Fix
ncolbehavior inSpatialPlot(#5774) - Set
jitterto FALSE inFeatureScatter(#5876) - Update
Cellsmethods to new signature (x, ...) - Replace use of
default.stringsAsFactors()withgetOption("stringsAsFactors")
Seurat 4.1.0 (2022-01-14)
CRAN release: 2022-01-14
Added
- Add
raster.dpiparameter toDimPlot/FeaturePlotto optionally rasterize individual points (#5392) - Add support for sctransform v2, differential expression with SCT assay
Changes
- Update
ReadParseBioto support split-pipe 0.9.6p (#5446) - Fixes for MAST differential expression (#5441)
- Fix scaling options when using
split.byinFeaturePlot()(#5243)
Seurat 4.0.6 (2021-12-16)
CRAN release: 2021-12-16
Changes
- Add
rasterparameter toVlnPlotto optionally rasterize individual points (#5076) - Add
min.cells.groupparameter toFindConservedMarkers(#5079) - Set
do.centerto FALSE forlsiprojectinFindTransferAnchors - Fix error message in
ReadMtx()(#5158) - Add
label.colorparameter toFeaturePlot(#5314) - Fix issues in
ProjectUMAP(#5257, #5104, #5373)
Seurat 4.0.4 (2021-08-19)
CRAN release: 2021-08-20
Added
- Add
reductionparameter toBuildClusterTree()(#4598) - Add DensMAP option to
RunUMAP()(#4630) - Add
imageparameter toLoad10X_Spatial()andimage.nameparameter toRead10X_Image()(#4641) - Add
ReadSTARsolo()function to read output from STARsolo - Add
densifyparameter toFindMarkers() - Add
ReadParsebio()function to read output from Parse Biosciences - Add the
image.alphaparameter toSpatialDimPlot()andSpatialFeaturePlot() - Add support for the correlation metric in
RunUMAP(#4972)
Changes
- Warn and continue rather than erroring if not all features are available in
FindSpatiallyVariableFeatures()(#4611) - Bug fix for SCT-based integration in selecting proper reference model (#4355)
- Bug fix for reading from absolute paths in ReadMtx (#4723)
- Bug fix in SingleCellExperiment conversion (#4633)
- Bug fix in
FindVariableFeatures()when usingselection.method = "mvp"andbinning.method = "equal_frequency"(#4712) - Bug fix in
DoHeatmap()to remove random characters from plot legend(#4660) - Fix cell renaming in
RunCCA() - Fix issue in SingleCellExperiment conversion where the mainExp would not be set properly
- Fix for default dispersion info displayed in
VariableFeaturePlot()
Seurat 4.0.3 (2021-06-10)
CRAN release: 2021-06-10
Added
- Add
jitterparameter toFeatureScatter()
Changes
- Fix issues with
as.SingleCellExperiment.Seurat()for the latest verion of SingleCellExperiment (#4532) - Ensure proper reference.reduction is used in
MapQuery() - Fix to
UpdateSymbolList(), no longer searches aliases and exposes thesearch.typesparameter inGeneSymbolThesarus()(#4545) - Transfer
scale.dataslot as well when converting withas.SingleCellExperiment.Seurat() - Enable
alphaparameter forSpatialDimPlot() - Fix
as.SingleCellExperiment.Seurat()conversion for atypicalreducedDimcomponents
Seurat 4.0.2 (2020-05-20)
CRAN release: 2021-05-20
Added
- New
AddAzimuthScores()andAddAzimuthResults()functions - Add
shuffleparameter toFeatureScatter()(#4280) - Add
lsiprojectandrpcaoptions forFindTransferAnchors() - Add
rlsioption forFindIntegrationAnchors()
## Changes
- Preserve feature metadata when converting from
SingleCellExperimenttoSeuratObjectclass (#4205) - Preserve multiple assays when converting from
SingleCellExperimenttoSeuratObjectclass (#3764) - Fix passing of
score.threshparameter inScoreJackStraw()(#4268) - Fix FC calculation in
FindMarkers()non-log transformed data. - Add umap-learn version >= 0.5.0 compatibility for
RunUMAP() - Fix
DotPlotto uselog1pwhenscale=False(#4298) - Fix split and shuffled
DimPlot - Disallow NULL or another length 0 vector for
ident.1inFindMarkers() - Fix range shift when labeling clusters on a GeomSpatial plot
- Fix SpatialPlot distortion for non-square images.
- Fix future-related warnings in
FindIntegrationAnchors() - Fix
fc.nameparameter inFindMarkers()(#4474) - Deprecate
group.byparameter inPlotPerturbScore()in favor ofmixscape.class.
Seurat 4.0.1 (2020-03-17)
CRAN release: 2021-03-18
Added
- Add direction option to
PlotClusterTree() - Add
colsparameter toJackStrawPlot() - Add
ReadMtx()to read local and remote mtx files with associated cell and feature name files
Changes
- Equality added to differential expression thresholds in
FindMarkers(e.g, >= logfc.threshold rather than >) -
Read10X()now prepends dataset number for first dataset when reading multiple datasets - Bug fix for
subset.AnchorSet() - Bug fix for fold change values in
FindMarkers()when setting a different pseudocount (#4111) - Bug fix for
RunLDA()related to proper passing of assay parameter. - When using
order=TRUEinSingleDimPlot(), print NA points under all others. - Remove default parameter value for
data.dirinRead10X() - Import spatstat fxns from subpackages (spatstat.core, spatstat.geom)
-
RunUMAPnow checks for graph/neighbor consistency
Seurat 4.0.0 (2020-01-27)
CRAN release: 2021-01-29
Added
- Expose
FoldChange()component inFindMarkers(). - Add the
merge.DimReducmethod - Add
IntegrateEmbeddings()to correct embeddings ofDimReducs - Add
ProjectUMAP()to project query cells into a reference UMAP space - Add
MapQuery()as a wrapper aroundIntegrateData(),IntegrateEmbeddings(), andProjectUMAP() - Add
MappingScoreto compute a per-cell mapping score used in Azimuth - Add
AggregateExpression()for summation based pseudobulk calculations - Add mixscape functionality via
CalcPerturbSig(),PrepLDA(),RunLDA(),DEenrichRPlot(),MixscapeHeatmap(),MixscapeLDA(),PlotPerturbScore(),RunMixscape() - Add
FindSubCluster()to further cluster existing clusters - Add supervised PCA functionality via
RunSPCA() - Add functionality to enable weighted nearest neighbor analyses via
FindMultiModalNeighbors() - Add neighbor visualization plot via
NNPlot(). - Add
PredictAssay()to impute expression or embeddings from nearest neighbors - Add
Graphs()function to access the names of the stored Graph objects or pull a specific one - Add checks for NA, NaN, logical, non-integer, and infinite values during CreateAssayObject and NormalizeData.default
- Add
AnnotateAnchors()to aid in AnchorSet interpretation as well assubset.AnchorSet() - Add flexibility of choice for cell column in
Read10X() - Add rasterization option to
FeatureScatter()andVariableFeaturePlot() - Add step1 feature parameters in the SCTModel via
PrepVSTResults()
Changes
- Default neighbor finding algorithm changed from “rann” to “annoy”
- Default
ncellsparameter inSCTransform()changed to 5000 - Default fold change in
FindMarkers()changed from ln to log2 - Implementation improvements to
AverageExpression() -
AnchorSetclass re-implemented as a virtual class from whichIntegrationAnchorSetandTransferAnchorSetnow inherit. - Point size in
VlnPlot()now set automatically if not specified - Return the sample.tree properly when integrating with a single reference dataset
- Replace
as.character.quosureusage withas_labeldue to deprecation - Minor changes to the exact calculation of the anchor weight matrix
- Default rasterization limit in
DimPlot()andFeaturePlot()changed from 50,000 to 100,000 -
SCTransform()now returns a formalizedAssaysubclassSCTAssay() - When using
normalization.method='SCT'inFindTransferAnchors(), normalize query using reference SCT model when possible. - Change default Neighbor name in
FindNeighborstoAssay.nn
Removed
-
CreateGeneActivityMatrixreplaced bySignac::GeneActivity() -
RunLSIreplaced by bySignac::RunTFIDF()andSignac::RunSVD() -
ReadAlevinandReadAlevinCsvmoved to SeuratWrappers -
ExportToCellbrowserandStopCellbrowsermoved to SeuratWrappers
Seurat 3.2.3 - 2020-12-14
CRAN release: 2020-12-15
Added
- Titles added to
DimPlotwhen specifyinggroup.byparameter -
keep.scaleparameter added toFeaturePlotto control scaling across multiple features and/or splits.
Changes
-
Samedeprecated in favor ofbase::identity - Fix in
DietSeuratto work with specializedAssayobjects - Fix p-value return when using the
apeimplementation of Moran’s I - Fix bug in FindMarkers when using MAST with a latent variable
- Updates to
Key<-.DimReducthat allow handling of empty reduction column names - Allow setting
ctrlinCellCycleScoring - Modify subset.Seurat to allow specialized Assay subsetting methods
- Fix image selection in interactive spatial plots
- Update Rcpp functions with
export(rng=FALSE)to avoid potential future warnings - Fix RenameCells bug for integrated SCT assays
- Fix highlight order with proper factor levels when using
SetHighlightin plots - Small change in CellRanger version detection logic of h5 file to improve robustness to outside tools.
-
do.cppdeprecated and will default to true
Seurat 3.2.2 (2020-09-25)
CRAN release: 2020-09-26
Changes
- Set the seed in
WhichCellsregardless of whether or notidentsis passed - Retain Graph and Neighbor objects when subsetting only on features
- Fix data.frame input to
CreateAssayObject()when data.frame has no rownames. - Default annoy search to sequential if not using multicore future plans.
- Require sctransform >= 0.3.0
Seurat 3.2.1 (2020-09-04)
CRAN release: 2020-09-07
Added
- Added support for nearest neighbor input and
return.modelparameter inRunUMAP() - Enable named color vectors in
DoHeatmap() - Add
label.colorandlabel.boxparameters toDimPlot - Added
shuffleandseedparameters toDimPlot()to help with overplotting - Added new stacked violin plot functionality
Changes
- Allow setting
slotparameter inRunUMAP - Added support for FIt-SNE v1.2+
- Fix for
Spatial*Plotwhen running with interactive=TRUE - Set max for number of items returned by
Topand remove duplicate items when balanced=TRUE - Fix logging bug when functions were run via
do.call() - Fix handling of weight.by.var parameter when approx=FALSE in
RunPCA() - Fix issue where feature names with dashes crashed
CellSelector - Fix issue where errors in subsetting were being swallowed
- Fix issue where labeling uncropped spatial plots was broken
Deprecated
-
CreateActivityMatrixdeprecated in favor ofSignac::GeneActivity -
ReadAlevinandReadAlevinCsvdeprecated in favor ofSeuratWrappers::ReadAlevin -
ExportToCellbrowserandStopCellbrowserdeprecated in favor ofSeuratWrappers::ExportToCellbrowserandSeuratWrappers::StopCellbrowser -
ReadH5ADandWriteH5ADdeprecated in favor of h5Seurat/H5AD functionality found in SeuratDisk -
as.loomandas.Seurat.loomdeprecated in favor of functionality found in SeuratDisk
Seurat 3.2.0 (2020-07-15)
CRAN release: 2020-07-16
Added
- Added ability to create a Seurat object from an existing Assay object, or any object inheriting from the Assay class
- Added ability to cluster idents and group features in
DotPlot - Added ability to use RColorBrewer plaettes for split
DotPlots - Added visualization and analysis functionality for spatially resolved datasets (Visium, Slide-seq).
Changes
- Removed
add.iterparameter fromRunTSNEfunction - Fixed integer overflow error in the WilcoxDETest function
- Minor visual fixes in
DoHeatmapgroup bar + labels - Efficiency improvements in anchor scoring (
ScoreAnchors) - Fix bug in
FindClusters()when the last node has no edges - Default to weighted = TRUE when constructing igraph objects in
RunLeiden. Remove corresponding weights parameter fromFindClusters(). - Fix handling of keys in
FeatureScatter() - Change
CellSelectorto use Shiny gadgets instead of SDMTools - Mark
PointLocatoras defunct - Remove
SDMTools - Fixed data slot return in
AverageExpressionwhen subsetting features and returning a Seurat object
Seurat 3.1.5 (2020-04-14)
CRAN release: 2020-04-16
Added
- New
scaleparameter inDotPlot - New
keep.sparse parameter inCreateGeneActivityMatrix` for a more memory efficient option - Added ability to store model learned by UMAP and project new data
- New
strip.suffixoption inRead10X. This changes the default behavior ofRead10X. A trailing-1present in all cell names will not be removed by default. - Added
group.byparameter toFeatureScatter
Changes
- Replace wilcox.test with limma implementation for a faster FindMarkers default method
- Better point separation for
VlnPlots when using thesplit.byoption - Efficiency improvements for anchor pairing
- Deprecate redundant
sort.cellparameter inFeaturePlot - Fixes to ensure correct class of Matrix passed to c++ functions
- Fixes for underscores in ident labels for
DotPlot - Ensure preservation of matrix dimnames in
SampleUMI - Fix non-standard evaluation problems in
subsetandWhichCells - Default split violin option is now a multi group option
- Preserve alpha in
FeaturePlotwhen usingblend - Update
assay.usedslot forDimReducs when Assay is renamed
Seurat 3.1.3 (2020-02-07)
CRAN release: 2020-02-11
Changes
- Export
CellsByIdentitiesandRowMergeSparseMatricesfunctions - nCount and nFeature metadata variables retained after subset and updated properly with
UpdateSeuratObject - Fix uwot support for running directly on feature matrices
- Fixes for keys with underscores
- Fix issue with leiden option for
FindClusters - Fix for data transfer when using sctransform
- SDMTools moved to Suggests as package is orphaned
Seurat 3.1.2 (2019-12-11)
CRAN release: 2019-12-12
Seurat 3.1.1 (2019-09-20)
CRAN release: 2019-10-03
Added
- New
RegroupIdentsfunction to reassign idents based on metadata column majority -
UpdateSymbolListfunction to pull new gene names from HGNC - Added support for H5AD layers as additional assays in a
Seuratobject
Changed
- Fix rownames issue when running UMAP on dist object
- Add support for new H5AD
obsmandvarmstucture - Fix issue when trying to read non-existent feature-level metadata from an H5AD file
- Fix in integration workflow when using SCTransform
- Improved error checking for
AddModuleScore - cbind fix in reference-based integration (
MapQuery) - Fix for convenience plots error hanging
- Ensure Seurat objects aren’t stored in the command logs
Seurat 3.1.0 (2019-08-20)
CRAN release: 2019-08-20
Added
- New
PrepSCTIntegrationfunction to facilitate integration afterSCTransform - Reference-based integration with the
referenceparameter inFindIntegrationAnchors - Reciprocal PCA as a
reductionoption inFindIntegrationAnchors - New
CollapseEmbeddingOutliersfunction - Enable
FindTransferAnchorsafterSCTransform - Added back
ColorDimSplitfunctionality - Include a code of conduct
- Added uwot support as new default UMAP method
- Added
CheckDotsto catch unused parameters and suggest updated names -
ReductionsandAssaysassays functions to list stored DimReducs and Assays
Changed
- Fix regex in
LogSeuratCommand - Check for NAs in feature names in
Read10X - Prevent dimnames for counts/data/scale.data matrices from being arrays
- Updates
ReadH5ADto distinguish FVF methods - Fixes to UpdateSeuratObject for v2 objects
- Sink all output from stdout to stderr
- Fix to scale.data cell ordering after subsetting
- Enable
Assayspecification inBuildClusterTree - Fix
FeaturePlotwhen using bothblendandsplit.by - Fix to
WhichCellswhen passingcellsandinvert - Fix to
HoverLocatorlabels and title - Ensure features names don’t contain pipes (
|) - Deprecation of
RunLSIandRunALRA - Fix legend bug when sorting in
ExIPlot
Seurat 3.0.2 (2019-06-07)
CRAN release: 2019-06-14
Added
- Flag to skip singleton grouping in
FindClusters - New custom colors for blended
FeaturePlots - New
GetResidualfunction - New Seurat/Monocle converters
Changed
- Fix issue where certain assays weren’t being shown in the
Seuratobject - Fix issue where we weren’t updating
DimReducobject column names - Fix line spacers in
DoHeatmap - Fix uninformative labels in
FeaturePlot - Fix unset identities when converting from SCE to Seurat
- Fix single colors being interpreted as palettes in
SingleDimPlot - Ensure factor levels are always numerically increasing after
FindClusters - Better cell highlighting colors for
DimPlot - Fix to
levels<-.Seurat - Add ability to use counts/scaled data in
BuildClusterTree - Minor fix to split
ScaleData
Seurat 3.0.1 (2019-05-16)
CRAN release: 2019-05-16
Changed
- Fix to color options for VlnPlot with split.by option (#1425)
- Improvements to conversion functions (loom, SCE)
- Fix for cluster tree reordering (#1434)
- Fix PercentageFeatureSet for single feature case
- Fix to fold change calculation and filtering for other slots in FindMarkers (#1454)
- Keep title vectorized in AugmentPlot (#1515)
- Export LogSeuratCommand function
- Fix for FindConservedMarkers when one ident is missing from a group (#1517)
Seurat 3.0.0 (2019-04-16)
CRAN release: 2019-04-15
Added
- New method for identifying anchors across single-cell datasets
- Parallelization support via future
- Additional method for demultiplexing with MULTIseqDemux
- Support normalization via sctransform
- New option for clustering with the Leiden algorithm
- Support for reading 10X v3 files
- New function to export Seurat objects for the UCSC cell browser
- Support for data import from Alevin outputs
- Imputation of dropped out values via ALRA
Seurat 2.3.3 (2018-07-02)
CRAN release: 2018-07-02
Seurat 2.3.1 (2018-05-03)
CRAN release: 2018-05-05
Added
- Support for UMAP dimensional reduction technique
- New conversion functions for SingleCellExperiment and anndata
Seurat 2.3.0 (2018-03-22)
CRAN release: 2018-03-23
Seurat 2.2.0 (2018-01-10)
CRAN release: 2018-01-10
Added
- Multiple alignment functionality with RunMultiCCA and AlignSubspace extended to multiple datasets
- CalcAlignmentScore added to evaluate alignment quality
- MetageneBicorPlot added to guide CC selection
- Change cluster order in DoHeatmap with group.order parameter
- Ability to change plotting order and add a title to DimPlot
- do.clean and subset.raw options for SubsetData
Seurat 2.1.0 (2017-10-12)
CRAN release: 2017-10-12
Added
- Support for using MAST and DESeq2 packages for differential expression testing in FindMarkers
- Support for multi-modal single-cell data via @assay slot