Skip to contents

Introduction

This vignette provides an overview of the current development status of the anndataR package. It provides details on the current implementation of different features as well as listing known issues.

Objects

These tables show the status of the implementation of different AnnData back ends.

HDF5AnnData

Slot Getter Getter test Setter Setter test
layers ✅ ✅ ✅ ✅
obs ✅ ✅ ✅ ✅
obs_names ✅ ✅ ✅ ✅
obsm ✅ ✅ ✅ ✅
obsp ✅ ✅ ✅ ✅
raw
uns ✅ ✅ ✅
var ✅ ✅ ✅ ✅
var_names ✅ ✅ ✅ ✅
varm ✅ ✅ ✅ ✅
varp ✅ ✅ ✅ ✅
X ✅ ✅ ✅ ✅

InMemoryAnnData

Slot Getter Getter test Setter Setter test
layers ✅ ✅ ✅ ✅
obs ✅ ✅ ✅ ✅
obs_names ✅ ✅ ✅ ✅
obsm ✅ ✅
obsp ✅ ✅
raw
uns ✅ ✅
var ✅ ✅ ✅ ✅
var_names ✅ ✅ ✅ ✅
varm ✅ ✅
varp ✅ ✅
X ✅ ✅ ✅ ✅

ReticulateAnnData

Slot Getter Getter test Setter Setter test
layers ✅ ✅ ✅ ✅
obs ✅ ✅ ✅ ✅
obs_names ✅ ✅ ✅ ✅
obsm ✅ ✅ ✅ ✅
obsp ✅ ✅ ✅ ✅
uns ✅ ✅ ✅ ✅
var ✅ ✅ ✅ ✅
var_names ✅ ✅ ✅ ✅
varm ✅ ✅ ✅ ✅
varp ✅ ✅ ✅ ✅
X ✅ ✅ ✅ ✅

ZarrAnnData

Slot Getter Getter test Setter Setter test
layers ✅ ✅ ✅ ✅
obs ✅ ✅ ✅ ✅
obs_names ✅ ✅ ✅ ✅
obsm ✅ ✅ ✅
obsp ✅ ✅ ✅ ✅
raw
uns ✅ ✅ ✅
var ✅ ✅ ✅ ✅
var_names ✅ ✅ ✅ ✅
varm ✅ ✅ ✅
varp ✅ ✅ ✅ ✅
X ✅ ✅ ✅ ✅

Conversion

These tables show the implementation status of conversion between AnnData and other objects.

SingleCellExperiment

Slot From From test To To test
layers ✅ ✅ ✅ ✅
obs ✅ ✅ ✅ ✅
obs_names ✅ ✅ ✅ ✅
obsm ✅ 🚧 ✅ 🚧
obsp ✅ ✅ ✅ ✅
raw
uns ✅ ✅ ✅ ✅
var ✅ ✅ ✅ ✅
var_names ✅ ✅ ✅ ✅
varm ✅ 🚧 ✅ 🚧
varp ✅ ✅ ✅ ✅
X ✅ ✅

Seurat

Slot From From test To To test
layers ✅ ✅ ✅ ✅
obs ✅ ✅ ✅ ✅
obs_names ✅ ✅ ✅ ✅
obsm ✅ 🚧 ✅ 🚧
obsp ✅ ✅ ✅
raw
uns ✅ ✅ ✅ ✅
var ✅ ✅ ✅ ✅
var_names ✅ ✅ ✅ ✅
varm ✅ ✅ ✅ 🚧
varp ✅
X ✅ ✅

Known issues

This section lists current known issues in anndataR. Only certain types of issues are listed here, for additional issues see the GitHub issue tracker.

Issue: converted sce object has dimnames(), whilst the original anndata does not.

  • Affected backend: to_SCE
  • Affected slot(s): obsm, varm
  • Affected dtype(s): pca
  • Probable cause: convert
  • To investigate: TRUE
  • To fix: FALSE

Error message

sampleFactors(reducedDims(sce)$pca) (`actual`) not equal to ad$obsm[["X_pca"]] (`expected`).
`dimnames(actual)` is a list `dimnames(expected)` is absent

Proposed solution

Investigate if this is a problem or not.

Issue: rhdf5 2.57.12 emits a spurious NA_character_ warning when a numeric dataset containing NA or NaN is written into a pre-created dataset.

  • Affected backend: HDF5AnnData
  • Affected slot(s): X, layers, obs, var, obsm, varm, obsp, varp, uns
  • Affected dtype(s): numeric_with_nas, numeric_matrix_with_nas, numeric_dense_with_nas, numeric_csparse_with_nas, numeric_rsparse_with_nas, integer_matrix_with_nas, integer_csparse_with_nas, integer_rsparse_with_nas
  • Probable cause: write
  • To investigate: FALSE
  • To fix: FALSE

Error message

Writing NA_character_ in fixed-length string datasets is fragile and deprecated.
In particular, it will write NA_character_ as the string 'NA' in the HDF5 file.
Use variable-length strings instead.

Proposed solution

The check in rhdf5’s h5writeDataset.array() lacks a storage.mode(obj) == “character” guard on the existing-dataset branch (https://github.com/Huber-group-EMBL/rhdf5/blob/1682d4b493d0ddc9e46cba78a141b780bb8390e8/R/h5write.R#L405-L417). Reported in Huber-group-EMBL/rhdf5#241 and fixed in Huber-group-EMBL/rhdf5#242; remove this entry and the skips in test-h5ad-fileclosure.R once the fixed rhdf5 is in Bioconductor devel.

Session info

## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.5 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
##  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
##  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
## [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   
## 
## time zone: UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] tidyr_1.3.2      dplyr_1.2.1      purrr_1.2.2      stringr_1.6.0   
## [5] rprojroot_2.1.1  knitr_1.52       tibble_3.3.1     BiocStyle_2.41.0
## 
## loaded via a namespace (and not attached):
##  [1] jsonlite_2.0.0      compiler_4.6.1      BiocManager_1.30.27
##  [4] tidyselect_1.2.1    jquerylib_0.1.4     systemfonts_1.3.2  
##  [7] textshaping_1.0.5   yaml_2.3.12         fastmap_1.2.0      
## [10] R6_2.6.1            generics_0.1.4      htmlwidgets_1.6.4  
## [13] bookdown_0.48       desc_1.4.3          bslib_0.12.0       
## [16] pillar_1.11.1       rlang_1.3.0         cachem_1.1.0       
## [19] stringi_1.8.9       xfun_0.61           fs_2.1.0           
## [22] sass_0.4.10         otel_0.2.0          cli_3.6.6          
## [25] pkgdown_2.2.1       withr_3.0.3         magrittr_2.0.5     
## [28] digest_0.6.39       lifecycle_1.0.5     vctrs_0.7.3        
## [31] evaluate_1.0.5      glue_1.8.1          ragg_1.5.2         
## [34] rmarkdown_2.32      tools_4.6.1         pkgconfig_2.0.3    
## [37] htmltools_0.5.9