First CRAN release. Version 1.0.0 refers to the pre-CRAN package installed from GitHub.
wilcoxauc() accepts disk-backed DelayedMatrix input (e.g.
HDF5-backed assays from HDF5Array), processed in feature blocks so the
whole matrix never has to be loaded in memory (#26). Other matrix-like
classes with an as(., "dgCMatrix") method (e.g. BPCells) are coerced
automatically.wilcoxauc() gains a transposed argument for observations x
features input (samples in rows), which runs directly on that layout
without materializing a transposed copy (#18).wilcoxauc() gains an nthreads argument: the per-feature ranking of
sparse (dgCMatrix) input can run multithreaded. Results are identical
at any thread count; roughly 2.6x faster with 4 threads on a
3,000 x 80,000 matrix. The default (nthreads = 1) is unchanged.toy_seurat() and toy_sce() generate small example Seurat /
SingleCellExperiment objects on the fly with the installed package
versions, so they can never go stale.wilcoxauc() now stops with an informative error when X contains
NA values, instead of silently returning incorrect results (#25).object_seurat and object_sce datasets were removed;
use toy_seurat() and toy_sce() instead.Rcpp and data.table moved from Depends to Imports, so they are
no longer attached to the search path when presto is loaded.stats::wilcox.test() to machine
precision; on typical count data the change is tiny (< 1e-4), but it
is meaningful for binary or heavily tied features. Constant features
report pval = 1 instead of an arbitrary value.wilcoxauc() and rank_matrix() no longer modify their input in
place: dense input used to be silently overwritten with ranks via an
aliased memory buffer (#7). Dense avgExpr and logFC are computed
from the original values (also #7).wilcoxauc() uses the layer argument
required by Seurat 5 (#44).pseudobulk_within() handles character and multi-level contrast
variables.pseudobulk_pairwise() no longer fails on single-column meta_data.collapse_counts() no longer drops a single-column meta_data to a
vector, which had broken the collapse_background = TRUE path of
pseudobulk_deseq2().sumGroups() and nnzeroGroups() accept a character group vector y
again. A character y previously coerced to NA via as.integer(),
producing an out-of-bounds index that crashed on some platforms; the
labels are now factored first, and NA labels raise a clear error.summarize_dge_pairs() no longer prints debug output, and
pseudobulk_deseq2() no longer warns unconditionally..data$ tidyselect usage and superseded
tidyr::spread() with tidyr::pivot_wider() in top_markers() and
top_markers_dds() (#20).wilcoxauc() (transpose, ranking, and
all group-wise reductions) are fused into a single-pass C++ kernel,
about 12% faster serially before any threading.