Generally, if you have sparse data that are stored as a dense matrix, you can dramatically improve performance and reduce disk space by converting to a csr_matrix:

write_h5ad(
  anndata,
  filename,
  compression = NULL,
  compression_opts = NULL,
  as_dense = list()
)

Arguments

anndata

An AnnData() object

filename

Filename of data file. Defaults to backing file.

compression

See the h5py filter pipeline. Options are "gzip", "lzf" or NULL.

compression_opts

See the h5py filter pipeline.

as_dense

Sparse in AnnData object to write as dense. Currently only supports "X" and "raw/X".

Examples

if (FALSE) { ad <- AnnData( X = matrix(c(0, 1, 2, 3), nrow = 2, byrow = TRUE), obs = data.frame(group = c("a", "b"), row.names = c("s1", "s2")), var = data.frame(type = c(1L, 2L), row.names = c("var1", "var2")), varm = list( ones = matrix(rep(1L, 10), nrow = 2), rand = matrix(rnorm(6), nrow = 2), zeros = matrix(rep(0L, 10), nrow = 2) ), uns = list(a = 1, b = 2, c = list(c.a = 3, c.b = 4)) ) write_h5ad(ad, "output.h5ad") file.remove("output.h5ad") }