Changes in version 2.10.0 o Switch to scrapper for DE detection when de.method="t" or de.method="wilcox" in trainSingleR(). This should give similar results to but is faster than the previous scran functions. o Switch to scrapper for variance calculation, PCA and clustering in aggregateReference(). This should be faster than the previous BiocSingular and stats::kmeans functions, and avoids the need to consider the seed. o Added a configureMarkerHeatmap() function to perform all the calculations used by plotMarkerHeatmap(). This allows users to re-use the calculations with a custom visualization for the expression values. o Automatically remove duplicated gene names in trainSingleR(). This avoids matching to the wrong gene after identifying markers from the reference dataset. o Report scores as a DataFrame of nested Dataframes in combineRecomputedResults(). Each inner DataFrame corresponds to a reference and contains the identity of the best label and the recomputed score in that reference. This is simpler and more efficient than the previous "expanded with NA" format. o Report the deltas (i.e., difference between the best and next-best scores) in combineRecomputedResults(). o Separate the missingness check arguments in SingleR() with the new check.missing.test= and check.missing.ref= options. The former is disabled by default, to avoid an unnecessary missingness check in the vast majority of test cases. o Removed the deprecated combineCommonResults() function. Changes in version 2.8.0 o Added the test.genes= argument to trainSingleR(), to restrict marker detection to only those genes in the test dataset. This is also checked against rownames(test) in classifySingleR() to ensure that the test's feature space is consistent with the space used during training. o The introduction of test.genes= means that we no longer need to explicitly subset the rows of the reference dataset (to match the test features) in SingleR(). This saves memory by avoiding an unnecessary copy of the reference dataset, but may also slightly alter the marker selection as ties are broken in a different way. Namely, if the top X genes are used as markers, and the X-th and (X+1)-th gene have the same log-fold change, tie breaking will be based on the ordering of the rows in the reference matrix - which is no longer the same as in the previous version of SingleR. This results in some slight differences in the markers that propagate down to the classification results. o Restored the BNPARAM= argument in trainSingleR(), to enable more fine-grained specification of neighbor search algorithms. The approximate= argument is deprecated. o Soft-deprecated check.missing= in classifySingleR() and combineRecomputedResults(). This is because any filtering will cause a mismatch between the row names of tests and the test.genes in trained. Rather, filtering should be done prior to trainSingleR(), as is done in the main SingleR() function. o combineRecomputedResults() now supports fine-tuning to resolve closely-related labels from different references. This is similar to the fine-tuning in classifySingleR() where the feature space is iterately redefined as the union of markers of labels with near-highest scores. o Added the plotMarkerHeatmap() function to plot a diagnostic heatmap of the most interesting markers for each label. Changes in version 2.0.0 o The format of the output of trainSingleR() has changed and is no longer back-compatible. o recompute=FALSE in trainSingleR() does nothing; all integrated analyses are now done with recompute=TRUE. To that end, combineCommonResults() is also deprecated. o genes = "sd" and its associated options in trainSingleR() are no longer supported. o first.labels is no longer reported in classifySingleR(). o Added another parallelization mechanism via num.threads= and C++11 threads. This should be much more memory efficient than using BiocParallel. o combineRecomputedScores() will automatically handle mismatches in the input references by default. Changes in version 1.6.0 o Relaxed the requirements for consistent row names in combineRecomputedResults(). o Support sparse DelayedArray inputs in classifySingleR(). o Parallelize over labels instead of rows in aggregateReference(), with minor changes in the setting of the seed. Restrict the PCA to the top 1000 most highly variable genes, for speed. Changes in version 1.4.0 o Migrated all of the dataset getter functions to the celldex package. o Streamlined the vignette to point to the book at . o Added a restrict= argument to trainSingleR() and SingleR() to easily restrict to a subset of features. o Deprecated the method= argument in SingleR(). o Protect against accidental data.frames in ref= or test= in all functions. Changes in version 1.2.0 o Added support for consolidating labels from multiple references via combineResults(). o Added mappings to standardized Cell Ontology terms in all *Data() functions. o Changed the name of the labels input of plotScoreDistribution() to labels.use for consistency across functions. o Fixed a label from adipocytes to astrocytes in BlueprintEncodeData(). o Removed umlauts from labels (e.g., naive) in NovershternHematopoieticData() to avoid problems with Windows. o Perform PCA before clustering in aggregateReference() for speed and memory efficiency. o Modified genes="all" behavior in trainSingleR() to report DE-based markers for fine-tuning only. Changes in version 1.0.0 o New package SingleR for cell type annotation.