Changes in version 5.4.0 (2026-04-11) Changes: - Add setter method DefaultDimReduc<- to enable users to specify a default dimensional reduction for object interaction and visualization (#268) - Add option to specify assay in FetchData.Seurat (#278) - Update ability to create cropped FOVs from Visium V2 images via new internal method .CropVisiumV2 (#279, #289) - Update documentation for [ to specify that ordering of cells/features is not always preserved (#280) - Specify drop = FALSE in LayerData<-.StdAssay to preserve dimensions when setting layer to the requested cells (#269) - Add parameter droplevels.meta.data to subset.Seurat to allow users to drop unused factor levels in object-level metadata when subsetting (#286) - Fix bug in selecting the requested assay when retrieving HVF information for an object (#284) - Fix bug relating to error message handling in subset.Seurat (#265) - Fix call to defunct method FilterObjects in [[<- (#275) Changes in version 5.3.0 (2025-12-12) Changes: - Update subset.Seurat to no longer call droplevels on the input's cell-level meta.data slot; update subset.Assay to no longer call droplevels on the input's feature-level meta.features slot; update subset.StdAssay to no longer call droplevels on the input's feature-level meta.data slot (reverting #251, see discussion in #247) - Add drop = FALSE when retrieving data in LayerData.Assay to preserve dimensions when subsetting to the requested cells (#261) - Update sf.data slot in the Segmentation class to store a data.frame in accordance with changes in loading Visium segmentations (#267) - Add compact slot to the Segmentation class to denote whether the object only stores segmentation information in the sf.data slot, or also the sp-inherited slots (#267) - Update CreateSegmentation, CreateSegmentation.data.frame, CreateSegmentation.sf, and methods interacting with Segmentation objects (Cells.Segmentation, RenameCells.Segmentation, Crop.Segmentation, subset.Segmentation, [[<-, coordinates, Overlay, show, setValidity) to account for the addition of compact and the update to sf.data - For a detailed description of changes, see #267 - Add coords_x_orientation slot to the FOV class to hold the orientation of the x-axis for spatial data (to mark whether the coordinate system of a spatial object has been updated) - Update UpdateSeuratObject to check whether an object requires an update to the coordinate system based on the existence and value of the coords_x_orientation slot (currently only relevant for Visium objects) - Add method safeValidityCheck to show an improved error message suggesting to run UpdateSeuratObject when a "slots in class definition but not in object" error is thrown by R's internal object validation; use in FOV-interacting methods Changes in version 5.2.0 (2025-08-27) Changes: - Add sf.data slot to the Segmentation class to store an sf object (#258) - sf.data will represent segmentation boundaries for a given image inside the images slot of a Seurat object - Add CreateSegmentation.sf, [[<-, setValidity for interacting with Segmentation objects - Update RenameCells.Segmentation, subset.Segmentation, [, UpdateSeuratObject - Add optional misc slot to SpatialImage to store additional info associated with an object in a list (#258) Changes in version 5.1.0 (2025-04-22) Changes: - Update subset.Seurat to call droplevels on the input's cell-level meta.data slot; update subset.Assay to call droplevels on the input's feature-level meta.features slot; update subset.StdAssay to call droplevels on the input's feature-level meta.data slot (#251) - Update UpdateSeuratObject to call droplevels on the input's cell-level meta.data slot (@samuel-marsh, #247) - Drop Seurat from Enhances; update .IsFutureSeurat to avoid calling requireNamespace('Seurat', ...) (#250) - Update the VariableFeatures.StdAssay setter to apply a speedup (#240) - Add SVFInfo.Assay5 & SpatiallyVariableFeatures.Assay5 (#242) - Fix bug in UpdateSeuratObject (@neanderthalensis, #210) - Fix bug in WhichCells.Seurat (@maxim-h, #219) - Fix bug in SpatiallyVariableFeatures.Assay (#242) - Fix bug in merge.Seurat (#246) - Fix bug in VariableFeatures.StdAssay (#245) - Fix bug in HVFInfo.StdAssay (#244) - Fix bug in RenameCells.Seurat (#237) - Fix bug in subset.StdAssay (#214) Changes in version 5.0.2 (2024-05-08) Changes: - Properly re-export %||% from rlang (#178) - Class key-based warnings (#180) - Require R 4.1 (#180) - Fix errors in UpdateSeuratObject (@ddiez, #182) - Add ... to call signature for Radius generic (#190) - Fix bug in PolyVtx (#194) - Fix bug in feature-level subsetting (#200) - Update UpdateSeuratObject to run without Seurat installed (#199) - Add warning in Layers.Assay() when the search returns no results (@maxim-h, #189) - Fix bug in subset to allow empty images to be dropped (#204) Changes in version 5.0.1 (2023-11-17) Changes: - Update internal calls to GetAssayData() to use layer instead of slot (#160) - Update Matrix version to 1.6-2 (#164) - Change layer-saving in SaveSeuratRds() to move all layers instead of just those in tempdir() (#169) - Update internal calls to SetAssayData() to use layer instead of slot (#171) - Replace internal calls of FilterObjects() to .FilterObjects() (#171) Changes in version 5.0.0 (2023-10-26) Added - New Assay5 class with support for layers; layers provide support for: - arbitrary expression matrix names and number - arbitrary expression matrix shape - disk-backed expression matrices - New $ method for Assay and Assay5 objects to pull expression matrices, replacing informal usage of @ - New LayerData() and LayerData()<- functions to replace GetAssayData() and SetAssayData(), respectively - Support for renaming cells and features with dimnames()<- (changing feature names does not apply to v3 Assay objects) - New SaveSeuratRds() and LoadSeuratRds() to save and load Seurat objects with disk-backed layers - New droplevels.LogMap() to drop unused entries from a LogMap - New ability to split (split()) and rejoin layers (JoinLayers()) within Assay and Assay5 objects based on grouping factor Changes - slot argument deprecated in all contexts; where applicable, replaced with layer argument - [ for Assay and Assay5 objects take a layer name to pull an expression matrix - option Seurat.object.assay.brackets allows restoring v3/v4 behavior of subsetting the main expression matrix (eg. data) - Stricter object validation routines at all levels - PackageCheck() deprecated in favor of rlang::check_installed() - AttachDeps() deprecated in favor of using the Depends field of DESCRIPTION - Subobjects within a Seurat object may have subsets of cells present at the object level - Begun replacement of stop() and warning() with rlang::abort() and rlang::warn() for easier debugging - Expanded validation and utility of KeyMixin objects Removed - Unused object constructors (eg. Assay(), Seurat()) Changes in version 4.1.4 (2023-09-26) Changes - Fixes for CellsByIdentities (#80) - Remove {rgeos} from Suggests and replace with {sf} due to {rgeos} package retirement - New check for potential binary breaks between dependencies and SeuratObject Changes in version 4.1.3 (2022-11-07) Changes - Move {rgeos} to Suggests; segmentation simplification now requires {rgeos} to be installed manually - Move {sp} to Depends Added - Add keys to Assays and DimReducs in UpdateSeuratObject when missing Changes in version 4.1.2 (2022-09-20) Changed - Bump required Matrix version to >= 1.5.0 Changes in version 4.1.1 (2022-08-29) Changed - Update sparse matrix coersions due to Matrix deprecations Changes in version 4.1.0 (2022-05-01) Changed - Allow UpdateSeuratObject to work when data is NULL (#38) - Fix superclass issue with R-devel 4.3.x (#42) Added - New FOV, Segmentations, Centroids, and Molecules classes for imaging-based spatial datasets Changes in version 4.0.4 (2021-11-23) Changed - CreateSeuratObject.Assay sets Assay key when not present (#29) - Ignore warnings when creating an Assay from a data frame (#32) Added - New CheckMatrix generic for validating expression matrices Changes in version 4.0.3 (2021-11-10) Changed - Export utility functions (#22) - Bug fix in names with Key.Seurat (#26) - Improved duplicate key checking and resolution Changes in version 4.0.2 (2021-06-09) Changed - Provide default option for Seurat.checkdots option if option is not set (#16) Changes in version 4.0.1 (2021-05-08) Added - head and tail methods for Seurat and Assay objects (#5) - New utility functions (#6): - AttachDeps to attach required imported dependencies on package attachment - IsMatrixEmpty to test if a matrix is empty or not Changed - Allow super classes to replace child classes (#1). For example, allows Assay objects to replace Seurat::SCTAssay or Signac::ChromatinAssay objects of the same name - Better support for creating sparse matrices from data.table/tibble objects (#4) - Improved error messages for clashing object names (#7) - Allow returning a NULL if a subset results in zero cells (#9) Removed - SCT-specific code (#2) Changes in version 4.0.0 (2021-01-15) - Initial release of SeuratObject