seurat icon indicating copy to clipboard operation
seurat copied to clipboard

Issue with the subset function of Seurat handling layers with one cell

Open leonfodoulian opened this issue 8 months ago • 1 comments

Hi,

This is a follow up on issue #8362.

When you subset a Seurat object with multiple layers and end up with one of the samples represented by only one cell, you can no longer subset the object any further. The reason is that the corresponding layers will be vectors rather than matrices (dense or sparse). And the code returns the following error:

Error in methods::slot(object = object, name = "layers")[[layer]][features,  : 
  incorrect number of dimensions

Below is a reproducible code:

require(Seurat)
obj <- pbmc_small
[email protected]$random <- c("a", "a",
                          sample(x = c("b", "c"),
                                 nrow(x = [email protected]) - 2,
                                 replace = TRUE))
obj[["RNA"]] <- split(x = obj[["RNA"]],
                      f = [email protected]$random)
obj.g2 <- subset(x = obj,
                 subset = groups == "g2")
obj.g2.sub <- subset(x = obj.g2,
                     subset = random %in% c("a", "b"))

And below is my sessionInfo():

> devtools::session_info()
─ Session info ────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.3.1 (2023-06-16)
 os       macOS Monterey 12.7
 system   x86_64, darwin20
 ui       RStudio
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Europe/Zurich
 date     2024-07-01
 rstudio  2023.09.0+463 Desert Sunflower (desktop)
 pandoc   NA

─ Packages ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 package          * version    date (UTC) lib source
 abind              1.4-5      2016-07-21 [1] CRAN (R 4.3.0)
 bitops             1.0-7      2021-04-24 [1] CRAN (R 4.3.0)
 cachem             1.0.8      2023-05-01 [1] CRAN (R 4.3.0)
 caTools            1.18.2     2021-03-28 [1] CRAN (R 4.3.0)
 cli                3.6.2      2023-12-11 [1] CRAN (R 4.3.0)
 cluster            2.1.6      2023-12-01 [1] CRAN (R 4.3.0)
 clustree           0.5.1      2023-11-05 [1] CRAN (R 4.3.0)
 codetools          0.2-20     2024-03-31 [1] CRAN (R 4.3.2)
 colorspace         2.1-0      2023-01-23 [1] CRAN (R 4.3.0)
 cowplot            1.1.3      2024-01-22 [1] CRAN (R 4.3.2)
 data.table         1.15.4     2024-03-30 [1] CRAN (R 4.3.2)
 deldir             2.0-4      2024-02-28 [1] CRAN (R 4.3.2)
 devtools           2.4.5      2022-10-11 [1] CRAN (R 4.3.0)
 digest             0.6.35     2024-03-11 [1] CRAN (R 4.3.2)
 dotCall64          1.1-1      2023-11-28 [1] CRAN (R 4.3.0)
 dplyr              1.1.4      2023-11-17 [1] CRAN (R 4.3.0)
 ellipsis           0.3.2      2021-04-29 [1] CRAN (R 4.3.0)
 fansi              1.0.6      2023-12-08 [1] CRAN (R 4.3.0)
 farver             2.1.1      2022-07-06 [1] CRAN (R 4.3.0)
 fastDummies        1.7.3      2023-07-06 [1] CRAN (R 4.3.0)
 fastmap            1.1.1      2023-02-24 [1] CRAN (R 4.3.0)
 fitdistrplus       1.1-11     2023-04-25 [1] CRAN (R 4.3.0)
 fs                 1.6.3      2023-07-20 [1] CRAN (R 4.3.0)
 future             1.33.2     2024-03-26 [1] CRAN (R 4.3.2)
 future.apply       1.11.2     2024-03-28 [1] CRAN (R 4.3.2)
 generics           0.1.3      2022-07-05 [1] CRAN (R 4.3.0)
 ggforce            0.4.2      2024-02-19 [1] CRAN (R 4.3.2)
 ggplot2            3.5.0      2024-02-23 [1] CRAN (R 4.3.2)
 ggraph             2.2.1      2024-03-07 [1] CRAN (R 4.3.2)
 ggrepel            0.9.5      2024-01-10 [1] CRAN (R 4.3.0)
 ggridges           0.5.6      2024-01-23 [1] CRAN (R 4.3.2)
 globals            0.16.3     2024-03-08 [1] CRAN (R 4.3.2)
 glue               1.7.0      2024-01-09 [1] CRAN (R 4.3.0)
 goftest            1.2-3      2021-10-07 [1] CRAN (R 4.3.0)
 gplots             3.1.3.1    2024-02-02 [1] CRAN (R 4.3.2)
 graphlayouts       1.1.1      2024-03-09 [1] CRAN (R 4.3.2)
 gridExtra          2.3        2017-09-09 [1] CRAN (R 4.3.0)
 gtable             0.3.4      2023-08-21 [1] CRAN (R 4.3.0)
 gtools             3.9.5      2023-11-20 [1] CRAN (R 4.3.0)
 htmltools          0.5.8.1    2024-04-04 [1] CRAN (R 4.3.1)
 htmlwidgets        1.6.4      2023-12-06 [1] CRAN (R 4.3.0)
 httpuv             1.6.15     2024-03-26 [1] CRAN (R 4.3.2)
 httr               1.4.7      2023-08-15 [1] CRAN (R 4.3.0)
 ica                1.0-3      2022-07-08 [1] CRAN (R 4.3.0)
 igraph             2.0.3      2024-03-13 [1] CRAN (R 4.3.2)
 irlba              2.3.5.1    2022-10-03 [1] CRAN (R 4.3.0)
 jsonlite           1.8.8      2023-12-04 [1] CRAN (R 4.3.0)
 KernSmooth         2.23-22    2023-07-10 [1] CRAN (R 4.3.0)
 later              1.3.2      2023-12-06 [1] CRAN (R 4.3.0)
 lattice            0.22-6     2024-03-20 [1] CRAN (R 4.3.2)
 lazyeval           0.2.2      2019-03-15 [1] CRAN (R 4.3.0)
 leiden             0.4.3.1    2023-11-17 [1] CRAN (R 4.3.0)
 lifecycle          1.0.4      2023-11-07 [1] CRAN (R 4.3.0)
 listenv            0.9.1      2024-01-29 [1] CRAN (R 4.3.2)
 lmtest             0.9-40     2022-03-21 [1] CRAN (R 4.3.0)
 magrittr           2.0.3      2022-03-30 [1] CRAN (R 4.3.0)
 MASS               7.3-60.0.1 2024-01-13 [1] CRAN (R 4.3.0)
 Matrix             1.6-5      2024-01-11 [1] CRAN (R 4.3.0)
 matrixStats        1.2.0      2023-12-11 [1] CRAN (R 4.3.0)
 memoise            2.0.1      2021-11-26 [1] CRAN (R 4.3.0)
 mime               0.12       2021-09-28 [1] CRAN (R 4.3.0)
 miniUI             0.1.1.1    2018-05-18 [1] CRAN (R 4.3.0)
 munsell            0.5.1      2024-04-01 [1] CRAN (R 4.3.2)
 nlme               3.1-164    2023-11-27 [1] CRAN (R 4.3.0)
 parallelly         1.37.1     2024-02-29 [1] CRAN (R 4.3.2)
 patchwork          1.2.0      2024-01-08 [1] CRAN (R 4.3.0)
 pbapply            1.7-2      2023-06-27 [1] CRAN (R 4.3.0)
 pillar             1.9.0      2023-03-22 [1] CRAN (R 4.3.0)
 pkgbuild           1.4.4      2024-03-17 [1] CRAN (R 4.3.2)
 pkgconfig          2.0.3      2019-09-22 [1] CRAN (R 4.3.0)
 pkgload            1.3.4      2024-01-16 [1] CRAN (R 4.3.0)
 plotly             4.10.4     2024-01-13 [1] CRAN (R 4.3.0)
 plyr               1.8.9      2023-10-02 [1] CRAN (R 4.3.0)
 png                0.1-8      2022-11-29 [1] CRAN (R 4.3.0)
 polyclip           1.10-6     2023-09-27 [1] CRAN (R 4.3.0)
 profvis            0.3.8      2023-05-02 [1] CRAN (R 4.3.0)
 progressr          0.14.0     2023-08-10 [1] CRAN (R 4.3.0)
 promises           1.2.1      2023-08-10 [1] CRAN (R 4.3.0)
 purrr              1.0.2      2023-08-10 [1] CRAN (R 4.3.0)
 R6                 2.5.1      2021-08-19 [1] CRAN (R 4.3.0)
 RANN               2.6.1      2019-01-08 [1] CRAN (R 4.3.0)
 RColorBrewer       1.1-3      2022-04-03 [1] CRAN (R 4.3.0)
 Rcpp               1.0.12     2024-01-09 [1] CRAN (R 4.3.0)
 RcppAnnoy          0.0.22     2024-01-23 [1] CRAN (R 4.3.2)
 RcppHNSW           0.6.0      2024-02-04 [1] CRAN (R 4.3.2)
 remotes            2.5.0      2024-03-17 [1] CRAN (R 4.3.2)
 reshape2           1.4.4      2020-04-09 [1] CRAN (R 4.3.0)
 reticulate         1.35.0     2024-01-31 [1] CRAN (R 4.3.2)
 rlang              1.1.3      2024-01-10 [1] CRAN (R 4.3.0)
 ROCR               1.0-11     2020-05-02 [1] CRAN (R 4.3.0)
 RSpectra           0.16-1     2022-04-24 [1] CRAN (R 4.3.0)
 rstudioapi         0.16.0     2024-03-24 [1] CRAN (R 4.3.2)
 Rtsne              0.17       2023-12-07 [1] CRAN (R 4.3.0)
 scales             1.3.0      2023-11-28 [1] CRAN (R 4.3.0)
 scattermore        1.2        2023-06-12 [1] CRAN (R 4.3.0)
 sctransform        0.4.1      2023-10-19 [1] CRAN (R 4.3.0)
 sessioninfo        1.2.2      2021-12-06 [1] CRAN (R 4.3.0)
 Seurat           * 5.1.0      2024-05-10 [1] CRAN (R 4.3.3)
 SeuratObject     * 5.0.2      2024-05-08 [1] CRAN (R 4.3.2)
 shiny              1.8.1.1    2024-04-02 [1] CRAN (R 4.3.1)
 sp               * 2.1-3      2024-01-30 [1] CRAN (R 4.3.2)
 spam               2.10-0     2023-10-23 [1] CRAN (R 4.3.0)
 spatstat.data      3.0-4      2024-01-15 [1] CRAN (R 4.3.0)
 spatstat.explore   3.2-7      2024-03-21 [1] CRAN (R 4.3.2)
 spatstat.geom      3.2-9      2024-02-28 [1] CRAN (R 4.3.2)
 spatstat.random    3.2-3      2024-02-29 [1] CRAN (R 4.3.2)
 spatstat.sparse    3.0-3      2023-10-24 [1] CRAN (R 4.3.0)
 spatstat.utils     3.0-4      2023-10-24 [1] CRAN (R 4.3.0)
 stringi            1.8.3      2023-12-11 [1] CRAN (R 4.3.0)
 stringr            1.5.1      2023-11-14 [1] CRAN (R 4.3.0)
 survival           3.5-8      2024-02-14 [1] CRAN (R 4.3.2)
 tensor             1.5        2012-05-05 [1] CRAN (R 4.3.0)
 tibble             3.2.1      2023-03-20 [1] CRAN (R 4.3.0)
 tidygraph          1.3.1      2024-01-30 [1] CRAN (R 4.3.2)
 tidyr              1.3.1      2024-01-24 [1] CRAN (R 4.3.2)
 tidyselect         1.2.1      2024-03-11 [1] CRAN (R 4.3.2)
 tweenr             2.0.3      2024-02-26 [1] CRAN (R 4.3.2)
 urlchecker         1.0.1      2021-11-30 [1] CRAN (R 4.3.0)
 usethis            2.2.3      2024-02-19 [1] CRAN (R 4.3.2)
 utf8               1.2.4      2023-10-22 [1] CRAN (R 4.3.0)
 uwot               0.1.16     2023-06-29 [1] CRAN (R 4.3.0)
 vctrs              0.6.5      2023-12-01 [1] CRAN (R 4.3.0)
 viridis            0.6.5      2024-01-29 [1] CRAN (R 4.3.2)
 viridisLite        0.4.2      2023-05-02 [1] CRAN (R 4.3.0)
 withr              3.0.0      2024-01-16 [1] CRAN (R 4.3.0)
 xtable             1.8-4      2019-04-21 [1] CRAN (R 4.3.0)
 zoo                1.8-12     2023-04-13 [1] CRAN (R 4.3.0)

 [1] /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/library

Best, Leon

leonfodoulian avatar Jul 01 '24 17:07 leonfodoulian