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:

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

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

  • 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

Changed

  • Bump required Matrix version to >= 1.5.0

Changed

  • Update sparse matrix coersions due to Matrix deprecations

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

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

Changed

  • Export utility functions (#22)
  • Bug fix in names with Key.Seurat (#26)
  • Improved duplicate key checking and resolution

Changed

  • Provide default option for Seurat.checkdots option if option is not set (#16)

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)
  • Initial release of SeuratObject