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

No one assigned

    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