Skip to content

Conversion to Seurat fails when a dimension is 0 #357

@lazappi

Description

@lazappi

Example:

library(anndataR)

adata <- AnnData(X = matrix(nrow = 10, ncol = 0))
adata$as_Seurat()
#> Warning: No "counts" or "data" layer found in `names(layers_mapping)`, this may lead to
#> unexpected results when using the resulting <Seurat> object.
#> Warning: Data is of class matrix. Coercing to dgCMatrix.
#> Error: No feature overlap between existing object and new layer data

Created on 2025-09-25 with reprex v2.1.1

Session info

sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.5.1 (2025-06-13)
#>  os       Ubuntu 24.04.3 LTS
#>  system   x86_64, linux-gnu
#>  ui       X11
#>  language en_AU:en
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Europe/Berlin
#>  date     2025-09-25
#>  pandoc   3.6.3 @ /usr/lib/rstudio/resources/app/bin/quarto/bin/tools/x86_64/ (via rmarkdown)
#>  quarto   1.7.32 @ /usr/local/bin/quarto
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package          * version date (UTC) lib source
#>  abind              1.4-8   2024-09-12 [1] RSPM
#>  anndataR         * 0.99.2  2025-09-25 [1] Bioconductor
#>  cli                3.6.5   2025-04-23 [1] RSPM
#>  cluster            2.1.8.1 2025-03-12 [2] CRAN (R 4.5.1)
#>  codetools          0.2-20  2024-03-31 [2] CRAN (R 4.5.1)
#>  cowplot            1.2.0   2025-07-07 [1] RSPM
#>  data.table         1.17.8  2025-07-10 [1] RSPM
#>  deldir             2.0-4   2024-02-28 [1] RSPM
#>  digest             0.6.37  2024-08-19 [1] RSPM
#>  dotCall64          1.2     2024-10-04 [1] RSPM
#>  dplyr              1.1.4   2023-11-17 [1] RSPM
#>  evaluate           1.0.4   2025-06-18 [1] RSPM
#>  farver             2.1.2   2024-05-13 [1] RSPM
#>  fastDummies        1.7.5   2025-01-20 [1] RSPM
#>  fastmap            1.2.0   2024-05-15 [1] RSPM
#>  fitdistrplus       1.2-4   2025-07-03 [1] RSPM
#>  fs                 1.6.6   2025-04-12 [1] RSPM
#>  future             1.67.0  2025-07-29 [1] RSPM
#>  future.apply       1.20.0  2025-06-06 [1] RSPM
#>  generics           0.1.4   2025-05-09 [1] RSPM
#>  ggplot2            3.5.2   2025-04-09 [1] RSPM
#>  ggrepel            0.9.6   2024-09-07 [1] RSPM
#>  ggridges           0.5.6   2024-01-23 [1] RSPM
#>  globals            0.18.0  2025-05-08 [1] RSPM
#>  glue               1.8.0   2024-09-30 [1] RSPM
#>  goftest            1.2-3   2021-10-07 [1] RSPM
#>  gridExtra          2.3     2017-09-09 [1] RSPM
#>  gtable             0.3.6   2024-10-25 [1] RSPM
#>  htmltools          0.5.8.1 2024-04-04 [1] RSPM
#>  htmlwidgets        1.6.4   2023-12-06 [1] RSPM
#>  httpuv             1.6.16  2025-04-16 [1] RSPM
#>  httr               1.4.7   2023-08-15 [1] RSPM
#>  ica                1.0-3   2022-07-08 [1] RSPM
#>  igraph             2.1.4   2025-01-23 [1] RSPM
#>  irlba              2.3.5.1 2022-10-03 [1] RSPM
#>  jsonlite           2.0.0   2025-03-27 [1] RSPM
#>  KernSmooth         2.23-26 2025-01-01 [2] CRAN (R 4.5.1)
#>  knitr              1.50    2025-03-16 [1] RSPM
#>  later              1.4.2   2025-04-08 [1] RSPM
#>  lattice            0.22-7  2025-04-02 [1] RSPM
#>  lazyeval           0.2.2   2019-03-15 [1] RSPM
#>  lifecycle          1.0.4   2023-11-07 [1] RSPM
#>  listenv            0.9.1   2024-01-29 [1] RSPM
#>  lmtest             0.9-40  2022-03-21 [1] RSPM
#>  magrittr           2.0.3   2022-03-30 [1] RSPM
#>  MASS               7.3-65  2025-02-28 [2] CRAN (R 4.5.1)
#>  Matrix             1.7-3   2025-03-11 [2] CRAN (R 4.5.1)
#>  matrixStats        1.5.0   2025-01-07 [1] RSPM
#>  mime               0.13    2025-03-17 [1] RSPM
#>  miniUI             0.1.2   2025-04-17 [1] RSPM
#>  nlme               3.1-168 2025-03-31 [2] CRAN (R 4.5.1)
#>  parallelly         1.45.1  2025-07-24 [1] RSPM
#>  patchwork          1.3.1   2025-06-21 [1] RSPM
#>  pbapply            1.7-4   2025-07-20 [1] RSPM
#>  pillar             1.11.0  2025-07-04 [1] RSPM
#>  pkgconfig          2.0.3   2019-09-22 [1] RSPM
#>  plotly             4.11.0  2025-06-19 [1] RSPM
#>  plyr               1.8.9   2023-10-02 [1] RSPM
#>  png                0.1-8   2022-11-29 [1] RSPM
#>  polyclip           1.10-7  2024-07-23 [1] RSPM
#>  progressr          0.15.1  2024-11-22 [1] RSPM
#>  promises           1.3.3   2025-05-29 [1] RSPM
#>  purrr              1.1.0   2025-07-10 [1] RSPM
#>  R6                 2.6.1   2025-02-15 [1] RSPM
#>  RANN               2.6.2   2024-08-25 [1] RSPM
#>  RColorBrewer       1.1-3   2022-04-03 [1] RSPM
#>  Rcpp               1.1.0   2025-07-02 [1] RSPM
#>  RcppAnnoy          0.0.22  2024-01-23 [1] RSPM
#>  RcppHNSW           0.6.0   2024-02-04 [1] RSPM
#>  reprex             2.1.1   2024-07-06 [1] RSPM
#>  reshape2           1.4.4   2020-04-09 [1] RSPM
#>  reticulate         1.43.0  2025-07-21 [1] RSPM
#>  rlang              1.1.6   2025-04-11 [1] RSPM
#>  rmarkdown          2.29    2024-11-04 [1] RSPM
#>  ROCR               1.0-11  2020-05-02 [1] RSPM
#>  RSpectra           0.16-2  2024-07-18 [1] RSPM
#>  rstudioapi         0.17.1  2024-10-22 [1] RSPM
#>  Rtsne              0.17    2023-12-07 [1] RSPM
#>  scales             1.4.0   2025-04-24 [1] RSPM
#>  scattermore        1.2     2023-06-12 [1] RSPM
#>  sctransform        0.4.2   2025-04-30 [1] RSPM
#>  sessioninfo        1.2.3   2025-02-05 [1] RSPM
#>  Seurat             5.3.0   2025-04-23 [1] RSPM
#>  SeuratObject       5.1.0   2025-04-22 [1] RSPM
#>  shiny              1.11.1  2025-07-03 [1] RSPM
#>  sp                 2.2-0   2025-02-01 [1] RSPM
#>  spam               2.11-1  2025-01-20 [1] RSPM
#>  spatstat.data      3.1-6   2025-03-17 [1] RSPM
#>  spatstat.explore   3.5-2   2025-07-22 [1] RSPM
#>  spatstat.geom      3.5-0   2025-07-20 [1] RSPM
#>  spatstat.random    3.4-1   2025-05-20 [1] CRAN (R 4.5.0)
#>  spatstat.sparse    3.1-0   2024-06-21 [1] RSPM
#>  spatstat.univar    3.1-4   2025-07-13 [1] RSPM
#>  spatstat.utils     3.1-5   2025-07-17 [1] RSPM
#>  stringi            1.8.7   2025-03-27 [1] RSPM
#>  stringr            1.5.1   2023-11-14 [1] RSPM
#>  survival           3.8-3   2024-12-17 [2] CRAN (R 4.5.1)
#>  tensor             1.5.1   2025-06-17 [1] RSPM
#>  tibble             3.3.0   2025-06-08 [1] RSPM
#>  tidyr              1.3.1   2024-01-24 [1] RSPM
#>  tidyselect         1.2.1   2024-03-11 [1] RSPM
#>  uwot               0.2.3   2025-02-24 [1] RSPM
#>  vctrs              0.6.5   2023-12-01 [1] RSPM
#>  viridisLite        0.4.2   2023-05-02 [1] RSPM
#>  withr              3.0.2   2024-10-28 [1] RSPM
#>  xfun               0.52    2025-04-02 [1] RSPM
#>  xtable             1.8-4   2019-04-21 [1] RSPM
#>  yaml               2.3.10  2024-07-26 [1] RSPM
#>  zoo                1.8-14  2025-04-10 [1] RSPM
#> 
#>  [1] /home/luke/R/x86_64-pc-linux-gnu-library/4.5
#>  [2] /opt/R/4.5.1/lib/R/library
#>  * ── Packages attached to the search path.
#> 
#> ──────────────────────────────────────────────────────────────────────────────

It might not be possible to create a Seurat with this shape, in which case we should add a check and give a more useful error.

Metadata

Metadata

Assignees

Labels

SeuratIssues related to Seurat object conversion

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions