Seurat 5.3.1
Changes
Additions
- Added option to use 
cluster_leiden from
igraph when running Leiden clustering (#9931) 
- Added option to use 
umap2 from uwot when
running UMAP (#9918) 
- Added option to use 
approx_pow parameter from
uwot when running UMAP (#9449) 
- Updated 
LoadXenium to add support for Xenium protein
data (#10024) 
- Added option to specify stroke size in 
FeaturePlot (#10053) 
- Added 
label.size.cutoff parameter to
DimPlot to allow users to label only clusters above a
certain size (#10092) 
Fixes
- Fixed deprecated calls to Seurat functions 
GetAssayData
and PackageCheck (#9924), (#10102) 
- Fixed errors in 
RunAzimuth relating to
FindTransferAnchors (#9924) 
- Fixed errors in 
LeverageScore relating to handling of
(variable) features (#9924) 
- Updated 
PseudobulkExpression to acccount for the case
that a category passed to group.by has only one value (#10092) 
- Updated 
VlnPlot to use assay passed to the function if
specified (#10092) 
- Updated 
FeatureScatter to allow gene names with
parentheses to be plotted (#10092) 
- Updated 
SingleRasterMap to store object metadata
correctly (#10092) 
- Updated 
FindClusters to order cluster factor levels
correctly when assigning a custom cluster name (#10092) 
- Updated 
FindConservedMarkers to remove NA values (#9917) 
- Updated visualization functions to avoid ggplot2
guides, aes_string, and
facet_grid deprecation warnings (#9409, #10116) 
- Fixed 
DimPlot bug where metadata columns named ‘PC_1’,
‘UMAP_1’ etc override reduction embeddings (#10062) 
Seurat 5.3.0 (2025-04-23)
Changes
- Fixed 
PseudobulkExpression to forward relevant
arguments to NormalizeData (#9840) 
- Fixed bugs in 
FindSpatiallyVariableFeatures; deprecated
the slot parameter in favor of layer (#9836) 
- Extended 
FindTransferAnchors’s reference
argument 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’s query
argument to accept multi-layer inputs; updated MappingScore
to support multi-layer query inputs (#9832) 
- Updated 
LeverageScore.default to convert
BPCells::IterableMatrix inputs with less than 7500 cells
into a sparse matrix before performing the calculation (#9831) 
- Dropped 
VariableFeatures setter from
SketchData (#9830) 
- Extended 
Cells.SCTAssay’s layer argument
accept slot names: "counts", "data",
"scale.data"; enabled compatibility with
SketchData/LeverageScore(#9830) 
- Updated 
SCTransform.StdAssay to simplify and speed up
the method (#9828) 
- Updated 
AddModuleScore to support multi-layer inputs
(#9826) 
- Fixed 
PseudobulkExpression to work with
Seurat inputs containing more than one assay (9824) 
- Added 
RunICA.StdAssay (#9825) 
- Updated 
HarmonyIntegration to call
harmony::RunHarmony in favor of the deprecated
harmony::HarmonyMatrix (#9789) 
- Added 
raster.dpi parameter to VlnPlot (#9665) 
- Fixed 
SpatialDimPlot(..., interactive = TRUE) to
support SlideSeq and STARmap input types;
added ScaleFactors.SlideSeq &
ScaleFactors.STARmap generics (#9691) 
- Fixed 
PercentageFeatureSet so that the
assay parameter is always respected; fixed
PercentageFeatureSet to raise a warning if any
features are absent in the specified assay
instead of throwing an error (#9686) 
- Fixed 
GroupCorrelation and
GroupCorrelationPlot to be compatible with
SeuratObject >= 5.0.0 (#9625) 
Seurat 5.2.1 (2025-01-23)
Changes
- Fixed 
test_find_clusters.R to accommodate variability
in label assignments given by FindClusters across different
systems (#9641) 
Seurat 5.2.0 (2024-12-20)
Changes
- Added 
group.by parameter to
FindAllMarkers, allowing users to regroup their data using
a non-default identity class prior to performing differential expression
(#9550) 
- Added 
image.type parameter to
Read10X_Image enabling VisiumV1 instances to
be populated instead of instances of the default VisiumV2
class (#9556) 
- Fixed 
IntegrateLayers to respect the
dims.to.integrate parameter 
- Added 
stroke.size parameter to DimPlot (#8180) 
- Updated 
RunLeiden to use the leidenbase
package instead of leiden; deprecated the
method parameter for RunLeiden and
FindClusters; updated RunLeiden to reset
random.seed to 1 if the value is 0 or less (#6792) 
- Updated 
RunPCA to use the BPCells-provided
SVD solver on BPCells matrices; updated
JackStraw to support BPCells matrices (#8271) 
- Fixed 
RunPCA to avoid converting BPCells
matrices into dense matrices - significantly reduces the function’s
memory usage when running on BPCells matrices (#8966) 
- Updated 
RunSLSI to support BPCells
matrices 
- Fixed 
DietSeurat so that the layers
parameter is respected (#8197) 
- Updated 
RunUMAP to support umap-learn
version >= 0.5.0 (#9559) 
- Updated 
LoadXenium and ReadXenium to
accommodate the output from XOA v3.0; updated
LoadXenium to provide more fine-grained control over the
datatypes parsed in, including nucleus segmentation masks, segmentation
methods, and other experimental metadata; updated
ReadXenium to load cell_feature_matrix.h5 when present in
favor of the MEX format files; updated ReadXenium to load
.parquet files using arrow instead of .csv.gz files to
support XOA 3.0 (#8604) 
- Fixed 
LoadXenium to accommodate datasets without “Blank
Codeword” or “Unassigned Codeword” matrices(#9135) 
- Fixed 
ReadXenium to properly parse multiple molecular
outputs at once (#8265) 
- Added 
features parameter to LeverageScore
and SketchData 
- Updated 
SketchData’s ncells parameter to
accept integer vector 
Seurat 5.1.0 (2024-05-08)
Changes
- Updated interactive 
SpatialDimPlots to display spatial
coordinates 
- Updated 
BuildClusterTree to
PseudobulkExpression(..., method = "aggregate") instead of
AverageExpression 
- Fixed 
SpatialPlot to properly handle images with shared
cells 
- Added 
cluster.name parameter to
BuildNicheAssay 
- Added 
VisiumV2 class, inherits
SeuratObject::FOV, returned by
Load10X_Spatial 
- Updated 
Load10X_Spatial to support loading Visium HD
datasets - added bin.size parameter 
- Updated 
Read10X_Coordinates to handle new
tissue_coordinates.parquet files 
- Added 
shape parameter to SpatialPlot and
wrappers: SpatialFeaturePlot and
SpatialDimPlot 
- Added 
image.scale parameter to SpatialPlot
and related functions:
SpatialFeaturePlot/ISpatialFeaturePlot and
SpatialDimPlot/ISpatialDimPlot 
- Restored 
image.name parameter to
Read10X_Image 
- Added 
scale parameter to
Radius.VisiumV1 
- Fixed calculation of 
spot.radius attribute for
VisiumV1 instance returned by Read10X_Image —
replace scale.factors$fiducial with
scale.factors$spot 
- Added 
Read10X_Coordinates and
Read10X_ScaleFactors 
- Fixed 
SpatialPlot to properly handle mutli-assay
Seurat instances 
Seurat 5.0.3 (2024-03-18)
Changes
- Fixed 
PercentAbove to discount null values (#8412) 
- Added 
log parameter to FeatureScatter 
- Fixed handling of 
clip.range for
SCTransform when ncells is less than the size
of the passed dataset 
Seurat 5.0.2 (2024-02-28)
Changes
- Fixed 
AverageExpression to handle features
vector when layer="scale.data" and
return.seurat=TRUE 
- Added 
fc.slot parameter to
FindMarkers 
- Fixed 
SCTransform to handle
vars.to.regress (#8148) and
(#8349) 
- Fixed 
SCTransform to handle fetching residuals (#8185) 
Seurat 5.0.1 (2023-11-16)
Changes
- Fixed 
SCTransform.StdAssay to pass extra arguments to
sctransform::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 
PseudobulkExpression by adding ‘g’ to cell
names that started with numeric values 
- Improved 
PseudobulkExpression by adding each variable
specified in group.by as columns in the object metadata
when return.seurat=TRUE 
- Fixed 
DimPlot and FeatureScatter which
were breaking when using the split.by argument with a
variable that contained NAs 
Seurat 5.0.0 (2023-10-25)
Added
- Add 
BridgeCellsRepresentation to construct a dictionary
representation for each unimodal dataset. 
- Add 
BuildNicheAssay to 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 
CalcDispersion to calculate the dispersion of
features. 
- Add 
CCAIntegration to perform Seurat-CCA
Integration. 
- Add 
CountSketch to generate a CountSketch random
matrix. 
- Add 
CreateCategoryMatrix to create a one-hot matrix for
a given label. 
- Add 
DISP to find variable features based on
dispersion. 
- Add 
FastRPCAIntegration as a convenience wrapper
function around the following three functions that are often run
together when performing integration. 
- Add 
FetchResiduals_reference as a temporary function to
get residuals from the reference. 
- Add 
FetchResiduals to call
sctransform::get_residuals. 
- Add 
FetchResidualSCTModel to calculate Pearson
residuals of features not in the scale.data. 
- Add 
FindBridgeAnchor to find bridge anchors between two
unimodal datasets. 
- Add 
FindBridgeIntegrationAnchors to find a set of
anchors for integration between unimodal query and the other unimodal
reference using a pre-computed BridgeReferenceSet. 
- Add 
FindBridgeTransferAnchors to find a set of anchors
for label transfer between unimodal query and the other unimodal
reference using a pre-computed BridgeReferenceSet. 
- Add 
GaussianSketch to perform Gaussian sketching. 
- Add 
HarmonyIntegration to perform Harmony
integration. 
- Add 
IntegrateLayers to integrate layers in an assay
object. 
- Add 
JointPCAIntegration to perform Seurat-Joint PCA
Integration. 
- Add 
LeverageScore to compute the leverage scores for a
given object. 
- Add 
LoadCurioSeeker to load Curio Seeker data. 
- Add 
MVP to find variable features based on
mean.var.plot. 
- Add 
NNtoGraph to convert the Neighbor class to an
asymmetrical Graph class. 
- Add 
PrepareBridgeReference to preprocess the multi-omic
bridge and unimodal reference datasets into an extended reference. 
- Add 
ProjectCellEmbeddings to project query data onto
the reference dimensional reduction. 
- Add 
ProjectData to project high-dimensional single-cell
RNA expression data from a full dataset onto the lower-dimensional
embedding of the sketch of the dataset. 
- Add 
ProjectDimReduc to project query data to reference
dimensional reduction. 
- Add 
ProjectIntegration to integrate embeddings from the
integrated sketched.assay. 
- Add 
PseudobulkExpression to normalize the count data
present in a given assay. 
- Add 
Read10X_probe_metadata to read the probe metadata
from a 10x Genomics probe barcode matrix file in HDF5 format. 
- Add 
RPCAIntegration to perform Seurat-RPCA
Integration. 
- Add 
RunGraphLaplacian to run a graph Laplacian
dimensionality reduction. 
- Add 
SelectIntegrationFeatures5 to select integration
features for v5 assays. 
- Add 
SelectSCTIntegrationFeatures to select SCT
integration features. 
- Add 
SketchData to use sketching methods to downsample
high-dimensional single-cell RNA expression data for help with
scalability for large datasets. 
- Add 
TransferSketchLabels to transfer cell type labels
from a sketched dataset to a full dataset based on the similarities in
the lower-dimensional space. 
- Add 
UnSketchEmbeddings to transfer embeddings from
sketched cells to the full data. 
- Add 
VST to apply a variance stabilizing transformation
for selection of variable features. 
Changes
- Change 
FindTransferAnchors so that anchor filtering is
not performed by default 
- Change 
merge so that layers will be added to a single
Seurat object instead of combining raw count matrices 
- Deprecate 
slot parameter in favor of
layers in accessor and set methods 
Seurat 4.4.0 (2023-09-27)
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 
LoadCurioSeeker to load sequencing-based spatial
datasets generated using the Curio Seeker 
- Fix fold change calculation for assays (#7095)
 
- Fix 
pt.size bug when rasterization is set to true (#7379) 
- Fix 
FoldChange and FindMarkers to 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)
Added
- Add support for imaging-based spatial datasets
 
Changes
- Fix bug in 
FindMarkers() when run post
Integration/Transfer (#6856) 
Seurat 4.2.1 (2022-11-08)
Changes
- Replaced import from 
spatstat.core with
spatstat.explore 
- Fix bug in 
FindMarkers() when using SCT
assay (#6856) 
Seurat 4.2.0 (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 using
group.by (#6179) 
- Add 
add.noise parameter in VlnPlot() (#5756) 
- Fix uwot model backwards compatibility (#6345)
 
- Allow 
pseudocount.use in differential expression
functions to be set at the Assay level 
Seurat 4.1.1 (2022-05-01)
Changes
- Fix 
giveCsparse related warnings in
Read10X_h5 
- Fix ident labeling for 
SpatialPlot (#5774) 
- Fix 
ReadMtx on Windows (#5687) 
- Fix 
VlnPlot to switch on rasterization only when
required (#5846) 
- Fix 
ncol behavior in SpatialPlot (#5774) 
- Set 
jitter to FALSE in FeatureScatter (#5876) 
- Update 
Cells methods to new signature
(x, ...) 
- Replace use of 
default.stringsAsFactors() with
getOption("stringsAsFactors") 
Seurat 4.1.0 (2022-01-14)
Added
- Add 
raster.dpi parameter to
DimPlot/FeaturePlot to optionally rasterize individual
points (#5392) 
- Add support for sctransform v2, differential expression with SCT
assay
 
Changes
- Update 
ReadParseBio to support split-pipe 0.9.6p (#5446) 
- Fixes for MAST differential expression (#5441)
 
- Fix scaling options when using 
split.by in
FeaturePlot() (#5243) 
Seurat 4.0.6 (2021-12-16)
Added
Changes
- Add 
raster parameter to VlnPlot to
optionally rasterize individual points (#5076) 
- Add 
min.cells.group parameter to
FindConservedMarkers (#5079) 
- Set 
do.center to FALSE for lsiproject in
FindTransferAnchors 
- Fix error message in 
ReadMtx() (#5158) 
- Add 
label.color parameter to FeaturePlot
(#5314) 
- Fix issues in 
ProjectUMAP (#5257, #5104, #5373) 
Seurat 4.0.5 (2021-10-04)
Changes
- Update documentation for 
to.upper parameter in
Load10X_Spatial() (#4576) 
- Update concept tags for 
RunSPCA() (#4978) 
- Conditionally run tests/packages that use suggested packages (#5160)
 
- Set random state in 
RunUMAP() when using the
umap-learn method (#5194) 
Seurat 4.0.4 (2021-08-19)
Added
- Add 
reduction parameter to
BuildClusterTree() (#4598) 
- Add DensMAP option to 
RunUMAP() (#4630) 
- Add 
image parameter to Load10X_Spatial()
and image.name parameter to Read10X_Image()
(#4641) 
- Add 
ReadSTARsolo() function to read output from
STARsolo 
- Add 
densify parameter to
FindMarkers() 
- Add 
ReadParsebio() function to read output from Parse
Biosciences 
- Add the 
image.alpha parameter to
SpatialDimPlot() and SpatialFeaturePlot() 
- 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 using
selection.method = "mvp" and
binning.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)
Added
- Add 
jitter parameter to
FeatureScatter() 
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 the search.types parameter in
GeneSymbolThesarus() (#4545) 
- Transfer 
scale.data slot as well when converting with
as.SingleCellExperiment.Seurat() 
- Enable 
alpha parameter for
SpatialDimPlot() 
- Fix 
as.SingleCellExperiment.Seurat() conversion for
atypical reducedDim components 
Seurat 4.0.2 (2020-05-20)
Added
- New 
AddAzimuthScores() and
AddAzimuthResults() functions 
- Add 
shuffle parameter to FeatureScatter()
(#4280) 
- Add 
lsiproject and rpca options for
FindTransferAnchors() 
- Add 
rlsi option for
FindIntegrationAnchors() 
## Changes
- Preserve feature metadata when converting from
SingleCellExperiment to SeuratObject class (#4205) 
- Preserve multiple assays when converting from
SingleCellExperiment to SeuratObject class (#3764) 
- Fix passing of 
score.thresh parameter in
ScoreJackStraw() (#4268) 
- Fix FC calculation in 
FindMarkers() non-log transformed
data. 
- Add umap-learn version >= 0.5.0 compatibility for
RunUMAP() 
- Fix 
DotPlot to use log1p when
scale=False (#4298) 
- Fix split and shuffled 
DimPlot 
- Disallow NULL or another length 0 vector for 
ident.1 in
FindMarkers() 
- 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.name parameter in FindMarkers() (#4474) 
- Deprecate 
group.by parameter in
PlotPerturbScore() in favor of
mixscape.class. 
Seurat 4.0.1 (2020-03-17)
Added
- Add direction option to 
PlotClusterTree() 
- Add 
cols parameter to JackStrawPlot() 
- 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=TRUE in SingleDimPlot(),
print NA points under all others. 
- Remove default parameter value for 
data.dir in
Read10X() 
- Import spatstat fxns from subpackages (spatstat.core,
spatstat.geom)
 
RunUMAP now checks for graph/neighbor consistency 
Seurat 4.0.0 (2020-01-27)
Added
- Expose 
FoldChange() component in
FindMarkers(). 
- Add the 
merge.DimReduc method 
- Add 
IntegrateEmbeddings() to correct embeddings of
DimReducs 
- Add 
ProjectUMAP() to project query cells into a
reference UMAP space 
- Add 
MapQuery() as a wrapper around
IntegrateData(), IntegrateEmbeddings(), and
ProjectUMAP() 
- Add 
MappingScore to 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 as subset.AnchorSet() 
- Add flexibility of choice for cell column in
Read10X() 
- Add rasterization option to 
FeatureScatter() and
VariableFeaturePlot() 
- Add step1 feature parameters in the SCTModel via
PrepVSTResults() 
Changes
- Default neighbor finding algorithm changed from “rann” to
“annoy”
 
- Default 
ncells parameter in SCTransform()
changed to 5000 
- Default fold change in 
FindMarkers() changed from ln to
log2 
- Implementation improvements to 
AverageExpression() 
AnchorSet class re-implemented as a virtual class from
which IntegrationAnchorSet and
TransferAnchorSet now 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.quosure usage with
as_label due to deprecation 
- Minor changes to the exact calculation of the anchor weight
matrix
 
- Default rasterization limit in 
DimPlot() and
FeaturePlot() changed from 50,000 to 100,000 
SCTransform() now returns a formalized
Assay subclass SCTAssay() 
- When using 
normalization.method='SCT' in
FindTransferAnchors(), normalize query using reference SCT
model when possible. 
- Change default Neighbor name in 
FindNeighbors to
Assay.nn 
Removed
CreateGeneActivityMatrix replaced by
Signac::GeneActivity() 
RunLSI replaced by by Signac::RunTFIDF()
and Signac::RunSVD() 
ReadAlevin and ReadAlevinCsv moved to
SeuratWrappers 
ExportToCellbrowser and StopCellbrowser
moved to SeuratWrappers 
Seurat 3.2.3 - 2020-12-14
Added
- Titles added to 
DimPlot when specifying
group.by parameter 
keep.scale parameter added to FeaturePlot
to control scaling across multiple features and/or splits. 
Changes
Same deprecated in favor of
base::identity 
- Fix in 
DietSeurat to work with specialized
Assay objects 
- Fix p-value return when using the 
ape implementation of
Moran’s I 
- Fix bug in FindMarkers when using MAST with a latent variable
 
- Updates to 
Key<-.DimReduc that allow handling of
empty reduction column names 
- Allow setting 
ctrl in
CellCycleScoring 
- 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
SetHighlight in plots 
- Small change in CellRanger version detection logic of h5 file to
improve robustness to outside tools.
 
do.cpp deprecated and will default to true 
Seurat 3.2.2 (2020-09-25)
Changes
- Set the seed in 
WhichCells regardless of whether or not
idents is 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)
Added
- Added support for nearest neighbor input and
return.model parameter in RunUMAP() 
- Enable named color vectors in 
DoHeatmap() 
- Add 
label.color and label.box parameters
to DimPlot 
- Added 
shuffle and seed parameters to
DimPlot() to help with overplotting 
- Added new stacked violin plot functionality
 
Changes
- Allow setting 
slot parameter in
RunUMAP 
- Added support for FIt-SNE v1.2+
 
- Fix for 
Spatial*Plot when running with
interactive=TRUE 
- Set max for number of items returned by 
Top and 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
CreateActivityMatrix deprecated in favor of
Signac::GeneActivity 
ReadAlevin and ReadAlevinCsv deprecated in
favor of SeuratWrappers::ReadAlevin 
ExportToCellbrowser and StopCellbrowser
deprecated in favor of SeuratWrappers::ExportToCellbrowser
and SeuratWrappers::StopCellbrowser 
ReadH5AD and WriteH5AD deprecated in favor
of h5Seurat/H5AD functionality found in SeuratDisk 
as.loom and as.Seurat.loom deprecated in
favor of functionality found in SeuratDisk 
Seurat 3.2.0 (2020-07-15)
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.iter parameter from RunTSNE
function 
- Fixed integer overflow error in the WilcoxDETest function
 
- Minor visual fixes in 
DoHeatmap group 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 from
FindClusters(). 
- Fix handling of keys in 
FeatureScatter() 
- Change 
CellSelector to use Shiny gadgets instead of
SDMTools 
- Mark 
PointLocator as defunct 
- Remove 
SDMTools 
- Fixed data slot return in 
AverageExpression when
subsetting features and returning a Seurat object 
Seurat 3.1.5 (2020-04-14)
Added
- New 
scale parameter in DotPlot 
- 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.suffix option in Read10X.
This changes the default behavior of
Read10X. A trailing -1 present in all
cell names will not be removed by default. 
- Added 
group.by parameter to
FeatureScatter 
Changes
- Replace wilcox.test with limma implementation for a faster
FindMarkers default method
 
- Better point separation for 
VlnPlots when using the
split.by option 
- Efficiency improvements for anchor pairing
 
- Deprecate redundant 
sort.cell parameter in
FeaturePlot 
- 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 
subset and
WhichCells 
- Default split violin option is now a multi group option
 
- Preserve alpha in 
FeaturePlot when using
blend 
- Update 
assay.used slot for DimReducs when
Assay is renamed 
Seurat 3.1.4 (2020-02-20)
Changes
- Fixes to 
DoHeatmap to remain compatible with ggplot2
v3.3 
- Adoption of 
patchwork framework to replace
CombinePlots 
Seurat 3.1.3 (2020-02-07)
Added
- New system agnostic 
Which function to address problems
with FItSNE on Windows 
Changes
- Export 
CellsByIdentities and
RowMergeSparseMatrices functions 
- 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)
Added
- New silent slot updater
 
- New random seed options to 
RunCCA,
RunTSNE, WhichCells, HTODemux,
AddModuleScore, VlnPlot, and
RidgePlot 
- Enhancements for dealing with 
Assay-derived
objects 
Changed
- Only run 
CalcN (generates nFeatures and nCounts) when
counts changes 
- Fix issue regarding colons in feature names
 
- Change object class testing to use 
inherits or
is.* for R 4.0 compatability 
Seurat 3.1.1 (2019-09-20)
Added
- New 
RegroupIdents function to reassign idents based on
metadata column majority 
UpdateSymbolList function to pull new gene names from
HGNC 
- Added support for H5AD layers as additional assays in a
Seurat object 
Changed
- Fix rownames issue when running UMAP on dist object
 
- Add support for new H5AD 
obsm and varm
stucture 
- 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)
Added
- New 
PrepSCTIntegration function to facilitate
integration after SCTransform 
- Reference-based integration with the 
reference
parameter in FindIntegrationAnchors 
- Reciprocal PCA as a 
reduction option in
FindIntegrationAnchors 
- New 
CollapseEmbeddingOutliers function 
- Enable 
FindTransferAnchors after
SCTransform 
- Added back 
ColorDimSplit functionality 
- Include a code of conduct
 
- Added uwot support as new default UMAP method
 
- Added 
CheckDots to catch unused parameters and suggest
updated names 
Reductions and Assays assays 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 
ReadH5AD to 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 
Assay specification in
BuildClusterTree 
- Fix 
FeaturePlot when using both blend and
split.by 
- Fix to 
WhichCells when passing cells and
invert 
- Fix to 
HoverLocator labels and title 
- Ensure features names don’t contain pipes (
|) 
- Deprecation of 
RunLSI and RunALRA 
- Fix legend bug when sorting in 
ExIPlot 
Seurat 3.0.2 (2019-06-07)
Added
- Flag to skip singleton grouping in 
FindClusters 
- New custom colors for blended 
FeaturePlots 
- New 
GetResidual function 
- New Seurat/Monocle converters
 
Changed
- Fix issue where certain assays weren’t being shown in the
Seurat object 
- Fix issue where we weren’t updating 
DimReduc object
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)
Added
- Add global option (Seurat.memsafe) to skip gc() calls
 
- Restore draw.lines to DoHeatmap, maintain size of color bar with
different number of features (#1429)
 
- Enable split.by parameter for ScaleData
 
- Add slot parameter to FeaturePlot (#1483)
 
- Add assay parameter to DotPlot (#1404)
 
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)
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
 
Changed
- Significant code restructuring
 
- Most occurances of “gene(s)” in function names/arguments renamed to
“feature(s)”
 
- Changes to the Seurat object class to facilitate multimodal
data
 
- New BlendPlot implementation
 
Seurat 2.3.4 (2018-07-13)
Added
- GetIdent function added to pull identity info
 
Changed
- DiffusionMap dependency replaced with destiny to avoid archival
 
- Java dependency removed and functionality rewritten in Rcpp
 
- Speed and efficiency improvements for Rcpp code
 
- More robust duplicate handling in CellCycleScoring
 
Seurat 2.3.3 (2018-07-02)
Added
- New HTOHeatmap function
 
- Support for custom PNG arguments for vector-friendly plotting
 
- Fix for ‘NA’-labeled cells disappearing with custom color scale
 
Changed
- Replaced FNN with RANN
 
- Removed unused compiler flags
 
- Moved several lightly-used packages from ‘imports’ to
‘suggests’
 
Seurat 2.3.2 (2018-06-11)
Added
- RenameCells added for easy renaming of all cells
 
- Read10X_h5 added to read in 10X formatted h5 files
 
- SetAssayData ensures cell order is the same between assay objects
and the Seurat object
 
- Compatability updates for ggplot2 v2.3.0
 
Seurat 2.3.1 (2018-05-03)
Added
- Support for UMAP
dimensional reduction technique
 
- New conversion functions for SingleCellExperiment and anndata
 
Changed
- FetchData preserves cell order
 
- Require Matrix 1.2-14 or higher
 
- AddModuleScore no longer densifies sparse-matrices
 
- Various visualization fixes and improvements
 
- Default value for latent.vars in FindMarkers/FindAllMarkers changed
to NULL.
 
Seurat 2.3.0 (2018-03-22)
Added
- Support for HTO demultiplexing
 
- Utility functions: TransferIdent, CombineIdent, SplitObject,
vector.friendly
 
- C++ implementation for parts of BuildSNN
 
- Preliminary parallelization support (regression and JackStraw)
 
- Support for FItSNE
 
Changed
- MetaDE replaced with metap for combining p-values (MetaDE was
removed from CRAN)
 
- NMF heatmaps replaced (NMF to be archived by CRAN)
 
Seurat 2.2.1 (2018-02-14)
Changed
- MetaDE replaced with metap for combining p-values (MetaDE was
removed from CRAN)
 
- NMF heatmaps replaced (NMF to be archived by CRAN)
 
Seurat 2.2.0 (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
 
Changed
- JoyPlot has been replaced with RidgePlot
 
- FindClusters is now more robust in making temp files
 
- MetaDE support for combining p-values in DE testing
 
Seurat 2.1.0 (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
 
Changed
- Default DE test changed to Wilcoxon rank sum test
 
Seurat 2.0.1 (2017-08-18)
Added
- Now available on CRAN
 
- Updated documentation complete with examples
 
- Example datasets: 
pbmc_small and
cc.genes 
- C++ implementation for parts of FindVariableGenes
 
- Minor bug fixes
 
Seurat 2.0.0 (2017-07-26)
Added
- New method for aligning scRNA-seq datasets
 
- Significant code restructuring
 
- New methods for scoring gene expression and cell-cycle phases
 
- New visualization features (do.hover, do.identify)