Skip to contents

[Superseded]

Details

This package is superseded by anndataR. anndataR provides a pure R implementation of the AnnData data structure with native h5ad file reading/writing and conversion to/from SingleCellExperiment and Seurat objects. Please consider migrating; see vignette("migration_to_anndataR", package = "anndata") for guidance.

If you already have Python anndata installed, anndataR's ReticulateAnnData backend lets you keep using your existing Python environment while gaining access to anndataR's unified interface. The native InMemoryAnnData and HDF5AnnData backends (no Python required) are preferred for new workflows.

anndata provides a scalable way of keeping track of data and learned annotations, and can be used to read from and write to the h5ad file format. AnnData() stores a data matrix X together with annotations of observations obs (obsm, obsp), variables var (varm, varp), and unstructured annotations uns.

This package is an R wrapper for the similarly named Python package anndata, with some added functionality to support more R-like syntax.

Check out ?anndata for a full list of the functions provided by this package.

Creating an AnnData object

Concatenating two or more AnnData objects

Writing an AnnData object to a file

Install the anndata Python package

Author

Maintainer: Robrecht Cannoodt rcannood@gmail.com (ORCID) [copyright holder]

Other contributors:

Examples

if (FALSE) { # \dontrun{
ad <- AnnData(
  X = matrix(1:6, nrow = 2),
  obs = data.frame(group = c("a", "b"), row.names = c("s1", "s2")),
  var = data.frame(type = c(1L, 2L, 3L), row.names = c("var1", "var2", "var3")),
  layers = list(
    spliced = matrix(4:9, nrow = 2),
    unspliced = matrix(8:13, nrow = 2)
  ),
  obsm = list(
    ones = matrix(rep(1L, 10), nrow = 2),
    rand = matrix(rnorm(6), nrow = 2),
    zeros = matrix(rep(0L, 10), nrow = 2)
  ),
  varm = list(
    ones = matrix(rep(1L, 12), nrow = 3),
    rand = matrix(rnorm(6), nrow = 3),
    zeros = matrix(rep(0L, 12), nrow = 3)
  ),
  uns = list(
    a = 1,
    b = data.frame(i = 1:3, j = 4:6, value = runif(3)),
    c = list(c.a = 3, c.b = 4)
  )
)

ad$X

ad$obs
ad$var

ad$obsm["ones"]
ad$varm["rand"]

ad$layers["unspliced"]
ad$layers["spliced"]

ad$uns["b"]

ad[, c("var1", "var2")]
ad[-1, , drop = FALSE]
ad[, 2] <- 10
} # }