diff --git a/DESCRIPTION b/DESCRIPTION index 356db38..f3389d7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: sctransform Type: Package Title: Variance Stabilizing Transformations for Single Cell UMI Data -Version: 0.3.0.9004 +Version: 0.3.1 Authors@R: person(given = 'Christoph', family = 'Hafemeister', email = 'christoph.hafemeister@nyu.edu', role = c('aut', 'cre'), comment = c(ORCID = '0000-0001-6365-8254')) Description: A normalization method for single-cell UMI count data using a variance stabilizing transformation. The transformation is based on a diff --git a/NEWS.md b/NEWS.md index e7e60e4..3810ef5 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,20 @@ # News All notable changes will be documented in this file. +## [0.3.1] - 2020-10-08 +### Added +- Add a `qpoisson` method for parameter estimation that uses fast Rcpp quasi poisson regression where possible (based on `Rfast` package); this adds `RcppArmadillo` dependency + +### Changed +- Remove `poisson_fast` method (replaced by `qpoisson`) +- Use `matrixStats` package and remove `RcppEigen` dependency +- Use quasi poisson regression where possible +- Define cell detection event as counts >= 0.01 (instead of > 0) - this only matters to people playing around with fractional counts (see [issue #65](https://github.com/ChristophH/sctransform/issues/65)) +- Internal code restructuring and improvements + +### Fixed +- Fix inefficiency of using `match.call()` in `vst()` when called via `do.call` + ## [0.3] - 2020-09-19 ### Added - Add support for `glmGamPoi` as method to estimate the model parameters; thanks @yuhanH for his pull request diff --git a/README.md b/README.md index 8664388..509abf7 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,20 @@ Available vignettes: [Using sctransform in Seurat](https://rawgit.com/ChristophH/sctransform/master/supplement/seurat.html) ## News +For a detailed change log have a look at the file [NEWS.md](https://github.com/ChristophH/sctransform/blob/master/NEWS.md) + +### v0.3.1 +This release fixes a performance regression when `sctransform::vst` was called via `do.call`, as is the case in the Seurat wrapper. + +Additionally, model fitting is significantly faster now, because we use a fast Rcpp quasi poisson regression implementation (based on `Rfast` package). This applies to methods `poisson`, `qpoisson` and `nb_fast`. + +The `qpoisson` method is new and uses the dispersion parameter from the quasi poisson regression directly to estimate `theta` for the NB model. This can speed up the model fitting step considerably, while giving similar results to the other methods. [This vignette](https://rawgit.com/ChristophH/sctransform/master/supplement/method_comparison.html) compares the methods. + +### v0.3 The latest version of `sctransform` now supports the [glmGamPoi](https://github.com/const-ae/glmGamPoi) package to speed up the model fitting step. You can see more about the different methods supported and how they compare in terms of results and speed [in this new vignette](https://rawgit.com/ChristophH/sctransform/master/supplement/method_comparison.html). Also note that default theta regularization is now based on overdispersion factor (`1 + m / theta` where m is the geometric mean of the observed counts) not `log10(theta)`. The old behavior is still available via `theta_regularization` parameter. You can see how this changes (or doesn't change) the results [in this new vignette](https://rawgit.com/ChristophH/sctransform/master/supplement/theta_regularization.html). -For a detailed change log have a look at the file [NEWS.md](https://github.com/ChristophH/sctransform/blob/master/NEWS.md) - ## Reference Hafemeister, C. & Satija, R. Normalization and variance stabilization of single-cell RNA-seq data using regularized negative binomial regression. Genome Biol 20, 296 (December 23, 2019). [https://doi.org/10.1186/s13059-019-1874-1](https://doi.org/10.1186/s13059-019-1874-1) diff --git a/cran-comments.md b/cran-comments.md index 907273a..6ec3db3 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,36 +1,28 @@ ## Test environments * Local install x86_64-apple-darwin17.0 (64-bit), R 4.0.2 * Winbuilder - * devtools::check_win_devel() - x86_64-w64-mingw32 (64-bit), R Under development (unstable) (2020-09-09 r79174) + * devtools::check_win_devel() - x86_64-w64-mingw32 (64-bit), R Under development (unstable) (2020-10-05 r79298) * devtools::check_win_release() - x86_64-w64-mingw32 (64-bit), R 4.0.2 * rhub::check_for_cran(platforms = c('ubuntu-gcc-release', 'debian-gcc-devel', 'fedora-clang-devel')) * Ubuntu Linux 16.04 LTS, R-release, GCC - R 3.6.1 - * Debian Linux, R-devel, GCC - R Under development (unstable) (2020-09-12 r79193) - * Fedora Linux, R-devel, clang, gfortran - R Under development (unstable) (2020-09-13 r79194) + * Debian Linux, R-devel, GCC - R Under development (unstable) (2020-10-02 r79291) + * Fedora Linux, R-devel, clang, gfortran - R Under development (unstable) (2020-10-02 r79291) ## R CMD check results -0 ERRORs, 0 WARNINGs, 2 NOTEs - -``` -* checking CRAN incoming feasibility ... NOTE -Maintainer: 'Christoph Hafemeister ' - -New maintainer: - Christoph Hafemeister -Old maintainer(s): - Christoph Hafemeister -``` - -My New York Genome Center email address is no longer functioning. I have switched to my New York University one. This is also the email address listed in the publication associated with this package's description (doi:10.1186/s13059-019-1874-1). +0 ERRORs, 0 WARNINGs, 1 NOTE ``` * checking package dependencies ... NOTE Packages which this enhances but not available for checking: 'speedglm', 'glmGamPoi' ``` -`speedglm` is an optional package not required for core functionality. It has not been updated in more than three years, hence the choice to put it in Enhance rather than Suggest. + `glmGamPoi` is an entirely optional package that is not required for core functionality, but only needed for alternative/faster implementations of the methods in this package. It is only available on Bioconductor. ## Reverse dependencies -There are currently two packages importing sctransform: muscat, Seurat. This update does not impact their functionality. +There are 2 reverse dependencies (muscat, Seurat). We checked them comparing R CMD check results across CRAN and dev versions of this package. + + * We saw 0 new problems + +