Changes in version 1.25 (2025-05-26) o Change license from GPL-3 to MIT. Changes in version 1.19 (2024-11-26) o glmGamPoi is using the new tatami library instead of the old beachmat interface. These libraries helped to work with different kind of matrices (dense, HDF5-backed). One important change is that glmGamPoi now requires C++17 (instead of C++14). (PR#66,thanks Aaron Lun) o The input data can be sparse! Building on top of tatami allows me to support arbitrary matrix types such as sparse matrices and DelayedArrays. o Fix bug regarding matrix columns in `pseudobulk` (https://github.com/const-ae/lemur/issues/20). o Add work-around for https://github.com/Bioconductor/DelayedArray/issues/123 Changes in version 1.17 (2024-05-29) o `test_de` can now compute the standard error of the log2-fold change (PR#63, thanks @jackkamm) o `predict` now considers the `ridge_penalty` when calculating the standard errors. o Detect if smart subset of MatrixGenerics' `rowMeans2` and `rowSums2` can be used to speed-up `pseudobulk` calculation. Changes in version 1.15 (2023-11-04) o Fix typo in `quasi_gamma_poisson_shrinkage` example (thanks to @nlubock) o Add `sample_fraction` argument to `loc_median_fit` (once again thanks @nlubock) Changes in version 1.13 (2023-07-03) o Implement a likelihood ratio test based on the Chi-squared distribution, if `test_de` is called after setting `overdispersion_shrinkage = FALSE`. Note that this test is less reliable than than the quasi-likelihood F test that is run for `overdispersion_shrinkage = TRUE`. Changes in version 1.11 (2023-01-03) o Breaking change: rename 'pseudobulk_sce' to 'pseudobulk' o Add a new vignette explaining how and why pseudobulking is a powerful concept for single cell data analysis o Depcreate 'pseudobulk_by' argument in 'test_de'. Use the 'pseudobulk' function instead. o Add a new argument 'max_lfc' to to 'test_de' to avoid impractically large log fold changes for lowly expressed genes. o Support rlang quosures for the contrast argument in 'test_de' o Add a helper function called 'fact' that simplifies specification of contrast for complex experimental designs o Add 'use_assay' argument to 'glm_gp' o Add `vctrs` as dependency. The package is necessary to replicate the `group_by` behavior from `dplyr`. o Add 'size_factors = "ratio"' to emulate the behavior of DESeq2's size factor calculation o Make sure that the 'ignore_degeneracy' argument is propagated to 'test_de' Changes in version 1.9 o Breaking change to the way that non-standard evaluation parameters are handled. Variables in arguments such as 'pseudobulk_by' or 'subset_to' which evaluate to a single string are no longer interpreted as referring to a column. This change makes the handling of NSE more consistent. o Add new function 'pseudobulk_sce' to easily form pseudobulk samples Changes in version 1.5 o Choose a more reasonable scale for global overdispersion estimate o Make code more robust accidental internal NA's o Add fallback mechanism in case the Fisher scoring fails to converge. Instead of returing NA, try again using the BFGS algorithm. o Better error message if the design contains NA's Changes in version 1.4 (2021-05-19) o Ridge regularization framework. glmGamPoi now supports regularizing the coefficient estimates using a quadratic penalty function. Furthmore, more advanced regularization schemes, such as regularizing towards a specific value and full Tikhonov regularization are implemented. o New predict() function. Also supports estimating the standard error of the mean estimate. o Make sure that Fisher scoring does not converge to unrealistically large values of mu o Fix minor bug in test_de() concerning the calculation of the degree of freedom o Fix minor bug in calculation of working and Pearson residuals, which used to return NaN if mu was 0. Now, they are 0. o Improve vignette/Readme: add section on differential expression analysis with Kang et al. (2018) as example data o `glm_gp` returns the Offset matrix and bug fix for test_de() if a offset was specified o Add CITATION file o Make sure that residuals are pristine (when the input was a DelayedArray) o Set dimnames of residuals o Improve error message if input is a sparse matrix Changes in version 1.2 (2020-11-09) o Remove dual likelihood functions for overdispersion estimation. Instead merge functionality into conventional_***. This should cause no user facing changes, however should make it easier to maintain the package o Make conventional_score_function_fast() more robust to extreme inputs. Avoid numerically imprecise subtractions and employ bounds based on series expansions for very small input o If dispersion estimate quits because there is no maximum or all y are 0, return iterations = 0 o Add limits (1e-16 / 1e16) for nlminb estimates of the dispersion. This protects against errors due to NA's in the conventional_likelihood_fast o Automatically set 'size_factors = FALSE' for input with 0 or 1 row. This will change the estimated beta, but not the mu's o Rename gampoi_overdispersion_mle() -> overdispersion_mle() o Store data in the object returned by glm_gp() o Remove Y from the interface of residuals.glmGamPoi, because I can just get it directly from fit$data o Add function test_de() that does a quasi-likelihood ratio test to detect differentially expressed genes o Add functionality to make a pseudobulk test directly from test_de() by aggregating the data around one column o In group-wise beta estimation, fall back to optimize() if the Newton method fails o Change the default size factor estimation method from "poscounts" to "normed_sum" and provide an easy way to call scran::calculateSumFactors() o New "global" mode for dispersion estimation Changes in version 0.0.99 (2020-03-23) o Submitted to Bioconductor