From 7b038acb70f5aa1bf7ee9f24d4d6f5e11f116f23 Mon Sep 17 00:00:00 2001 From: timoast <4591688+timoast@users.noreply.github.com> Date: Fri, 21 Jan 2022 16:38:31 -0500 Subject: [PATCH 01/29] Update documentation for RunUMAP; #5514 --- R/generics.R | 9 +++++---- man/RunUMAP.Rd | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/R/generics.R b/R/generics.R index f1a10e795..0b6120813 100644 --- a/R/generics.R +++ b/R/generics.R @@ -444,7 +444,7 @@ RunPCA <- function(object, ...) { #' Run Supervised Latent Semantic Indexing #' #' Run a supervised LSI (SLSI) dimensionality reduction supervised by a -#' cell-cell kernel. SLSI is used to capture a linear transformation of peaks +#' cell-cell kernel. SLSI is used to capture a linear transformation of peaks #' that maximizes its dependency to the given cell-cell kernel. #' #' @param object An object @@ -452,7 +452,7 @@ RunPCA <- function(object, ...) { #' #' @return Returns Seurat object with the SLSI calculation stored in the #' reductions slot -#' +#' #' @export #' #' @rdname RunSLSI @@ -506,8 +506,9 @@ RunTSNE <- function(object, ...) { #' Run UMAP #' #' Runs the Uniform Manifold Approximation and Projection (UMAP) dimensional -#' reduction technique. To run, you must first install the umap-learn python -#' package (e.g. via \code{pip install umap-learn}). Details on this package can be +#' reduction technique. To run using \code{umap.method="umap-learn"}, you must +#' first install the umap-learn python package (e.g. via +#' \code{pip install umap-learn}). Details on this package can be #' found here: \url{https://github.com/lmcinnes/umap}. For a more in depth #' discussion of the mathematics underlying UMAP, see the ArXiv paper here: #' \url{https://arxiv.org/abs/1802.03426}. diff --git a/man/RunUMAP.Rd b/man/RunUMAP.Rd index bbf838065..54b2319ae 100644 --- a/man/RunUMAP.Rd +++ b/man/RunUMAP.Rd @@ -243,8 +243,9 @@ Returns a Seurat object containing a UMAP representation } \description{ Runs the Uniform Manifold Approximation and Projection (UMAP) dimensional -reduction technique. To run, you must first install the umap-learn python -package (e.g. via \code{pip install umap-learn}). Details on this package can be +reduction technique. To run using \code{umap.method="umap-learn"}, you must +first install the umap-learn python package (e.g. via +\code{pip install umap-learn}). Details on this package can be found here: \url{https://github.com/lmcinnes/umap}. For a more in depth discussion of the mathematics underlying UMAP, see the ArXiv paper here: \url{https://arxiv.org/abs/1802.03426}. From 636d252ceb8cf4e43868dae77cf0e7e604792149 Mon Sep 17 00:00:00 2001 From: George Hall <77325372+george-hall-ucl@users.noreply.github.com> Date: Fri, 4 Feb 2022 10:44:38 +0000 Subject: [PATCH 02/29] Add newlines to end of object definitions This is a very minor commit to add newline characters to the end of some object definitions. Previously, if we inspected an AnchorSet object in the console then we got: An AnchorSet object containing anchors between the reference and query Seurat objects. This can be used as input to TransferData.> i.e. the prompt is on the same line as the last line of the message. I presume that this is not deliberate? If it was deliberate then sorry for the pointless change! I made this change for objects with the TransferAnchorSet, IntegrationAnchorSet, ModalityWeights, and SCTModel signatures. Thanks, George --- R/objects.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/objects.R b/R/objects.R index db9f67983..7a3764745 100644 --- a/R/objects.R +++ b/R/objects.R @@ -2274,7 +2274,7 @@ setMethod( definition = function(object) { cat('An AnchorSet object containing', nrow(x = slot(object = object, name = "anchors")), "anchors between the reference and query Seurat objects. \n", - "This can be used as input to TransferData.") + "This can be used as input to TransferData.\n") } ) @@ -2284,7 +2284,7 @@ setMethod( definition = function(object) { cat('An AnchorSet object containing', nrow(x = slot(object = object, name = "anchors")), "anchors between", length(x = slot(object = object, name = "object.list")), "Seurat objects \n", - "This can be used as input to IntegrateData.") + "This can be used as input to IntegrateData.\n") } ) @@ -2295,7 +2295,7 @@ setMethod( cat( 'A ModalityWeights object containing modality weights between', paste(slot(object = object, name = "modality.assay"), collapse = " and "), - "assays \n", "This can be used as input to FindMultiModelNeighbors.") + "assays \n", "This can be used as input to FindMultiModelNeighbors.\n") } ) @@ -2307,7 +2307,7 @@ setMethod( "An sctransform model.\n", " Model formula: ", slot(object = object, name = "model"), "\n Parameters stored for", nrow(x = SCTResults(object = object, slot = "feature.attributes")), "features,", - nrow(x = SCTResults(object = object, slot = "cell.attributes")), "cells") + nrow(x = SCTResults(object = object, slot = "cell.attributes")), "cells.\n") } ) From 3f448aa5eb26a3056a7b77248381883ac642f23b Mon Sep 17 00:00:00 2001 From: samuel-marsh Date: Thu, 10 Feb 2022 10:46:44 -0500 Subject: [PATCH 03/29] diet Seurat misc --- R/objects.R | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/R/objects.R b/R/objects.R index db9f67983..408bd3968 100644 --- a/R/objects.R +++ b/R/objects.R @@ -454,6 +454,7 @@ CreateSCTAssayObject <- function( #' remove all DimReducs) #' @param graphs Only keep a subset of Graphs specified here (if NULL, remove #' all Graphs) +#' @param misc Preserve the `@misc` slot (default is TRUE) #' #' @export #' @concept objects @@ -466,7 +467,8 @@ DietSeurat <- function( features = NULL, assays = NULL, dimreducs = NULL, - graphs = NULL + graphs = NULL, + misc = TRUE ) { object <- UpdateSlots(object = object) assays <- assays %||% FilterObjects(object = object, classes.keep = "Assay") @@ -508,6 +510,11 @@ DietSeurat <- function( } } } + # remove misc when desired + if (isFALSE(x = misc)) { + object@misc <- list() + } + # remove unspecified DimReducs and Graphs all.objects <- FilterObjects(object = object, classes.keep = c('DimReduc', 'Graph')) objects.to.remove <- all.objects[!all.objects %in% c(dimreducs, graphs)] From d116b477028f82b8ff61fc3cc6f00e1d55bf901c Mon Sep 17 00:00:00 2001 From: Saket Choudhary Date: Wed, 2 Mar 2022 10:45:31 -0500 Subject: [PATCH 04/29] Use repr=T as giveCsparse has been deprecated --- R/preprocessing.R | 2 +- man/RunSLSI.Rd | 2 +- tests/testthat/test_load_10X.R | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/R/preprocessing.R b/R/preprocessing.R index 1c54fc605..524f97f9f 100644 --- a/R/preprocessing.R +++ b/R/preprocessing.R @@ -954,7 +954,7 @@ Read10X_h5 <- function(filename, use.names = TRUE, unique.features = TRUE) { p = indptr[], x = as.numeric(x = counts[]), dims = shp[], - giveCsparse = FALSE + repr = "T" ) if (unique.features) { features <- make.unique(names = features) diff --git a/man/RunSLSI.Rd b/man/RunSLSI.Rd index c89ed6886..5b7a05ad6 100644 --- a/man/RunSLSI.Rd +++ b/man/RunSLSI.Rd @@ -74,7 +74,7 @@ reductions slot } \description{ Run a supervised LSI (SLSI) dimensionality reduction supervised by a -cell-cell kernel. SLSI is used to capture a linear transformation of peaks +cell-cell kernel. SLSI is used to capture a linear transformation of peaks that maximizes its dependency to the given cell-cell kernel. } \concept{dimensional_reduction} diff --git a/tests/testthat/test_load_10X.R b/tests/testthat/test_load_10X.R index 0a4dc5d1c..6c4898647 100644 --- a/tests/testthat/test_load_10X.R +++ b/tests/testthat/test_load_10X.R @@ -31,7 +31,7 @@ test_that("Read10X handles missing files properly", { if (requireNamespace("hdf5r", quietly = TRUE)) { context("Load10X_Spatial") dname <- "../testdata/visium" - # txsp <- Read10X_Spatial(outs_path = "../testdata/visium/") + txsp <- Load10X_Spatial(data.dir = '../testdata/visium') test_that("10x Spatial Data Parsing", { expect_is(txsp, "Seurat") From 44a510dd31f9b0dce1780a8b47cc12dd24616ace Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Wed, 2 Mar 2022 12:16:28 -0500 Subject: [PATCH 05/29] Style updates --- R/preprocessing.R | 6 +++++- tests/testthat/test_load_10X.R | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/R/preprocessing.R b/R/preprocessing.R index 524f97f9f..2e108f856 100644 --- a/R/preprocessing.R +++ b/R/preprocessing.R @@ -967,7 +967,11 @@ Read10X_h5 <- function(filename, use.names = TRUE, unique.features = TRUE) { types <- infile[[paste0(genome, '/features/feature_type')]][] types.unique <- unique(x = types) if (length(x = types.unique) > 1) { - message("Genome ", genome, " has multiple modalities, returning a list of matrices for this genome") + message( + "Genome ", + genome, + " has multiple modalities, returning a list of matrices for this genome" + ) sparse.mat <- sapply( X = types.unique, FUN = function(x) { diff --git a/tests/testthat/test_load_10X.R b/tests/testthat/test_load_10X.R index 6c4898647..02b23e6dd 100644 --- a/tests/testthat/test_load_10X.R +++ b/tests/testthat/test_load_10X.R @@ -31,7 +31,6 @@ test_that("Read10X handles missing files properly", { if (requireNamespace("hdf5r", quietly = TRUE)) { context("Load10X_Spatial") dname <- "../testdata/visium" - txsp <- Load10X_Spatial(data.dir = '../testdata/visium') test_that("10x Spatial Data Parsing", { expect_is(txsp, "Seurat") From 8fa9182e906a0af1e40deb4c0c8d5d97a663c5e6 Mon Sep 17 00:00:00 2001 From: Saket Choudhary Date: Wed, 2 Mar 2022 13:19:57 -0500 Subject: [PATCH 06/29] Update NEWS, bump version --- DESCRIPTION | 2 +- NEWS.md | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 4d26cbe00..a95264a4e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: Seurat -Version: 4.1.0 +Version: 4.1.0.9001 Date: 2022-01-14 Title: Tools for Single Cell Genomics Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details. diff --git a/NEWS.md b/NEWS.md index a83239ffa..95c07c81d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,14 @@ +# Unreleased + +## Changes +- Fix `giveCsparse` related warnings in `Read10X_h5` + + + # Seurat 4.1.0 (2022-01-14) ## Added - Add `raster.dpi` parameter to `DimPlot/FeaturePlot` to optionally rasterize individual points ([#5392](https://github.com/satijalab/seurat/pull/5392)) -- Add support for sctransform v2, differential expression on with SCT +- Add support for sctransform v2, differential expression with SCT assay ## Changes - Update `ReadParseBio` to support split-pipe 0.9.6p ([#5446](https://github.com/satijalab/seurat/pull/5446)) From 9a7dc62206bd8298b3abd6b13567ff3a5b7dfbf9 Mon Sep 17 00:00:00 2001 From: Saket Choudhary Date: Fri, 11 Mar 2022 12:46:51 -0500 Subject: [PATCH 07/29] Fix ReadMtx for windows --- R/preprocessing.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/preprocessing.R b/R/preprocessing.R index 2e108f856..a904da0a9 100644 --- a/R/preprocessing.R +++ b/R/preprocessing.R @@ -1110,8 +1110,9 @@ ReadMtx <- function( uri <- normalizePath(all.files[[i]], mustWork = FALSE) err <- paste("Cannot find", names(x = all.files)[i], "at", uri) uri <- build_url(url = parse_url(url = uri)) - if (grepl(pattern = '^:///', x = uri)) { + if (grepl(pattern = '^:///', x = uri) | grepl(pattern = ':\\\\', x = uri)) { uri <- gsub(pattern = '^://', replacement = '', x = uri) + uri <- gsub(pattern = '^:\\\\', replacement = '', x = uri) if (!file.exists(uri)) { stop(err, call. = FALSE) } From afe14791523a36ec1492632ee8251255f5b3c9eb Mon Sep 17 00:00:00 2001 From: timoast <4591688+timoast@users.noreply.github.com> Date: Fri, 25 Mar 2022 14:10:50 -0400 Subject: [PATCH 08/29] Add warning when low number of groups; #5742 --- R/visualization.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/visualization.R b/R/visualization.R index 0f8f0383c..9ea741c49 100644 --- a/R/visualization.R +++ b/R/visualization.R @@ -3542,13 +3542,16 @@ DotPlot <- function( if (!is.null(x = id.levels)) { data.plot$id <- factor(x = data.plot$id, levels = id.levels) } - if (length(x = levels(x = data.plot$id)) == 1) { + ngroup <- length(x = levels(x = data.plot$id)) + if (ngroup == 1) { scale <- FALSE warning( "Only one identity present, the expression values will be not scaled", call. = FALSE, immediate. = TRUE ) + } else if (ngroup < 5 & scale) { + warning("Scaling data with a low number of groups may produce misleading results") } avg.exp.scaled <- sapply( X = unique(x = data.plot$features.plot), From 4024b0c38a8a4009d4889de145385e5b10e7adba Mon Sep 17 00:00:00 2001 From: Andrew Butler Date: Mon, 28 Mar 2022 17:57:27 -0700 Subject: [PATCH 09/29] Fix SpatialPlot legend, update guides deprecation --- R/visualization.R | 9 +++++---- man/DietSeurat.Rd | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/R/visualization.R b/R/visualization.R index 0f8f0383c..7a717b4ba 100644 --- a/R/visualization.R +++ b/R/visualization.R @@ -2418,7 +2418,7 @@ LinkedDimPlot <- function( dims = dims, col.by = group.by, alpha.by = plot.env$alpha.by - ) + scale_alpha_ordinal(range = alpha) + guides(alpha = FALSE) + ) + scale_alpha_ordinal(range = alpha) + guides(alpha = "none") plot.env$dimplot } ) @@ -2555,7 +2555,7 @@ LinkedFeaturePlot <- function( scale_fill_gradientn(name = feature, colours = cols) + theme(legend.position = 'top') + scale_alpha(range = alpha) + - guides(alpha = FALSE) + guides(alpha = "none") plot.env$spatialplot } ) @@ -2914,7 +2914,7 @@ ISpatialFeaturePlot <- function( scale_fill_gradientn(name = plot.env$feature, colours = FeaturePalettes[[plot.env$palette]]) + theme(legend.position = 'top') + scale_alpha(range = c(input$alpha, 1)) + - guides(alpha = FALSE) + guides(alpha = "none") plot.env$plot }) } @@ -3232,7 +3232,7 @@ SpatialPlot <- function( ) + theme(legend.position = 'top') + scale_alpha(range = alpha) + - guides(alpha = FALSE) + guides(alpha = "none") } else if (label) { plot <- LabelClusters( plot = plot, @@ -7666,6 +7666,7 @@ SingleSpatialPlot <- function( colors <- DiscretePalette(length(unique(data[[col.by]])), palette = cols) scale <- scale_fill_manual(values = colors, na.value = na.value) } else { + cols <- cols[names(x = cols) %in% data$ident] scale <- scale_fill_manual(values = cols, na.value = na.value) } plot <- plot + scale diff --git a/man/DietSeurat.Rd b/man/DietSeurat.Rd index 8d6a4e4c3..4df20be2e 100644 --- a/man/DietSeurat.Rd +++ b/man/DietSeurat.Rd @@ -12,7 +12,8 @@ DietSeurat( features = NULL, assays = NULL, dimreducs = NULL, - graphs = NULL + graphs = NULL, + misc = TRUE ) } \arguments{ @@ -33,6 +34,8 @@ remove all DimReducs)} \item{graphs}{Only keep a subset of Graphs specified here (if NULL, remove all Graphs)} + +\item{misc}{Preserve the `@misc` slot (default is TRUE)} } \description{ Keep only certain aspects of the Seurat object. Can be useful in functions that utilize merge as From 4c3cddd70fccc8db447a2b0125a4385c8e2a9ed3 Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Tue, 29 Mar 2022 11:41:43 -0400 Subject: [PATCH 10/29] Bump develop version Update changelog --- DESCRIPTION | 4 ++-- NEWS.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index a95264a4e..876090f3f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: Seurat -Version: 4.1.0.9001 -Date: 2022-01-14 +Version: 4.1.0.9002 +Date: 2022-03-29 Title: Tools for Single Cell Genomics Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details. Authors@R: c( diff --git a/NEWS.md b/NEWS.md index 95c07c81d..13698b3bc 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ ## Changes - Fix `giveCsparse` related warnings in `Read10X_h5` - +- Fix ident labeling for `SpatialPlot` # Seurat 4.1.0 (2022-01-14) From ca683197cba23153f0a1c90010a1f2b75399d213 Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Fri, 1 Apr 2022 16:13:22 -0400 Subject: [PATCH 11/29] Update windows support --- R/preprocessing.R | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/R/preprocessing.R b/R/preprocessing.R index a904da0a9..4f6765faa 100644 --- a/R/preprocessing.R +++ b/R/preprocessing.R @@ -1107,12 +1107,20 @@ ReadMtx <- function( "feature list" = features ) for (i in seq_along(along.with = all.files)) { - uri <- normalizePath(all.files[[i]], mustWork = FALSE) + uri <- tryCatch( + expr = { + con <- url(description = all.files[[i]]) + close(con = con) + all.files[[i]] + }, + error = function(...) { + return(normalizePath(path = all.files[[i]], winslash = '/')) + } + ) err <- paste("Cannot find", names(x = all.files)[i], "at", uri) uri <- build_url(url = parse_url(url = uri)) - if (grepl(pattern = '^:///', x = uri) | grepl(pattern = ':\\\\', x = uri)) { + if (grepl(pattern = '^[A-Z]?:///', x = uri)) { uri <- gsub(pattern = '^://', replacement = '', x = uri) - uri <- gsub(pattern = '^:\\\\', replacement = '', x = uri) if (!file.exists(uri)) { stop(err, call. = FALSE) } From 430a0243da35da492c555321a0f7c00f5b156f63 Mon Sep 17 00:00:00 2001 From: Saket Choudhary Date: Fri, 1 Apr 2022 16:38:03 -0400 Subject: [PATCH 12/29] Update NEWS; Bump version --- DESCRIPTION | 2 +- NEWS.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 876090f3f..9587c258d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: Seurat -Version: 4.1.0.9002 +Version: 4.1.0.9003 Date: 2022-03-29 Title: Tools for Single Cell Genomics Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details. diff --git a/NEWS.md b/NEWS.md index 13698b3bc..ead69f221 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,7 @@ ## Changes - Fix `giveCsparse` related warnings in `Read10X_h5` - Fix ident labeling for `SpatialPlot` +- Fix `ReadMtx` on Windows ([#5687](https://github.com/satijalab/seurat/issues/5687)) # Seurat 4.1.0 (2022-01-14) From de807d515b50fea7d4598d66960627082878db5f Mon Sep 17 00:00:00 2001 From: Tim Stuart <4591688+timoast@users.noreply.github.com> Date: Fri, 8 Apr 2022 17:02:10 -0400 Subject: [PATCH 13/29] remove slot access Co-authored-by: Paul Hoffman --- R/objects.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/objects.R b/R/objects.R index 485e2bd65..1d7adeca7 100644 --- a/R/objects.R +++ b/R/objects.R @@ -512,7 +512,7 @@ DietSeurat <- function( } # remove misc when desired if (isFALSE(x = misc)) { - object@misc <- list() + slot(object = object, name = "misc") <- list() } # remove unspecified DimReducs and Graphs From 716f11650605058a9025b90bf058ec661adec753 Mon Sep 17 00:00:00 2001 From: Tim Stuart <4591688+timoast@users.noreply.github.com> Date: Fri, 8 Apr 2022 17:02:44 -0400 Subject: [PATCH 14/29] Handle NA values Co-authored-by: Paul Hoffman --- R/objects.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/objects.R b/R/objects.R index 1d7adeca7..372889279 100644 --- a/R/objects.R +++ b/R/objects.R @@ -511,7 +511,7 @@ DietSeurat <- function( } } # remove misc when desired - if (isFALSE(x = misc)) { + if (!isTRUE(x = misc)) { slot(object = object, name = "misc") <- list() } From 47b18f3de9ef75c6254bc2fb8d5a61e54d9d79fc Mon Sep 17 00:00:00 2001 From: Tim Stuart <4591688+timoast@users.noreply.github.com> Date: Fri, 8 Apr 2022 17:03:14 -0400 Subject: [PATCH 15/29] Reformat warning message Co-authored-by: Paul Hoffman --- R/visualization.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/R/visualization.R b/R/visualization.R index 9ea741c49..541bdf104 100644 --- a/R/visualization.R +++ b/R/visualization.R @@ -3551,7 +3551,11 @@ DotPlot <- function( immediate. = TRUE ) } else if (ngroup < 5 & scale) { - warning("Scaling data with a low number of groups may produce misleading results") + warning( + "Scaling data with a low number of groups may produce misleading results", + call. = FALSE, + immediate. = TRUE + ) } avg.exp.scaled <- sapply( X = unique(x = data.plot$features.plot), From bca389644f80496611f7b397ec152ebb52625eee Mon Sep 17 00:00:00 2001 From: Tim Stuart <4591688+timoast@users.noreply.github.com> Date: Fri, 8 Apr 2022 17:03:45 -0400 Subject: [PATCH 16/29] Reformat documentation Co-authored-by: Paul Hoffman --- R/objects.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/objects.R b/R/objects.R index 372889279..d94da3e55 100644 --- a/R/objects.R +++ b/R/objects.R @@ -454,7 +454,7 @@ CreateSCTAssayObject <- function( #' remove all DimReducs) #' @param graphs Only keep a subset of Graphs specified here (if NULL, remove #' all Graphs) -#' @param misc Preserve the `@misc` slot (default is TRUE) +#' @param misc Preserve the \code{misc} slot; default is \code{TRUE} #' #' @export #' @concept objects From cb5206f549d8ae402bf7507b4f9c52658e3de3b2 Mon Sep 17 00:00:00 2001 From: samuel-marsh Date: Tue, 12 Apr 2022 12:24:23 -0400 Subject: [PATCH 17/29] fix raster always on --- R/visualization.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/visualization.R b/R/visualization.R index 0f8f0383c..b76c22123 100644 --- a/R/visualization.R +++ b/R/visualization.R @@ -7240,8 +7240,9 @@ SingleExIPlot <- function( if ((nrow(x = data) > 1e5) & !isFALSE(raster)){ message("Rasterizing points since number of points exceeds 100,000.", "\nTo disable this behavior set `raster=FALSE`") + # change raster to TRUE + raster <- TRUE } - raster <- TRUE } if (!is.null(x = seed.use)) { set.seed(seed = seed.use) From dea569c1c65ab9e7a8a90ebb5ec10e5870dff22f Mon Sep 17 00:00:00 2001 From: Saket Choudhary Date: Fri, 15 Apr 2022 15:44:24 -0400 Subject: [PATCH 18/29] Bump version; Update NEWS --- DESCRIPTION | 4 ++-- NEWS.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 9587c258d..616570195 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: Seurat -Version: 4.1.0.9003 -Date: 2022-03-29 +Version: 4.1.0.9004 +Date: 2022-04-15 Title: Tools for Single Cell Genomics Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details. Authors@R: c( diff --git a/NEWS.md b/NEWS.md index ead69f221..d0b67297a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,7 @@ - Fix `giveCsparse` related warnings in `Read10X_h5` - Fix ident labeling for `SpatialPlot` - Fix `ReadMtx` on Windows ([#5687](https://github.com/satijalab/seurat/issues/5687)) +- Fix `VlnPlot` to switch on rasterization only when required ([#5846](https://github.com/satijalab/seurat/pull/5846)) # Seurat 4.1.0 (2022-01-14) From 1e9bfeb40dbce1504a4ea2add6c91c339cd05240 Mon Sep 17 00:00:00 2001 From: Andrew Butler Date: Fri, 15 Apr 2022 20:15:31 -0700 Subject: [PATCH 19/29] fix ncol behavior in SpatialPlot --- NEWS.md | 2 +- R/visualization.R | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index d0b67297a..c922dc497 100644 --- a/NEWS.md +++ b/NEWS.md @@ -5,7 +5,7 @@ - Fix ident labeling for `SpatialPlot` - Fix `ReadMtx` on Windows ([#5687](https://github.com/satijalab/seurat/issues/5687)) - Fix `VlnPlot` to switch on rasterization only when required ([#5846](https://github.com/satijalab/seurat/pull/5846)) - +- Fix `ncol` behavior in `SpatialPlot` # Seurat 4.1.0 (2022-01-14) ## Added diff --git a/R/visualization.R b/R/visualization.R index cfdd0fc34..3e4ab33f1 100644 --- a/R/visualization.R +++ b/R/visualization.R @@ -3286,10 +3286,14 @@ SpatialPlot <- function( # images = GetImage(object = object, mode = 'plotly', image = images) # )) # } - if (length(x = images) > 1 && combine) { - plots <- wrap_plots(plots = plots, ncol = length(x = images)) - } else if (length(x = images == 1) && combine) { - plots <- wrap_plots(plots = plots, ncol = ncol) + if (combine) { + if (!is.null(x = ncol)) { + return(wrap_plots(plots = plots, ncol = ncol)) + } + if (length(x = images) > 1) { + return(wrap_plots(plots = plots, ncol = length(x = images))) + } + return(wrap_plots(plots = plots)) } return(plots) } From fe22ffc5a7c4f14c2837ddc9f853f78944bee467 Mon Sep 17 00:00:00 2001 From: Andrew Butler Date: Mon, 18 Apr 2022 15:27:08 -0700 Subject: [PATCH 20/29] bump version, update NEWS --- DESCRIPTION | 4 ++-- NEWS.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 616570195..a1f48543c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: Seurat -Version: 4.1.0.9004 -Date: 2022-04-15 +Version: 4.1.0.9005 +Date: 2022-04-18 Title: Tools for Single Cell Genomics Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details. Authors@R: c( diff --git a/NEWS.md b/NEWS.md index c922dc497..31fa42a27 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,10 +2,10 @@ ## Changes - Fix `giveCsparse` related warnings in `Read10X_h5` -- Fix ident labeling for `SpatialPlot` +- Fix ident labeling for `SpatialPlot` ([#5774](https://github.com/satijalab/seurat/issues/5774)) - Fix `ReadMtx` on Windows ([#5687](https://github.com/satijalab/seurat/issues/5687)) - Fix `VlnPlot` to switch on rasterization only when required ([#5846](https://github.com/satijalab/seurat/pull/5846)) -- Fix `ncol` behavior in `SpatialPlot` +- Fix `ncol` behavior in `SpatialPlot` ([#5774](https://github.com/satijalab/seurat/issues/5774)) # Seurat 4.1.0 (2022-01-14) ## Added From 6bfe1c68c1e6368286b61330fbf3a09254eae80b Mon Sep 17 00:00:00 2001 From: samuel-marsh Date: Thu, 21 Apr 2022 14:42:14 -0400 Subject: [PATCH 21/29] change defaults --- R/visualization.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/visualization.R b/R/visualization.R index 3e4ab33f1..32ed8bf5a 100644 --- a/R/visualization.R +++ b/R/visualization.R @@ -1873,7 +1873,7 @@ CellScatter <- function( #' @param feature2 Second feature to plot. #' @param cells Cells to include on the scatter plot. #' @param shuffle Whether to randomly shuffle the order of points. This can be -#' useful for crowded plots if points of interest are being buried. (default is FALSE) +#' useful for crowded plots if points of interest are being buried. (default is TRUE) #' @param seed Sets the seed if randomly shuffling the order of points. #' @param group.by Name of one or more metadata columns to group (color) cells by #' (for example, orig.ident); pass 'ident' to group by identity class @@ -1890,7 +1890,7 @@ CellScatter <- function( #' 100,000 #' @param raster.dpi Pixel resolution for rasterized plots, passed to geom_scattermore(). #' Default is c(512, 512). -#' @param jitter Jitter for easier visualization of crowded points +#' @param jitter Jitter for easier visualization of crowded points (default is FALSE) #' #' @return A ggplot object #' @@ -1911,7 +1911,7 @@ FeatureScatter <- function( feature1, feature2, cells = NULL, - shuffle = FALSE, + shuffle = TRUE, seed = 1, group.by = NULL, cols = NULL, @@ -1924,7 +1924,7 @@ FeatureScatter <- function( plot.cor = TRUE, raster = NULL, raster.dpi = c(512, 512), - jitter = TRUE + jitter = FALSE ) { cells <- cells %||% colnames(x = object) if (isTRUE(x = shuffle)) { From f6b382ade51548211ebfee82fe25aa22c76f202e Mon Sep 17 00:00:00 2001 From: samuel-marsh Date: Mon, 25 Apr 2022 08:33:18 -0400 Subject: [PATCH 22/29] shuffle false default --- R/visualization.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/visualization.R b/R/visualization.R index 32ed8bf5a..9e65d7a92 100644 --- a/R/visualization.R +++ b/R/visualization.R @@ -1873,7 +1873,7 @@ CellScatter <- function( #' @param feature2 Second feature to plot. #' @param cells Cells to include on the scatter plot. #' @param shuffle Whether to randomly shuffle the order of points. This can be -#' useful for crowded plots if points of interest are being buried. (default is TRUE) +#' useful for crowded plots if points of interest are being buried. (default is FALSE) #' @param seed Sets the seed if randomly shuffling the order of points. #' @param group.by Name of one or more metadata columns to group (color) cells by #' (for example, orig.ident); pass 'ident' to group by identity class @@ -1911,7 +1911,7 @@ FeatureScatter <- function( feature1, feature2, cells = NULL, - shuffle = TRUE, + shuffle = FALSE, seed = 1, group.by = NULL, cols = NULL, From 5a5dd9e97477f8c03efafbe77d53702f2ccab564 Mon Sep 17 00:00:00 2001 From: Saket Choudhary Date: Mon, 25 Apr 2022 11:06:44 -0400 Subject: [PATCH 23/29] Update documentation, news; bump version --- DESCRIPTION | 4 ++-- NEWS.md | 1 + man/DietSeurat.Rd | 2 +- man/FeatureScatter.Rd | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index a1f48543c..9ca3bb33f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: Seurat -Version: 4.1.0.9005 -Date: 2022-04-18 +Version: 4.1.0.9006 +Date: 2022-04-25 Title: Tools for Single Cell Genomics Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details. Authors@R: c( diff --git a/NEWS.md b/NEWS.md index 31fa42a27..4f4a8b2da 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,6 +6,7 @@ - Fix `ReadMtx` on Windows ([#5687](https://github.com/satijalab/seurat/issues/5687)) - Fix `VlnPlot` to switch on rasterization only when required ([#5846](https://github.com/satijalab/seurat/pull/5846)) - Fix `ncol` behavior in `SpatialPlot` ([#5774](https://github.com/satijalab/seurat/issues/5774)) +- Set `jitter` to FALSE in `FeatureScatter` ([#5876](https://github.com/satijalab/seurat/pull/5876)) # Seurat 4.1.0 (2022-01-14) ## Added diff --git a/man/DietSeurat.Rd b/man/DietSeurat.Rd index 4df20be2e..35b66560e 100644 --- a/man/DietSeurat.Rd +++ b/man/DietSeurat.Rd @@ -35,7 +35,7 @@ remove all DimReducs)} \item{graphs}{Only keep a subset of Graphs specified here (if NULL, remove all Graphs)} -\item{misc}{Preserve the `@misc` slot (default is TRUE)} +\item{misc}{Preserve the \code{misc} slot; default is \code{TRUE}} } \description{ Keep only certain aspects of the Seurat object. Can be useful in functions that utilize merge as diff --git a/man/FeatureScatter.Rd b/man/FeatureScatter.Rd index ab20ab9ae..a6634d840 100644 --- a/man/FeatureScatter.Rd +++ b/man/FeatureScatter.Rd @@ -23,7 +23,7 @@ FeatureScatter( plot.cor = TRUE, raster = NULL, raster.dpi = c(512, 512), - jitter = TRUE + jitter = FALSE ) } \arguments{ @@ -67,7 +67,7 @@ which will automatically use raster if the number of points plotted is greater t \item{raster.dpi}{Pixel resolution for rasterized plots, passed to geom_scattermore(). Default is c(512, 512).} -\item{jitter}{Jitter for easier visualization of crowded points} +\item{jitter}{Jitter for easier visualization of crowded points (default is FALSE)} } \value{ A ggplot object From bb4534589908b4af25129ae8d3257d908fb3bb1d Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Sun, 1 May 2022 15:57:18 -0400 Subject: [PATCH 24/29] Update Cells methods to support new generic --- DESCRIPTION | 2 +- R/objects.R | 8 ++++---- man/Cells.Rd | 10 ++++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 9ca3bb33f..a4a8b78d0 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -66,7 +66,7 @@ Imports: scales, scattermore (>= 0.7), sctransform (>= 0.3.3), - SeuratObject (>= 4.0.4), + SeuratObject (>= 4.1.0), shiny, spatstat.core, spatstat.geom, diff --git a/R/objects.R b/R/objects.R index d94da3e55..d84d74226 100644 --- a/R/objects.R +++ b/R/objects.R @@ -1308,7 +1308,7 @@ as.sparse.H5Group <- function(x, ...) { #' @method Cells SCTModel #' @export #' -Cells.SCTModel <- function(x) { +Cells.SCTModel <- function(x, ...) { return(rownames(x = slot(object = x, name = "cell.attributes"))) } @@ -1320,7 +1320,7 @@ Cells.SCTModel <- function(x) { #' #' @seealso \code{\link[SeuratObject:Cells]{SeuratObject::Cells}} #' -Cells.SlideSeq <- function(x) { +Cells.SlideSeq <- function(x, ...) { return(rownames(x = GetTissueCoordinates(object = x))) } @@ -1330,7 +1330,7 @@ Cells.SlideSeq <- function(x) { #' @method Cells STARmap #' @export #' -Cells.STARmap <- function(x) { +Cells.STARmap <- function(x, ...) { return(rownames(x = GetTissueCoordinates(object = x))) } @@ -1339,7 +1339,7 @@ Cells.STARmap <- function(x) { #' @method Cells VisiumV1 #' @export #' -Cells.VisiumV1 <- function(x) { +Cells.VisiumV1 <- function(x, ...) { return(rownames(x = GetTissueCoordinates(object = x, scale = NULL))) } diff --git a/man/Cells.Rd b/man/Cells.Rd index 8da74d202..4191764b5 100644 --- a/man/Cells.Rd +++ b/man/Cells.Rd @@ -7,16 +7,18 @@ \alias{Cells.VisiumV1} \title{Get Cell Names} \usage{ -\method{Cells}{SCTModel}(x) +\method{Cells}{SCTModel}(x, ...) -\method{Cells}{SlideSeq}(x) +\method{Cells}{SlideSeq}(x, ...) -\method{Cells}{STARmap}(x) +\method{Cells}{STARmap}(x, ...) -\method{Cells}{VisiumV1}(x) +\method{Cells}{VisiumV1}(x, ...) } \arguments{ \item{x}{An object} + +\item{...}{Arguments passed to other methods} } \description{ Get Cell Names From 25c91cf3b394ad7c375890d474890cbf461dffe6 Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Sun, 1 May 2022 15:59:01 -0400 Subject: [PATCH 25/29] Bump develop version; update changelog --- DESCRIPTION | 4 ++-- NEWS.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index a4a8b78d0..cb60cfc6e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: Seurat -Version: 4.1.0.9006 -Date: 2022-04-25 +Version: 4.1.0.9007 +Date: 2022-05-01 Title: Tools for Single Cell Genomics Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details. Authors@R: c( diff --git a/NEWS.md b/NEWS.md index 4f4a8b2da..13a3fc4b8 100644 --- a/NEWS.md +++ b/NEWS.md @@ -7,6 +7,7 @@ - Fix `VlnPlot` to switch on rasterization only when required ([#5846](https://github.com/satijalab/seurat/pull/5846)) - Fix `ncol` behavior in `SpatialPlot` ([#5774](https://github.com/satijalab/seurat/issues/5774)) - Set `jitter` to FALSE in `FeatureScatter` ([#5876](https://github.com/satijalab/seurat/pull/5876)) +- Update `Cells` methods to new signature (`x, ...`) # Seurat 4.1.0 (2022-01-14) ## Added From 264723133176809b33d62378520ac11c12520cbf Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Sun, 1 May 2022 21:38:36 -0400 Subject: [PATCH 26/29] Replace default.stringsAsFactors with getOption --- R/utilities.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/utilities.R b/R/utilities.R index 65741c2a2..d0d76dfba 100644 --- a/R/utilities.R +++ b/R/utilities.R @@ -1610,7 +1610,7 @@ as.data.frame.Matrix <- function( row.names = NULL, optional = FALSE, ..., - stringsAsFactors = default.stringsAsFactors() + stringsAsFactors = getOption(x = "stringsAsFactors", default = FALSE) ) { return(as.data.frame( x = as.matrix(x = x), From 48d35d93b1aeee4ada02ccb708e63cf850df582b Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Sun, 1 May 2022 21:43:46 -0400 Subject: [PATCH 27/29] Bump version; update changelog; update CRAN comments --- DESCRIPTION | 4 ++-- NEWS.md | 2 +- cran-comments.md | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 9ca3bb33f..ebba662dd 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: Seurat -Version: 4.1.0.9006 -Date: 2022-04-25 +Version: 4.1.1 +Date: 2022-05-01 Title: Tools for Single Cell Genomics Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details. Authors@R: c( diff --git a/NEWS.md b/NEWS.md index 4f4a8b2da..df0990813 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# Unreleased +# Seurat 4.1.1 (2022-05-01) ## Changes - Fix `giveCsparse` related warnings in `Read10X_h5` diff --git a/cran-comments.md b/cran-comments.md index ee8f02d38..b0e3dae15 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,7 +1,7 @@ -# Seurat v4.1.0 +# Seurat v4.1.1 ## Test environments -* local Ubuntu 20.04 install, R 4.1.2 +* local Ubuntu 20.04 install, R 4.1.3 * Ubuntu 16.04.6 (on travis-ci), R 4.0.0, R devel * macOS 10.13.6 (on travis-ci), R 4.0.2 * Windows Server 2012 R2 (on AppVeyor), R 4.1.0 Patched @@ -14,6 +14,6 @@ There were no ERRORs, WARNINGs, or NOTEs There no packages that depend on Seurat -There are sixteen packages that import Seurat: CAMML, CDSeq, CIDER, DR.SC, DUBStepR, PhitestR, Platypus, rPanglaoDB, scDiffCom, scMappR, SCRIP, scRNAstat, Signac, SignacX, SoupX, and tidyseurat; this update does not impact their functionality +There are sixteen packages that import Seurat: CAMML, CIDER, DR.SC, DUBStepR, maple, Platypus, rPanglaoDB, scDiffCom, scMappR, SCRIP, scRNAstat, Signac, SignacX, SoupX, spruce, and tidyseurat; this update does not impact their functionality -There are ten packages that suggest Seurat: BisqueRNA, ClustAssess, clustree, conos, DIscBIO, dyngen, harmony, rliger, Rmagic, and VAM; this update does not impact their functionality. +There are twelve packages that suggest Seurat: BisqueRNA, CIARA, ClustAssess, clustree, conos, DIscBIO, dyngen, harmony, rliger, Rmagic, treefit, and VAM; this update does not impact their functionality. From d5bd3c7dbdd8ca3caf01ba67c5ba1655905eaa8f Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Sun, 1 May 2022 21:59:23 -0400 Subject: [PATCH 28/29] Update docs --- man/as.sparse.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/as.sparse.Rd b/man/as.sparse.Rd index 1872e4fe8..481122512 100644 --- a/man/as.sparse.Rd +++ b/man/as.sparse.Rd @@ -12,7 +12,7 @@ row.names = NULL, optional = FALSE, ..., - stringsAsFactors = default.stringsAsFactors() + stringsAsFactors = getOption(x = "stringsAsFactors", default = FALSE) ) } \arguments{ From f455363ca7b20430ac24af217b5f7e701ffbbc61 Mon Sep 17 00:00:00 2001 From: Paul Hoffman Date: Sun, 1 May 2022 22:19:15 -0400 Subject: [PATCH 29/29] Update cran-comments.md --- cran-comments.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/cran-comments.md b/cran-comments.md index b0e3dae15..2e206a8e3 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -8,7 +8,21 @@ * win-builder (release, devel) ## R CMD check results -There were no ERRORs, WARNINGs, or NOTEs +There were no ERRORs or WARNINGs + +There was one NOTE: + +* checking CRAN incoming feasibility ... NOTE +Maintainer: 'Paul Hoffman ' + +Found the following (possibly) invalid URLs: + URL: https://www.science.org/doi/abs/10.1126/science.aad0501 + From: man/cc.genes.Rd + man/cc.genes.updated.2019.Rd + Status: 503 + Message: Service Unavailable + +This URL is valid and the service still exists. When navigating to the URL either via the documentation or directly, you are taken to the correct article ## Downstream dependencies