Changes in version 1.16 o addPerCellQCMetrics() will (optionally) add the feature subset identities to the row data of the SingleCellExperiment. o Added uniquifyDataFrameByGroup() to collapse grouped rows in a DataFrame into their unique values. Changes in version 1.10 o .subset2index now converts factor inputs to character vectors, rather than treating them as integers. Changes in version 1.8.0 o Removed support for use.altexps= in aggregateAcrossCells() and logNormCounts(). o Added swap.rownames= option to makePerCellDF() to allow easy access by rowData aliases. Also moved the extracted features to the end of the data frame for consistency. Changes in version 1.2.0 o Migrated whichNonZero() to beachmat. o Bugfixes for factor-based colData aggregation in aggregateAcrossCells(). Added proper support for Vectors. o Bugfix for correct response to use.altexps= in perCellQCMetrics(), perFeatureQCMetrics(). o Added a normalize.all= option to normalizeCounts(). Removed unnecessary warning when down.target= is not specified. Exposed the default size.factors= in the SingleCellExperiment method. o Modified the SingleCellExperiment method of logNormCounts() so that manually specified size factors do not apply to alternative Experiments. Only relevant if size.factors= and use.altexps= are specified. o Deprecated use.altexps= in favor of applySCE() in logNormCounts() and aggregateAcrossCells(). o Renamed addPerCellQC() and addPerFeatureQC() to addPerCellQCMetrics() and addPerCellFeatureMetrics(), for consistency. Soft-deprecated the old functions. o Moved most of quickPerCellQC() functionality into the new perCellQCFilters() function. Repurposed the former to directly return a filtered SummarizedExperiment object. o Migrated scran's normalization-related functions into this package. Added pooledSizeFactors(), computePooledFactors(), cleanSizeFactors() and computeSpikeFactors(). o Added transform="asinh" to normalizeCounts() and logNormCounts() for inverse hyperbolic transformations of CITE-seq data. o Modified isOutlier() to now return outlier.filter objects. These are simply logical vectors that preseve the "thresholds" attribute upon subsetting. o Migrated correctGroupSummary() from scater, to compute corrected versions of group-level summary statistics. Changes in version 1.0.0 o Split off scuttle from scater by migrating all non-visualization code from the latter. o Began transition to dot-separate argument names from original snake case format. o Added a geometricSizeFactors() function, deprecated geometric=TRUE in librarySizeFactors(). o Single-object downsampling in downsampleBatches() now behaves more consistently with multi-object downsampling.