The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
The API of anndata for R is very similar to its Python counterpart. Check out ?anndata
for a full list of the functions provided by this package.
AnnData()
stores a data matrix X
together with annotations of observations obs
(obsm
, obsp
), variables var
(varm
, varp
), and unstructured annotations uns
.
Here is an example of how to create an AnnData object with 2 observations and 3 variables.
library(anndata)
<- AnnData(
ad 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
You can read the information back out using the $
notation.
$X
ad$obs
ad$obsm[["ones"]]
ad$layers[["spliced"]]
ad$uns[["b"]] ad
Read from h5ad format:
read_h5ad("pbmc_1k_protein_v3_processed.h5ad")
You can use any of the regular R indexing methods to subset the AnnData
object. This will result in a ‘View’ of the underlying data without needing to store the same data twice.
<- ad[, 2]
view
view$is_view
view
c("var1", "var2")]
ad[,-1, ] ad[
The X
attribute can be used as an R matrix:
$X[,c("var1", "var2")]
ad$X[-1, , drop = FALSE]
ad$X[, 2] <- 10 ad
You can access a different layer matrix as follows:
$layers["unspliced"]
ad$layers["unspliced"][,c("var2", "var3")] ad
If you assign an AnnData object to another variable and modify either, both will be modified:
<- ad
ad2
$X[,2] <- 10
ad
list(ad = ad$X, ad2 = ad2$X)
This is standard Python behaviour but not R. In order to have two separate copies of an AnnData object, use the $copy()
function:
<- ad$copy()
ad3
$X[,2] <- c(3, 4)
ad
list(ad = ad$X, ad3 = ad3$X)
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.