From 20fd1a272062d01a867b98b3b906ff8d4bee1e71 Mon Sep 17 00:00:00 2001 From: Eric Weine Date: Sun, 7 Apr 2024 16:39:12 -0400 Subject: [PATCH 1/6] fixed sparse to dense conversion caused my matrix division --- DESCRIPTION | 4 ++-- NAMESPACE | 1 + R/featureSelection.R | 21 +++++++++++---------- man/devianceFeatureSelection.Rd | 6 +++--- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index f287b6a..63d06f5 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: scry Title: Small-Count Analysis Methods for High-Dimensional Data -Version: 1.11.1 +Version: 1.11.2 Description: Many modern biological datasets consist of small counts that are not well fit by standard linear-Gaussian methods such as principal component analysis. This package provides implementations of @@ -43,7 +43,7 @@ VignetteBuilder: knitr LazyData: false URL: https://bioconductor.org/packages/scry.html BugReports: https://github.com/kstreet13/scry/issues -RoxygenNote: 7.2.2 +RoxygenNote: 7.3.1 Encoding: UTF-8 biocViews: DimensionReduction, diff --git a/NAMESPACE b/NAMESPACE index bfd7b21..e43c64a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -11,6 +11,7 @@ importClassesFrom(BiocSingular,LowRankMatrix) importClassesFrom(DelayedArray,DelayedMatrix) importFrom(DelayedArray,DelayedArray) importFrom(DelayedArray,colSums) +importFrom(Matrix,Diagonal) importFrom(Matrix,colSums) importFrom(Matrix,rowSums) importFrom(Matrix,t) diff --git a/R/featureSelection.R b/R/featureSelection.R index 06f8b8a..f31e91d 100644 --- a/R/featureSelection.R +++ b/R/featureSelection.R @@ -2,11 +2,12 @@ #...or SummarizedExperiment #' @importFrom methods as +#' @importFrom Matrix Diagonal sparseBinomialDeviance<-function(X,sz){ #X has features in cols, observations in rows #assume X is a sparseMatrix object X<-as(X,"CsparseMatrix") - LP<-L1P<-X/sz #recycling + LP<-L1P<-Matrix::Diagonal(x = 1/sz) %*% X #recycling LP@x<-log(LP@x) #log transform nonzero elements only L1P@x<-log1p(-L1P@x) #rare case: -Inf if only a single gene nonzero in a cell ll_sat<-Matrix::colSums(X*(LP-L1P)+sz*L1P, na.rm=TRUE) @@ -88,7 +89,7 @@ densePoissonDeviance<-function(X,sz){ fam=c("binomial","poisson"), batch=NULL){ #deviance but with batch indicator (batch=a factor) - m<-object; rm(object) + m<-object; rm(object) fam<-match.arg(fam) stopifnot(is.null(batch) || is(batch,"factor")) if(is.null(batch)){ @@ -113,14 +114,14 @@ densePoissonDeviance<-function(X,sz){ #' feature has a constant rate. Features with large deviance are likely to be #' informative. Uninformative, low deviance features can be discarded to speed #' up downstream analyses and reduce memory footprint. -#' +#' #' @param object an object inheriting from \code{\link{SummarizedExperiment}} #' (such as #' \code{\link{SingleCellExperiment}}). Alternatively, a matrix or matrix-like -#' object (such as a sparse \code{\link{Matrix}}) of non-negative integer +#' object (such as a sparse \code{\link{Matrix}}) of non-negative integer #' counts. #' @param assay a string or integer specifying which assay contains the count -#' data (default = 'counts'). Ignored if \code{object} is a matrix-like +#' data (default = 'counts'). Ignored if \code{object} is a matrix-like #' object. #' @param fam a string specifying the model type to be used for calculating the #' residuals. Binomial (the default) is the closest approximation to @@ -135,11 +136,11 @@ densePoissonDeviance<-function(X,sz){ #' @param sorted logical, should the \code{object} be returned with rows sorted #' in decreasing order of deviance? Default: FALSE, unless nkeep is specified, #' in which case it is forced to be TRUE. Ignored for matrix-like inputs. -#' +#' #' @return The original \code{SingleCellExperiment} or #' \code{SummarizedExperiment} object with the deviance statistics for each #' feature appended to the rowData. The new column name will be either -#' binomial_deviance or poisson_deviance. If the input was a matrix-like +#' binomial_deviance or poisson_deviance. If the input was a matrix-like #' object, output is a numeric vector containing the deviance statistics for #' each row. #' @@ -167,8 +168,8 @@ densePoissonDeviance<-function(X,sz){ #' @importFrom SummarizedExperiment rowData<- #' @export setMethod("devianceFeatureSelection", "SummarizedExperiment", - definition = function(object, assay = "counts", - fam = c("binomial", "poisson"), batch = NULL, + definition = function(object, assay = "counts", + fam = c("binomial", "poisson"), batch = NULL, nkeep = NULL, sorted = FALSE){ fam<-match.arg(fam) m <- assay(object, assay) @@ -197,7 +198,7 @@ setMethod("devianceFeatureSelection", "SummarizedExperiment", #' @rdname devianceFeatureSelection #' @export -setMethod("devianceFeatureSelection", "matrix", +setMethod("devianceFeatureSelection", "matrix", definition=.compute_deviance_batch) #' @rdname devianceFeatureSelection diff --git a/man/devianceFeatureSelection.Rd b/man/devianceFeatureSelection.Rd index cb57dfc..174d748 100644 --- a/man/devianceFeatureSelection.Rd +++ b/man/devianceFeatureSelection.Rd @@ -29,14 +29,14 @@ devianceFeatureSelection(object, ...) \item{object}{an object inheriting from \code{\link{SummarizedExperiment}} (such as \code{\link{SingleCellExperiment}}). Alternatively, a matrix or matrix-like -object (such as a sparse \code{\link{Matrix}}) of non-negative integer +object (such as a sparse \code{\link{Matrix}}) of non-negative integer counts.} \item{...}{for the generic, additional arguments to pass to object-specific methods.} \item{assay}{a string or integer specifying which assay contains the count -data (default = 'counts'). Ignored if \code{object} is a matrix-like +data (default = 'counts'). Ignored if \code{object} is a matrix-like object.} \item{fam}{a string specifying the model type to be used for calculating the @@ -60,7 +60,7 @@ in which case it is forced to be TRUE. Ignored for matrix-like inputs.} The original \code{SingleCellExperiment} or \code{SummarizedExperiment} object with the deviance statistics for each feature appended to the rowData. The new column name will be either - binomial_deviance or poisson_deviance. If the input was a matrix-like + binomial_deviance or poisson_deviance. If the input was a matrix-like object, output is a numeric vector containing the deviance statistics for each row. } From 4d8d8aa3ec209689b716b9c51a96fcda261b50af Mon Sep 17 00:00:00 2001 From: Eric Weine Date: Sun, 7 Apr 2024 17:26:33 -0400 Subject: [PATCH 2/6] updated poisson deviance --- R/featureSelection.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/featureSelection.R b/R/featureSelection.R index f31e91d..5929562 100644 --- a/R/featureSelection.R +++ b/R/featureSelection.R @@ -10,7 +10,7 @@ sparseBinomialDeviance<-function(X,sz){ LP<-L1P<-Matrix::Diagonal(x = 1/sz) %*% X #recycling LP@x<-log(LP@x) #log transform nonzero elements only L1P@x<-log1p(-L1P@x) #rare case: -Inf if only a single gene nonzero in a cell - ll_sat<-Matrix::colSums(X*(LP-L1P)+sz*L1P, na.rm=TRUE) + ll_sat<-Matrix::colSums(X*(LP-L1P)+Matrix::Diagonal(x = sz) %*% L1P, na.rm=TRUE) sz_sum<-sum(sz) feature_sums<-Matrix::colSums(X) p<-feature_sums/sz_sum @@ -36,7 +36,7 @@ denseBinomialDeviance<-function(X,sz){ sparsePoissonDeviance<-function(X,sz){ #X has features in cols, observations in rows X<-as(X,"CsparseMatrix") - LP<-X/sz #recycling + LP<-Matrix::Diagonal(x = 1/sz) %*% X #recycling LP@x<-log(LP@x) #log transform nonzero elements only ll_sat<-Matrix::colSums(X*LP, na.rm=TRUE) feature_sums<-Matrix::colSums(X) From e4e7a7d84672081a0e7f7c610f23f6b25dcc1276 Mon Sep 17 00:00:00 2001 From: Kelly Street Date: Fri, 12 Apr 2024 14:45:51 -0700 Subject: [PATCH 3/6] set up GHA BiocCheck workflow using biocthis::use_bioc_github_action(biocdocker = 'devel', pkgdown = FALSE, testthat = TRUE, covr = TRUE, pkgdown_covr_branch = 'master', docker = FALSE) --- .Rbuildignore | 1 + .github/.gitignore | 1 + .github/workflows/check-bioc.yml | 338 +++++++++++++++++++++++++++++++ .travis.yml | 18 -- 4 files changed, 340 insertions(+), 18 deletions(-) create mode 100644 .github/.gitignore create mode 100644 .github/workflows/check-bioc.yml delete mode 100644 .travis.yml diff --git a/.Rbuildignore b/.Rbuildignore index 32ff1d2..c17e675 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -28,3 +28,4 @@ NEWS\.md ^codecov\.yml$ ^doc$ ^Meta$ +^\.github$ diff --git a/.github/.gitignore b/.github/.gitignore new file mode 100644 index 0000000..2d19fc7 --- /dev/null +++ b/.github/.gitignore @@ -0,0 +1 @@ +*.html diff --git a/.github/workflows/check-bioc.yml b/.github/workflows/check-bioc.yml new file mode 100644 index 0000000..9fb93aa --- /dev/null +++ b/.github/workflows/check-bioc.yml @@ -0,0 +1,338 @@ +## Read more about GitHub actions the features of this GitHub Actions workflow +## at https://lcolladotor.github.io/biocthis/articles/biocthis.html#use_bioc_github_action +## +## For more details, check the biocthis developer notes vignette at +## https://lcolladotor.github.io/biocthis/articles/biocthis_dev_notes.html +## +## You can add this workflow to other packages using: +## > biocthis::use_bioc_github_action() +## +## Using GitHub Actions exposes you to many details about how R packages are +## compiled and installed in several operating system.s +### If you need help, please follow the steps listed at +## https://github.com/r-lib/actions#where-to-find-help +## +## If you found an issue specific to biocthis's GHA workflow, please report it +## with the information that will make it easier for others to help you. +## Thank you! + +## Acronyms: +## * GHA: GitHub Action +## * OS: operating system + +on: + push: + pull_request: + +name: R-CMD-check-bioc + +## These environment variables control whether to run GHA code later on that is +## specific to testthat, covr, and pkgdown. +## +## If you need to clear the cache of packages, update the number inside +## cache-version as discussed at https://github.com/r-lib/actions/issues/86. +## Note that you can always run a GHA test without the cache by using the word +## "/nocache" in the commit message. +env: + has_testthat: 'true' + run_covr: 'true' + run_pkgdown: 'false' + has_RUnit: 'false' + cache-version: 'cache-v1' + run_docker: 'false' + +jobs: + build-check: + runs-on: ${{ matrix.config.os }} + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) + container: ${{ matrix.config.cont }} + ## Environment variables unique to this job. + + strategy: + fail-fast: false + matrix: + config: + - { os: ubuntu-latest, r: 'devel', bioc: '3.19', cont: "bioconductor/bioconductor_docker:devel", rspm: "https://packagemanager.rstudio.com/cran/__linux__/jammy/latest" } + - { os: macOS-latest, r: 'devel', bioc: '3.19'} + - { os: windows-latest, r: 'devel', bioc: '3.19'} + ## Check https://github.com/r-lib/actions/tree/master/examples + ## for examples using the http-user-agent + env: + R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + RSPM: ${{ matrix.config.rspm }} + NOT_CRAN: true + TZ: UTC + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + + ## Set the R library to the directory matching the + ## R packages cache step further below when running on Docker (Linux). + - name: Set R Library home on Linux + if: runner.os == 'Linux' + run: | + mkdir /__w/_temp/Library + echo ".libPaths('/__w/_temp/Library')" > ~/.Rprofile + + ## Most of these steps are the same as the ones in + ## https://github.com/r-lib/actions/blob/master/examples/check-standard.yaml + ## If they update their steps, we will also need to update ours. + - name: Checkout Repository + uses: actions/checkout@v3 + + ## R is already included in the Bioconductor docker images + - name: Setup R from r-lib + if: runner.os != 'Linux' + uses: r-lib/actions/setup-r@v2 + with: + r-version: ${{ matrix.config.r }} + http-user-agent: ${{ matrix.config.http-user-agent }} + + ## pandoc is already included in the Bioconductor docker images + - name: Setup pandoc from r-lib + if: runner.os != 'Linux' + uses: r-lib/actions/setup-pandoc@v2 + + - name: Query dependencies + run: | + install.packages('remotes') + saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) + shell: Rscript {0} + + - name: Restore R package cache + if: "!contains(github.event.head_commit.message, '/nocache') && runner.os != 'Linux'" + uses: actions/cache@v3 + with: + path: ${{ env.R_LIBS_USER }} + key: ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-devel-${{ hashFiles('.github/depends.Rds') }} + restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-devel- + + - name: Cache R packages on Linux + if: "!contains(github.event.head_commit.message, '/nocache') && runner.os == 'Linux' " + uses: actions/cache@v3 + with: + path: /home/runner/work/_temp/Library + key: ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-devel-${{ hashFiles('.github/depends.Rds') }} + restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-devel- + + # - name: Install Linux system dependencies + # if: runner.os == 'Linux' + # run: | + # sysreqs=$(Rscript -e 'cat("apt-get update -y && apt-get install -y", paste(gsub("apt-get install -y ", "", remotes::system_requirements("ubuntu", "20.04")), collapse = " "))') + # echo $sysreqs + # sudo -s eval "$sysreqs" + + - name: Install macOS system dependencies + if: matrix.config.os == 'macOS-latest' + run: | + ## Enable installing XML from source if needed + brew install libxml2 + echo "XML_CONFIG=/usr/local/opt/libxml2/bin/xml2-config" >> $GITHUB_ENV + + ## Required to install magick as noted at + ## https://github.com/r-lib/usethis/commit/f1f1e0d10c1ebc75fd4c18fa7e2de4551fd9978f#diff-9bfee71065492f63457918efcd912cf2 + brew install imagemagick@6 + + ## For textshaping, required by ragg, and required by pkgdown + brew install harfbuzz fribidi + + ## For installing usethis's dependency gert + brew install libgit2 + + ## Required for tcltk + brew install xquartz --cask + + - name: Install Windows system dependencies + if: runner.os == 'Windows' + run: | + ## Edit below if you have any Windows system dependencies + shell: Rscript {0} + + - name: Install BiocManager + run: | + message(paste('****', Sys.time(), 'installing BiocManager ****')) + remotes::install_cran("BiocManager") + shell: Rscript {0} + + - name: Set BiocVersion + run: | + BiocManager::install(version = "${{ matrix.config.bioc }}", ask = FALSE, force = TRUE) + shell: Rscript {0} + + - name: Install dependencies pass 1 + run: | + ## Try installing the package dependencies in steps. First the local + ## dependencies, then any remaining dependencies to avoid the + ## issues described at + ## https://stat.ethz.ch/pipermail/bioc-devel/2020-April/016675.html + ## https://github.com/r-lib/remotes/issues/296 + ## Ideally, all dependencies should get installed in the first pass. + + ## For running the checks + message(paste('****', Sys.time(), 'installing rcmdcheck and BiocCheck ****')) + install.packages(c("rcmdcheck", "BiocCheck"), repos = BiocManager::repositories()) + + ## Pass #1 at installing dependencies + message(paste('****', Sys.time(), 'pass number 1 at installing dependencies: local dependencies ****')) + remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = FALSE, upgrade = TRUE) + continue-on-error: true + shell: Rscript {0} + + - name: Install dependencies pass 2 + run: | + ## Pass #2 at installing dependencies + message(paste('****', Sys.time(), 'pass number 2 at installing dependencies: any remaining dependencies ****')) + remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = TRUE, upgrade = TRUE, force = TRUE) + shell: Rscript {0} + + - name: Install BiocGenerics + if: env.has_RUnit == 'true' + run: | + ## Install BiocGenerics + BiocManager::install("BiocGenerics") + shell: Rscript {0} + + - name: Install covr + if: github.ref == 'refs/heads/master' && env.run_covr == 'true' && runner.os == 'Linux' + run: | + remotes::install_cran("covr") + shell: Rscript {0} + + - name: Install pkgdown + if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' + run: | + remotes::install_github("r-lib/pkgdown") + shell: Rscript {0} + + - name: Session info + run: | + options(width = 100) + pkgs <- installed.packages()[, "Package"] + sessioninfo::session_info(pkgs, include_base = TRUE) + shell: Rscript {0} + + - name: Run CMD check + env: + _R_CHECK_CRAN_INCOMING_: false + DISPLAY: 99.0 + run: | + options(crayon.enabled = TRUE) + rcmdcheck::rcmdcheck( + args = c("--no-manual", "--no-vignettes", "--timings"), + build_args = c("--no-manual", "--keep-empty-dirs", "--no-resave-data"), + error_on = "warning", + check_dir = "check" + ) + shell: Rscript {0} + + ## Might need an to add this to the if: && runner.os == 'Linux' + - name: Reveal testthat details + if: env.has_testthat == 'true' + run: find . -name testthat.Rout -exec cat '{}' ';' + + - name: Run RUnit tests + if: env.has_RUnit == 'true' + run: | + BiocGenerics:::testPackage() + shell: Rscript {0} + + - name: Run BiocCheck + env: + DISPLAY: 99.0 + run: | + BiocCheck::BiocCheck( + dir('check', 'tar.gz$', full.names = TRUE), + `quit-with-status` = TRUE, + `no-check-R-ver` = TRUE, + `no-check-bioc-help` = TRUE + ) + shell: Rscript {0} + + - name: Test coverage + if: github.ref == 'refs/heads/master' && env.run_covr == 'true' && runner.os == 'Linux' + run: | + covr::codecov() + shell: Rscript {0} + + - name: Install package + if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' + run: R CMD INSTALL . + + - name: Build pkgdown site + if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' + run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE) + shell: Rscript {0} + ## Note that you need to run pkgdown::deploy_to_branch(new_process = FALSE) + ## at least one locally before this will work. This creates the gh-pages + ## branch (erasing anything you haven't version controlled!) and + ## makes the git history recognizable by pkgdown. + + - name: Install deploy dependencies + if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' + run: | + apt-get update && apt-get -y install rsync + + - name: Deploy pkgdown site to GitHub pages 🚀 + if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' + uses: JamesIves/github-pages-deploy-action@releases/v4 + with: + clean: false + branch: gh-pages + folder: docs + + - name: Upload check results + if: failure() + uses: actions/upload-artifact@master + with: + name: ${{ runner.os }}-biocversion-devel-r-devel-results + path: check + + + ## Code adapted from + ## https://github.com/waldronlab/cBioPortalData/blob/e0440a4445f0cc731e426363a76faa22ee5e0f9d/.github/workflows/devel_check_dock.yml#L65-L92 + docker-build-and-push: + runs-on: ubuntu-latest + needs: build-check + steps: + - name: Checkout Repository + if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/master'" + uses: actions/checkout@v3 + + - name: Register repo name + if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/master'" + id: reg_repo_name + run: | + echo CONT_IMG_NAME=$(echo ${{ github.event.repository.name }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV + + - name: Set up QEMU + if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/master'" + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/master'" + uses: docker/setup-buildx-action@v2 + + - name: Login to Docker Hub + if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/master'" + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + ## Note that DOCKERHUB_TOKEN is really a token for your dockerhub + ## account, not your actual dockerhub account password. You can get it + ## from https://hub.docker.com/settings/security. + ## Check https://github.com/docker/build-push-action/tree/v4.0.0 + ## for more details. + ## Alternatively, try checking + ## https://seandavi.github.io/BuildABiocWorkshop/articles/HOWTO_BUILD_WORKSHOP.html. + + - name: Build and Push Docker + if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/master' && success()" + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: > + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.CONT_IMG_NAME }}:latest, + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.CONT_IMG_NAME }}:devel diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index eb3d566..0000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: r -r: - - bioc-devel - -warnings_are_errors: false - -env: - - CODECOV_TOKEN="0f221319-91d1-46a5-94dc-e274b9a6e529" - -r_packages: - - covr - -#r_binary_packages: -# - rjags - -## Run code coverage after successful build -after_success: - - Rscript -e 'library(covr); codecov()' From 8f0efacb0a2875656ce8b16f9ded51455aecde9a Mon Sep 17 00:00:00 2001 From: Kelly Street Date: Fri, 12 Apr 2024 16:34:58 -0700 Subject: [PATCH 4/6] updated README badge from travis to GHA --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9520eb1..edc38a1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # scry -[![Build Status](https://travis-ci.com/kstreet13/scry.svg?token=o1x5ZKVR5sA6MpqhDnQX&branch=master)](https://travis-ci.com/kstreet13/scry) + +[![R-CMD-check](https://github.com/kstreet13/scry/workflows/R-CMD-check-bioc/badge.svg)](https://github.com/kstreet13/scry/actions) [![codecov](https://codecov.io/gh/kstreet13/scry/branch/master/graph/badge.svg?token=2QCzltvkbJ)](https://codecov.io/gh/kstreet13/scry) + From 4bceefe1b9a4d67949c16acb3b614c5605480883 Mon Sep 17 00:00:00 2001 From: Will Townes Date: Sat, 13 Apr 2024 11:15:53 -0400 Subject: [PATCH 5/6] minor changes to R version, readme to clarify which version is needed, update the package version to reflect changes. --- DESCRIPTION | 4 ++-- NEWS.md | 6 ++++++ README.md | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index f287b6a..7612089 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: scry Title: Small-Count Analysis Methods for High-Dimensional Data -Version: 1.11.1 +Version: 1.12.0 Description: Many modern biological datasets consist of small counts that are not well fit by standard linear-Gaussian methods such as principal component analysis. This package provides implementations of @@ -18,7 +18,7 @@ Authors@R: c(person("Kelly", "Street", email = "street.kelly@gmail.com", ) License: Artistic-2.0 Depends: - R (>= 4.0), + R (>= 4.3), stats, methods Imports: diff --git a/NEWS.md b/NEWS.md index 66e176a..a029c9a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -8,3 +8,9 @@ * Optional adjustment for categorical batch effects for all methods. * Support for SingleCellExperiment and SummarizedExperiment objects * Support for matrix and sparse Matrix objects. + +# scry 1.12 + +* changed from Travis to Github actions +* #21 pull request from eweine to improve memory efficiency +* now requires R 4.3 diff --git a/README.md b/README.md index edc38a1..2bfbafb 100644 --- a/README.md +++ b/README.md @@ -27,12 +27,15 @@ if (!requireNamespace("BiocManager", quietly=TRUE)) BiocManager::install("scry") ``` -The Bioconductor release requires R version 4.0. If you prefer to use the older +The Bioconductor release requires the latest version of R. If you prefer to use the older R 3.6, you can install from the unofficial r3 branch as follows: ``` remotes::install_github("kstreet13/scry@r3") ``` +The r3 branch is not tested as regularly. + + ## Issues and bug reports Please use https://github.com/kstreet13/scry/issues to submit issues, bug reports, and comments. From f6bc5f7052199a3f61a63cbe0b14e688ef7d89da Mon Sep 17 00:00:00 2001 From: Will Townes Date: Sat, 13 Apr 2024 11:17:21 -0400 Subject: [PATCH 6/6] reverse change to DESCRIPTION to avoid merge conflict with pull request --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 7612089..d386e22 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: scry Title: Small-Count Analysis Methods for High-Dimensional Data -Version: 1.12.0 +Version: 1.11.2 Description: Many modern biological datasets consist of small counts that are not well fit by standard linear-Gaussian methods such as principal component analysis. This package provides implementations of