Changes in version 2.2.1.9002 - Improved scalability of downstream analysis and visualization - Reduced the need of pre-calculated normalized data for performing Wilcoxon's test and producing feature expression plots - Normalized data will only be calculated on the fly from raw data and pre-stored size factor (obj$nUMI). - Added theme_axis_shortArrow() for tidy dimensional reduction plot axis theme. - Migrating to patchwork for multi-plot layouting. Mainly for the ease of alignment, legend collection, and subplot extraction. Changes in version 2.2.1 (2025-08-26) - Added naive GSEA analysis on factor gene loading (W) to test if any known gene sets (e.g. cell cycle) is enriched in any factor. Implemented in factorGSEA(). - Added dense data loading support for H5AD files - Optimized obs metadata parsing for H5AD files - Fixed ggplot2 color picking when coloring by logical value - Fixed H5AD file layer detecting bug - Fixed some other minor bugs Changes in version 2.2.0 (2025-05-01) - Implemented highly efficient on-disk iNMF that scales to a million cells using slightly more time than in-memory version, requiring only laptop-level memory. - Added 10X H5 data and H5AD loading function that loads the data into regular dgCMatrix in memory or the DelayedArray representation backed on disk, the latter is used for on-disk iNMF implementation. - Added selectBatchHVG() which implements another HVG selection strategy, credit to SCIB - Adding suggestK() back with new methodology - Clarified optimal runGOEnrich() workflow and added fold enrichment metric in the returned result - Fixed important bug in online iNMF scenario 2 - Fixed multiple problems related to ATAC analysis - Fixed Wilcoxon rank-sum test bug when using ATAC peak counts - Fixed gene coordinate parsing bug from BED file - Optimized peak parsing speed Changes in version 2.1.0 (2024-10-29) - Added centroidAlign() for new cell factor loading alignment method - Added plotProportionBox() for visualizing compositional analysis - Added plotClusterGeneViolin() for visualizing gene expression in clusters - Added plotBarcodeRank() for basic QC visualization - Added plotPairwiseDEGHeatmap() for visualizing pairwise DEG results - Added plotGODot() for visualizing GO enrichment results - Added calcNMI() for evaluating clustering results against ground truth - Added ligerToH5AD() allowing reticulate/Python free export of liger object to H5AD format. This is presented in extension source code (i.e. not loaded with library(rliger)). - Added organism support in runGeneralQC() and refined hemoglobin gene matching regex pattern. - Optimized DE test memory usage scalability for both pseudo-bulk method and wilcoxon test - Optimized plotProportionPie() by adding argument circleColors - Optimized plotVolcano() text annotation positioning and gene highlighting logic. - Optimized visualization function additional argument documentation - Changed runMarkerDEG() and runPairwiseDEG() default method from "wilcoxon" to "pseudoBulk" - Fixed runMarkerDEG(method = "pseudobulk") bug in assigning pseudo-replicates, and optimized error/warning signaling. - Fixed bug in calcAlignment(), subsetMemLigerDataset(), cellMeta() - Fixed bug in old version updating functions Changes in version 2.0.1 (2024-04-04) - Fixed wrong UINMF aborting criteria - Fixed example/test skipping criteria for non-existing dependencies - Fixed file access issue when checking on CRAN - Updated installed data file system.file("extdata/ctrl.h5", "extdata/stim.h5") to be of standard 10X H5 format - Updated quantileNorm() automatic reference selection according to #297 - Other minor fixes (including #308) Changes in version 2.0.0 (2024-03-20) - Added ligerDataset class for per-dataset information storage, with inheritance for specific modalities - Added a number of plotting functions with clear function names and useful functionality - Added Leiden clustering method, now as default rather than Louvain - Added pseudo-bulk DEG method - Added DEG analysis with one-vs-rest marker detection in runMarkerDEG() and pairwise comparison in runPairwiseDEG() - Added gene name pattern for expression percentage QC metric - Added native Seurat object support for the core integration workflow - Added a documentation website built with pkgdown - Added new iNMF variant method, consensus iNMF (c-iNMF), in runCINMF(). Not stable. - Added GO enrichment dowsntream analysis in runGOEnrich() - Changed liger object class structure - Moved iNMF (previously optimizeALS()), UINMF (previously optimizeALS(unshared = TRUE)) and online iNMF (previously online_iNMF()) implementation to new package RcppPlanc with vastly improved performance. Now wrapped in runINMF(), runUINMF() and runOnlineINMF() respectively, and all can be invoked with runIntegration(). - Updated H5AD support to match up with Python anndata package 0.8.0 specs - Renamed many function/argument names to follow camelCase style, original names are still available while deprecation warnings are issued Changes in version 1.0.1 (2023-11-08) - Allow setting mito pattern in getMitoProportion() #271 - Fix efficiency issue when taking the log of norm.data (e.g. runWilcoxon) - Add runable examples to all exported functions when possible - Fix typo in online_iNMF matrix initialization - Adapt to Seurat5 - Other minor fixes