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.