Skip to content

Commit d9f09de

Browse files
authored
Merge pull request #808 from satijalab/release/4.4.0
Release/4.4.0
2 parents f20de9d + 820f29d commit d9f09de

13 files changed

+111
-103
lines changed

DESCRIPTION

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: Seurat
2-
Version: 4.3.0.9013
3-
Date: 2023-07-21
2+
Version: 4.4.0
3+
Date: 2023-09-26
44
Title: Tools for Single Cell Genomics
55
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) <doi:10.1038/nbt.3192>, Macosko E, Basu A, Satija R, et al (2015) <doi:10.1016/j.cell.2015.05.002>, Stuart T, Butler A, et al (2019) <doi:10.1016/j.cell.2019.05.031>, and Hao, Hao, et al (2020) <doi:10.1101/2020.10.12.335331> for more details.
66
Authors@R: c(
@@ -58,6 +58,7 @@ Imports:
5858
plotly (>= 4.9.0),
5959
png,
6060
progressr,
61+
purrr,
6162
RANN,
6263
RColorBrewer,
6364
Rcpp (>= 1.0.7),
@@ -67,9 +68,9 @@ Imports:
6768
ROCR,
6869
Rtsne,
6970
scales,
70-
scattermore (>= 0.7),
71-
sctransform (>= 0.3.5),
72-
SeuratObject (>= 4.1.3),
71+
scattermore (>= 1.2),
72+
sctransform (>= 0.4.0),
73+
SeuratObject (>= 4.1.4),
7374
shiny,
7475
spatstat.explore,
7576
spatstat.geom,

NAMESPACE

+1
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,7 @@ importFrom(plotly,plot_ly)
674674
importFrom(plotly,raster2uri)
675675
importFrom(png,readPNG)
676676
importFrom(progressr,progressor)
677+
importFrom(purrr,imap)
677678
importFrom(reticulate,import)
678679
importFrom(reticulate,py_module_available)
679680
importFrom(reticulate,py_set_seed)

NEWS.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Unreleased
1+
# Seurat 4.4.0 (2023-09-27)
22

33
## Added
44
- Added parallelization support with speed improvements for `PrepSCTFindMarkers`
@@ -7,11 +7,12 @@
77
## Changes
88
- Fix bug in `as.Seurat.SingleCellExperiment()` ([#6692](https://github.com/satijalab/seurat/issues/6692))
99
- Support for Visium probe information introduced in Spaceranger 2.1 ([#7141](https://github.com/satijalab/seurat/pull/7141))
10-
- Add `LoadCurioSeeker` to load sequencing-based spatial datasets generated using the Curio Seeker ([#744](https://github.com/satijalab/seurat-private/pull/744))
11-
- Fix fold change calculation for assays ([#739](https://github.com/satijalab/seurat-private/pull/739))
10+
- Add `LoadCurioSeeker` to load sequencing-based spatial datasets generated using the Curio Seeker
11+
- Fix fold change calculation for assays ([#7095](https://github.com/satijalab/seurat/issues/7095))
1212
- Fix `pt.size` bug when rasterization is set to true ([#7379](https://github.com/satijalab/seurat/issues/7379))
1313
- Fix `FoldChange` and `FindMarkers` to support all normalization approaches ([#7115](https://github.com/satijalab/seurat/pull/7115),[#7110](https://github.com/satijalab/seurat/issues/7110),[#7095](https://github.com/satijalab/seurat/issues/7095),[#6976](https://github.com/satijalab/seurat/issues/6976),[#6654](https://github.com/satijalab/seurat/issues/6654),[#6701](https://github.com/satijalab/seurat/issues/6701),[#6773](https://github.com/satijalab/seurat/issues/6773), [#7107](https://github.com/satijalab/seurat/issues/7107))
1414
- Fix for handling newer ParseBio formats in `ReadParseBio` ([#7565](https://github.com/satijalab/seurat/pull/7565))
15+
- Fix for handling rasterization by default ([#7842](https://github.com/satijalab/seurat/pull/7842))
1516

1617
# Seurat 4.3.0 (2022-11-18)
1718

R/preprocessing.R

+2-1
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,7 @@ GetResidual <- function(
488488
#' @importFrom png readPNG
489489
#' @importFrom grid rasterGrob
490490
#' @importFrom jsonlite fromJSON
491+
#' @importFrom purrr imap
491492
#'
492493
#' @export
493494
#' @concept preprocessing
@@ -519,7 +520,7 @@ Load10X_Spatial <- function(
519520

520521
if (to.upper) {
521522
data <- imap(data, ~{
522-
rownames(.x) <- toupper(rownames(.x))
523+
rownames(.x) <- toupper(x = rownames(.x))
523524
.x
524525
})
525526
}

R/visualization.R

+7-7
Original file line numberDiff line numberDiff line change
@@ -4009,7 +4009,7 @@ SpatialPlot <- function(
40094009
}
40104010

40114011
# Get feature max for individual feature
4012-
if (!(is.null(x = keep.scale)) && keep.scale == "feature" && class(x = data[, features[j]]) != "factor") {
4012+
if (!(is.null(x = keep.scale)) && keep.scale == "feature" && !inherits(x = data[, features[j]], what = "factor") ) {
40134013
max.feature.value <- max(data[, features[j]])
40144014
}
40154015

@@ -4085,7 +4085,7 @@ SpatialPlot <- function(
40854085
}
40864086

40874087
# Plot multiple images depending on keep.scale
4088-
if (!(is.null(x = keep.scale)) && class(x = data[, features[j]]) != "factor") {
4088+
if (!(is.null(x = keep.scale)) && !inherits(x = data[, features[j]], "factor")) {
40894089
plot <- suppressMessages(plot & scale_fill_gradientn(colors = SpatialColors(n = 100), limits = c(NA, max.feature.value)))
40904090
}
40914091

@@ -4885,7 +4885,7 @@ AutoPointSize <- function(data, raster = NULL) {
48854885
#' hexadecimal codes
48864886
#' @param threshold Intensity threshold for light/dark cutoff; intensities
48874887
#' greater than \code{theshold} yield \code{dark}, others yield \code{light}
4888-
#' @param w3c Use \href{http://www.w3.org/TR/WCAG20/}{W3C} formula for calculating
4888+
#' @param w3c Use \href{https://www.w3.org/TR/WCAG20/}{W3C} formula for calculating
48894889
#' background text color; ignores \code{threshold}
48904890
#' @param dark Color for dark text
48914891
#' @param light Color for light text
@@ -7802,7 +7802,7 @@ globalVariables(names = '..density..', package = 'Seurat')
78027802
#' @param cols An optional vector of colors to use
78037803
#' @param pt.size Point size for the plot
78047804
#' @param smooth Make a smoothed scatter plot
7805-
#' @param rows.highight A vector of rows to highlight (like cells.highlight in
7805+
#' @param rows.highlight A vector of rows to highlight (like cells.highlight in
78067806
#' \code{\link{SingleDimPlot}})
78077807
#' @param legend.title Optional legend title
78087808
#' @param raster Convert points to raster format, default is \code{NULL}
@@ -7842,7 +7842,7 @@ SingleCorPlot <- function(
78427842
jitter = TRUE
78437843
) {
78447844
pt.size <- pt.size %||% AutoPointSize(data = data, raster = raster)
7845-
if ((nrow(x = data) > 1e5) & !isFALSE(raster)){
7845+
if ((nrow(x = data) > 1e5) & !is.null(x = raster)){
78467846
message("Rasterizing points since number of points exceeds 100,000.",
78477847
"\nTo disable this behavior set `raster=FALSE`")
78487848
}
@@ -8051,7 +8051,7 @@ SingleDimPlot <- function(
80518051
raster = NULL,
80528052
raster.dpi = NULL
80538053
) {
8054-
if ((nrow(x = data) > 1e5) & !isFALSE(raster)){
8054+
if ((nrow(x = data) > 1e5) & is.null(x = raster)){
80558055
message("Rasterizing points since number of points exceeds 100,000.",
80568056
"\nTo disable this behavior set `raster=FALSE`")
80578057
}
@@ -8245,7 +8245,7 @@ SingleExIPlot <- function(
82458245
if (PackageCheck('ggrastr', error = FALSE)) {
82468246
# Set rasterization to true if ggrastr is installed and
82478247
# number of points exceeds 100,000
8248-
if ((nrow(x = data) > 1e5) & !isFALSE(raster)){
8248+
if ((nrow(x = data) > 1e5) & is.null(x = raster)){
82498249
message("Rasterizing points since number of points exceeds 100,000.",
82508250
"\nTo disable this behavior set `raster=FALSE`")
82518251
# change raster to TRUE

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[![CRAN Version](https://www.r-pkg.org/badges/version/Seurat)](https://cran.r-project.org/package=Seurat)
44
[![CRAN Downloads](https://cranlogs.r-pkg.org/badges/Seurat)](https://cran.r-project.org/package=Seurat)
55

6-
# Seurat v4.3.0
6+
# Seurat v4.4.0
77

88
Seurat is an R toolkit for single cell genomics, developed and maintained by the Satija Lab at NYGC.
99

cran-comments.md

+5-19
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,16 @@
1-
# Seurat v4.2.1
1+
# Seurat v4.4.0
22

33
## Test environments
4-
* local Ubuntu 20.04 install, R 4.1.3
4+
* local Ubuntu 20.04 install, R 4.3.1
55
* win-builder (release, devel)
66

77
## R CMD check results
8-
There were no ERRORs or WARNINGs
9-
10-
There was one NOTE:
11-
12-
* checking CRAN incoming feasibility ... NOTE
13-
Maintainer: 'Paul Hoffman <[email protected]>'
14-
15-
Found the following (possibly) invalid URLs:
16-
URL: https://www.science.org/doi/abs/10.1126/science.aad0501
17-
From: man/cc.genes.Rd
18-
man/cc.genes.updated.2019.Rd
19-
Status: 503
20-
Message: Service Unavailable
21-
22-
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
8+
There were no ERRORs or WARNINGs.
239

2410
## Downstream dependencies
2511

2612
There no packages that depend on Seurat
2713

28-
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
14+
There are forty-five packages that import Seurat: AnanseSeurat, APL, bbknnR, benchdamic, CAMML, CIDER, COTAN, CSCDRNA, Dino, DR.SC, DWLS, ggsector, gsdensity, infercnv, IRISFGM, mixhvg, Nebulosa, pipeComp, PRECAST, ProFAST, rPanglaoDB, scAnnotate, scBFA, scBubbletree, scCB2, scDataviz, scDiffCom, scFeatures, scGate, scMappR, scperturbR, scpoisson, SCRIP, scRNAseqApp, scRNAstat, scTreeViz, SignacX, singleCellTK, SoupX, Spaniel, SPECK, speckle, SpotClean, stJoincount, and STREAK; this update does not impact their functionality
2915

30-
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.
16+
There are fifty-one packages that suggest Seurat: ASURAT, BayesSpace, BisqueRNA, Canek, cellpypes, CIARA, ClustAssess, clustifyr, clustifyrdatahub, clustree, combiroc, conos, countland, CRMetrics, decoupleR, DIscBIO, dittoSeq, dorothea, dyngen, EasyCellType, EpiMix, escape, fcoex, FEAST, fgsea, GeomxTools, grandR, harmony, M3Drop, MOFA2, monocle, muscData, progeny, RESET, rliger, SCORPIUS, SCpubr, scRepertoire, scTensor, Signac, SimBenchData, SimBu, spatialHeatmap, SPOTlight, TAPseq, TCGAbiolinks, tidybulk, treefit, tricycle, UCell, and VAM; this update does not impact their functionality.

inst/CITATION

+57-49
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
citHeader("To cite Seurat in publications, please use:")
22

3-
citEntry(entry = "article",
4-
author = personList(as.person("Yuhan Hao"),
5-
as.person("Stephanie Hao"),
6-
as.person("Erica Andersen-Nissen"),
7-
as.person("William M. Mauck III"),
8-
as.person("Shiwei Zheng"),
9-
as.person("Andrew Butler"),
10-
as.person("Maddie J. Lee"),
11-
as.person("Aaron J. Wilk"),
12-
as.person("Charlotte Darby"),
13-
as.person("Michael Zagar"),
14-
as.person("Paul Hoffman"),
15-
as.person("Marlon Stoeckius"),
16-
as.person("Efthymia Papalexi"),
17-
as.person("Eleni P. Mimitou"),
18-
as.person("Jaison Jain"),
19-
as.person("Avi Srivastava"),
20-
as.person("Tim Stuart"),
21-
as.person("Lamar B. Fleming"),
22-
as.person("Bertrand Yeung"),
23-
as.person("Angela J. Rogers"),
24-
as.person("Juliana M. McElrath"),
25-
as.person("Catherine A. Blish"),
26-
as.person("Raphael Gottardo"),
27-
as.person("Peter Smibert"),
28-
as.person("Rahul Satija")),
3+
bibentry(bibtype = "article",
4+
author = c(
5+
as.person("Yuhan Hao"),
6+
as.person("Stephanie Hao"),
7+
as.person("Erica Andersen-Nissen"),
8+
as.person("William M. Mauck III"),
9+
as.person("Shiwei Zheng"),
10+
as.person("Andrew Butler"),
11+
as.person("Maddie J. Lee"),
12+
as.person("Aaron J. Wilk"),
13+
as.person("Charlotte Darby"),
14+
as.person("Michael Zagar"),
15+
as.person("Paul Hoffman"),
16+
as.person("Marlon Stoeckius"),
17+
as.person("Efthymia Papalexi"),
18+
as.person("Eleni P. Mimitou"),
19+
as.person("Jaison Jain"),
20+
as.person("Avi Srivastava"),
21+
as.person("Tim Stuart"),
22+
as.person("Lamar B. Fleming"),
23+
as.person("Bertrand Yeung"),
24+
as.person("Angela J. Rogers"),
25+
as.person("Juliana M. McElrath"),
26+
as.person("Catherine A. Blish"),
27+
as.person("Raphael Gottardo"),
28+
as.person("Peter Smibert"),
29+
as.person("Rahul Satija")
30+
),
2931
title = "Integrated analysis of multimodal single-cell data",
3032
journal = "Cell",
3133
year = "2021",
@@ -34,17 +36,19 @@ citEntry(entry = "article",
3436
textVersion = "Hao and Hao et al. Integrated analysis of multimodal single-cell data. Cell (2021) [Seurat V4]"
3537
)
3638

37-
citEntry(entry = "article",
38-
author = personList(as.person("Tim Stuart"),
39-
as.person("Andrew Butler"),
40-
as.person("Paul Hoffman"),
41-
as.person("Christoph Hafemeister"),
42-
as.person("Efthymia Papalexi"),
43-
as.person("William M Mauck III"),
44-
as.person("Yuhan Hao"),
45-
as.person("Marlon Stoeckius"),
46-
as.person("Peter Smibert"),
47-
as.person("Rahul Satija")),
39+
bibentry(bibtype = "article",
40+
author = c(
41+
as.person("Tim Stuart"),
42+
as.person("Andrew Butler"),
43+
as.person("Paul Hoffman"),
44+
as.person("Christoph Hafemeister"),
45+
as.person("Efthymia Papalexi"),
46+
as.person("William M Mauck III"),
47+
as.person("Yuhan Hao"),
48+
as.person("Marlon Stoeckius"),
49+
as.person("Peter Smibert"),
50+
as.person("Rahul Satija")
51+
),
4852
title = "Comprehensive Integration of Single-Cell Data",
4953
journal = "Cell",
5054
year = "2019",
@@ -55,12 +59,14 @@ citEntry(entry = "article",
5559
textVersion = "Stuart and Butler et al. Comprehensive Integration of Single-Cell Data. Cell (2019) [Seurat V3]"
5660
)
5761

58-
citEntry(entry = "article",
59-
author = personList(as.person("Andrew Butler"),
60-
as.person("Paul Hoffman"),
61-
as.person("Peter Smibert"),
62-
as.person("Efthymia Papalexi"),
63-
as.person("Rahul Satija")),
62+
bibentry(bibtype = "article",
63+
author = c(
64+
as.person("Andrew Butler"),
65+
as.person("Paul Hoffman"),
66+
as.person("Peter Smibert"),
67+
as.person("Efthymia Papalexi"),
68+
as.person("Rahul Satija")
69+
),
6470
title = "Integrating single-cell transcriptomic data across different conditions, technologies, and species",
6571
journal = "Nature Biotechnology",
6672
year = "2018",
@@ -71,12 +77,14 @@ citEntry(entry = "article",
7177
textVersion = "Butler et al. Integrating single-cell transcriptomic data across different conditions, technologies, and species. Nat Biotechnol (2018) [Seurat V2]"
7278
)
7379

74-
citEntry(entry = "article",
75-
author = personList(as.person("Rahul Satija"),
76-
as.person("Jeffrey A Farrell"),
77-
as.person("David Gennert"),
78-
as.person("Alexander F Schier"),
79-
as.person("Aviv Regev")),
80+
bibentry(bibtype = "article",
81+
author = c(
82+
as.person("Rahul Satija"),
83+
as.person("Jeffrey A Farrell"),
84+
as.person("David Gennert"),
85+
as.person("Alexander F Schier"),
86+
as.person("Aviv Regev")
87+
),
8088
title = "Spatial reconstruction of single-cell gene expression data",
8189
journal = "Nature Biotechnology",
8290
year = "2015",

man/BGTextColor.Rd

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/SingleCorPlot.Rd

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)