From b9c1468a0361349ae869c74fccaeacda0e56e52b Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Tue, 28 Jul 2026 10:31:11 +0200 Subject: [PATCH 01/13] Add consolidated metadata when writing zarr anndata --- DESCRIPTION | 2 +- R/ZarrAnnData.R | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 6249a500..f4966762 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -56,7 +56,7 @@ Suggests: knitr, processx, rhdf5 (>= 2.52.1), - Rarr (>= 2.1.13), + Rarr (>= 2.1.28), rmarkdown, S4Vectors, Seurat, diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index dcf515b2..805e42c6 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -493,6 +493,7 @@ ZarrAnnData <- R6::R6Class( self[[slot]] <- value } } + Rarr::zarr_consolidate_metadata(file) } self From 56278683495cdc74a2a5a59aa204b49e1153800a Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Tue, 28 Jul 2026 11:40:42 +0200 Subject: [PATCH 02/13] Leverage consolidated metadata to get encoding info in a single file read --- R/ZarrAnnData.R | 84 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 73 insertions(+), 11 deletions(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index 805e42c6..ae3108d9 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -21,6 +21,7 @@ ZarrAnnData <- R6::R6Class( private = list( .zarrobj = NULL, .zarrformat = NULL, + .consolidated_metadata = NULL, .compression = NULL, .readonly = NULL, @@ -48,7 +49,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_X, status=done - read_zarr_element(private$.zarrobj, "X") |> + read_zarr_element( + private$.zarrobj, + "X", + private$.consolidated_metadata[["X"]][["encoding-type"]], + private$.consolidated_metadata[["X"]][["encoding-version"]] + ) |> private$.add_matrix_dimnames("X") } else { private$.check_writeable() @@ -74,7 +80,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_layers, status=done - read_zarr_element(private$.zarrobj, "layers") |> + read_zarr_element( + private$.zarrobj, + "layers", + private$.consolidated_metadata[["layers"]][["encoding-type"]], + private$.consolidated_metadata[["layers"]][["encoding-version"]] + ) |> private$.add_mapping_dimnames("layers") } else { private$.check_writeable() @@ -100,7 +111,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_obsm, status=done - read_zarr_element(private$.zarrobj, "obsm") |> + read_zarr_element( + private$.zarrobj, + "obsm", + private$.consolidated_metadata[["obsm"]][["encoding-type"]], + private$.consolidated_metadata[["obsm"]][["encoding-version"]] + ) |> private$.add_mapping_dimnames("obsm") } else { private$.check_writeable() @@ -128,7 +144,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_varm, status=done - read_zarr_element(private$.zarrobj, "varm") |> + read_zarr_element( + private$.zarrobj, + "varm", + private$.consolidated_metadata[["varm"]][["encoding-type"]], + private$.consolidated_metadata[["varm"]][["encoding-version"]] + ) |> private$.add_mapping_dimnames("varm") } else { private$.check_writeable() @@ -156,7 +177,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_obsp, status=done - read_zarr_element(private$.zarrobj, "obsp") |> + read_zarr_element( + private$.zarrobj, + "obsp", + private$.consolidated_metadata[["obsp"]][["encoding-type"]], + private$.consolidated_metadata[["obsp"]][["encoding-version"]] + ) |> private$.add_mapping_dimnames("obsp") } else { private$.check_writeable() @@ -182,7 +208,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_varp, status=done - read_zarr_element(private$.zarrobj, "varp") |> + read_zarr_element( + private$.zarrobj, + "varp", + private$.consolidated_metadata[["varp"]][["encoding-type"]], + private$.consolidated_metadata[["varp"]][["encoding-version"]] + ) |> private$.add_mapping_dimnames("varp") } else { private$.check_writeable() @@ -208,7 +239,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_obs, status=done - read_zarr_element(private$.zarrobj, "obs") + read_zarr_element( + private$.zarrobj, + "obs", + private$.consolidated_metadata[["obs"]][["encoding-type"]], + private$.consolidated_metadata[["obs"]][["encoding-version"]] + ) } else { private$.check_writeable() # trackstatus: class=ZarrAnnData, feature=set_obs, status=done @@ -227,7 +263,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_var, status=done - read_zarr_element(private$.zarrobj, "var") + read_zarr_element( + private$.zarrobj, + "var", + private$.consolidated_metadata[["var"]][["encoding-type"]], + private$.consolidated_metadata[["var"]][["encoding-version"]] + ) } else { private$.check_writeable() # trackstatus: class=ZarrAnnData, feature=set_var, status=done @@ -246,7 +287,13 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_obs_names, status=done - read_zarr_element_keys(private$.zarrobj, "obs", dim = "rows") + read_zarr_element_keys( + private$.zarrobj, + "obs", + private$.consolidated_metadata[["obs"]][["encoding-type"]], + private$.consolidated_metadata[["obs"]][["encoding-version"]], + dim = "rows" + ) } else { private$.check_writeable() # trackstatus: class=ZarrAnnData, feature=set_obs_names, status=done @@ -259,7 +306,13 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_var_names, status=done - read_zarr_element_keys(private$.zarrobj, "var", dim = "rows") + read_zarr_element_keys( + private$.zarrobj, + "var", + private$.consolidated_metadata[["var"]][["encoding-type"]], + private$.consolidated_metadata[["var"]][["encoding-version"]], + dim = "rows" + ) } else { private$.check_writeable() # trackstatus: class=ZarrAnnData, feature=set_var_names, status=done @@ -272,7 +325,12 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_uns, status=done - read_zarr_element(private$.zarrobj, "uns") + read_zarr_element( + private$.zarrobj, + "uns", + private$.consolidated_metadata[["uns"]][["encoding-type"]], + private$.consolidated_metadata[["uns"]][["encoding-version"]] + ) } else { private$.check_writeable() # trackstatus: class=ZarrAnnData, feature=set_uns, status=done @@ -496,6 +554,10 @@ ZarrAnnData <- R6::R6Class( Rarr::zarr_consolidate_metadata(file) } + # Create consolidated metadata on the fly, in memory, if it doesn't exist on disk + private$.consolidated_metadata <- Rarr:::.read_consolidated_metadata(file)$metadata %||% + Rarr::zarr_consolidate_metadata(file, action = "return") + self }, From 05841029a5b45b28005f41f056f3a16b4af95b65 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 29 Jul 2026 10:30:18 +0200 Subject: [PATCH 03/13] Use hashed env for consolidated metadata --- R/ZarrAnnData.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index ae3108d9..ad2393c2 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -555,8 +555,9 @@ ZarrAnnData <- R6::R6Class( } # Create consolidated metadata on the fly, in memory, if it doesn't exist on disk - private$.consolidated_metadata <- Rarr:::.read_consolidated_metadata(file)$metadata %||% + consolidated <- Rarr:::.read_consolidated_metadata(file)$metadata %||% Rarr::zarr_consolidate_metadata(file, action = "return") + private$.consolidated_metadata <- list2env(consolidated, hash = TRUE, parent = emptyenv()) self }, From f7c8d941f7ff6359c62b074a22c51fd0540ef7b8 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 29 Jul 2026 10:51:56 +0200 Subject: [PATCH 04/13] Define helper function to get attrs from consolidated --- R/ZarrAnnData.R | 52 ++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index ad2393c2..142d0a3e 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -40,6 +40,14 @@ ZarrAnnData <- R6::R6Class( call = rlang::caller_env() ) } + }, + + .get_attrs_from_consolidated = function(slot, attr) { + if (private$.zarrformat == 3L) { + private$.consolidated_metadata[[slot]]$attributes[[attr]] + } else { + private$.consolidated_metadata[[file.path(slot, ".zattrs")]][[attr]] + } } ), active = list( @@ -52,8 +60,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "X", - private$.consolidated_metadata[["X"]][["encoding-type"]], - private$.consolidated_metadata[["X"]][["encoding-version"]] + private$.get_attrs_from_consolidated("X", "encoding-type"), + private$.get_attrs_from_consolidated("X", "encoding-version") ) |> private$.add_matrix_dimnames("X") } else { @@ -83,8 +91,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "layers", - private$.consolidated_metadata[["layers"]][["encoding-type"]], - private$.consolidated_metadata[["layers"]][["encoding-version"]] + private$.get_attrs_from_consolidated("layers", "encoding-type"), + private$.get_attrs_from_consolidated("layers", "encoding-version") ) |> private$.add_mapping_dimnames("layers") } else { @@ -114,8 +122,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "obsm", - private$.consolidated_metadata[["obsm"]][["encoding-type"]], - private$.consolidated_metadata[["obsm"]][["encoding-version"]] + private$.get_attrs_from_consolidated("obsm", "encoding-type"), + private$.get_attrs_from_consolidated("obsm", "encoding-version") ) |> private$.add_mapping_dimnames("obsm") } else { @@ -147,8 +155,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "varm", - private$.consolidated_metadata[["varm"]][["encoding-type"]], - private$.consolidated_metadata[["varm"]][["encoding-version"]] + private$.get_attrs_from_consolidated("varm", "encoding-type"), + private$.get_attrs_from_consolidated("varm", "encoding-version") ) |> private$.add_mapping_dimnames("varm") } else { @@ -180,8 +188,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "obsp", - private$.consolidated_metadata[["obsp"]][["encoding-type"]], - private$.consolidated_metadata[["obsp"]][["encoding-version"]] + private$.get_attrs_from_consolidated("obsp", "encoding-type"), + private$.get_attrs_from_consolidated("obsp", "encoding-version") ) |> private$.add_mapping_dimnames("obsp") } else { @@ -211,8 +219,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "varp", - private$.consolidated_metadata[["varp"]][["encoding-type"]], - private$.consolidated_metadata[["varp"]][["encoding-version"]] + private$.get_attrs_from_consolidated("varp", "encoding-type"), + private$.get_attrs_from_consolidated("varp", "encoding-version") ) |> private$.add_mapping_dimnames("varp") } else { @@ -242,8 +250,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "obs", - private$.consolidated_metadata[["obs"]][["encoding-type"]], - private$.consolidated_metadata[["obs"]][["encoding-version"]] + private$.get_attrs_from_consolidated("obs", "encoding-type"), + private$.get_attrs_from_consolidated("obs", "encoding-version") ) } else { private$.check_writeable() @@ -266,8 +274,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "var", - private$.consolidated_metadata[["var"]][["encoding-type"]], - private$.consolidated_metadata[["var"]][["encoding-version"]] + private$.get_attrs_from_consolidated("var", "encoding-type"), + private$.get_attrs_from_consolidated("var", "encoding-version") ) } else { private$.check_writeable() @@ -290,8 +298,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element_keys( private$.zarrobj, "obs", - private$.consolidated_metadata[["obs"]][["encoding-type"]], - private$.consolidated_metadata[["obs"]][["encoding-version"]], + private$.get_attrs_from_consolidated("obs", "encoding-type"), + private$.get_attrs_from_consolidated("obs", "encoding-version"), dim = "rows" ) } else { @@ -309,8 +317,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element_keys( private$.zarrobj, "var", - private$.consolidated_metadata[["var"]][["encoding-type"]], - private$.consolidated_metadata[["var"]][["encoding-version"]], + private$.get_attrs_from_consolidated("var", "encoding-type"), + private$.get_attrs_from_consolidated("var", "encoding-version"), dim = "rows" ) } else { @@ -328,8 +336,8 @@ ZarrAnnData <- R6::R6Class( read_zarr_element( private$.zarrobj, "uns", - private$.consolidated_metadata[["uns"]][["encoding-type"]], - private$.consolidated_metadata[["uns"]][["encoding-version"]] + private$.get_attrs_from_consolidated("uns", "encoding-type"), + private$.get_attrs_from_consolidated("uns", "encoding-version") ) } else { private$.check_writeable() From 325cfad32733491875d0538b293d4d54fa5a0e38 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 29 Jul 2026 11:12:37 +0200 Subject: [PATCH 05/13] Add missing trailing slash to root path --- R/ZarrAnnData.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index 142d0a3e..059525cc 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -563,7 +563,7 @@ ZarrAnnData <- R6::R6Class( } # Create consolidated metadata on the fly, in memory, if it doesn't exist on disk - consolidated <- Rarr:::.read_consolidated_metadata(file)$metadata %||% + consolidated <- Rarr:::.read_consolidated_metadata(paste0(file, "/"))$metadata %||% Rarr::zarr_consolidate_metadata(file, action = "return") private$.consolidated_metadata <- list2env(consolidated, hash = TRUE, parent = emptyenv()) From 0c6712f53163748b60c651d7dc8bbc5726848522 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 29 Jul 2026 11:17:02 +0200 Subject: [PATCH 06/13] Support both v2 and v3 when creating consolidated on the fly --- R/ZarrAnnData.R | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index 059525cc..7ca768dc 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -563,9 +563,14 @@ ZarrAnnData <- R6::R6Class( } # Create consolidated metadata on the fly, in memory, if it doesn't exist on disk - consolidated <- Rarr:::.read_consolidated_metadata(paste0(file, "/"))$metadata %||% - Rarr::zarr_consolidate_metadata(file, action = "return") - private$.consolidated_metadata <- list2env(consolidated, hash = TRUE, parent = emptyenv()) + consolidated <- Rarr:::.read_consolidated_metadata(paste0(file, "/")) + if (is.null(consolidated)) { + raw_consolidated <- Rarr::zarr_consolidate_metadata(file, action = "return") + if (private$.zarrformat == 3L) { + consolidated <- raw_consolidated$consolidated_metadata + } + } + private$.consolidated_metadata <- list2env(consolidated$metadata, hash = TRUE, parent = emptyenv()) self }, From a46c40497dd19778d9826a15a3a9fc07610f0bda Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Thu, 30 Jul 2026 11:56:21 +0200 Subject: [PATCH 07/13] Use new read_consolidate_metadata(consolidate = ) arg --- R/ZarrAnnData.R | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index 7ca768dc..187a1414 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -562,15 +562,13 @@ ZarrAnnData <- R6::R6Class( Rarr::zarr_consolidate_metadata(file) } - # Create consolidated metadata on the fly, in memory, if it doesn't exist on disk - consolidated <- Rarr:::.read_consolidated_metadata(paste0(file, "/")) - if (is.null(consolidated)) { - raw_consolidated <- Rarr::zarr_consolidate_metadata(file, action = "return") - if (private$.zarrformat == 3L) { - consolidated <- raw_consolidated$consolidated_metadata - } - } - private$.consolidated_metadata <- list2env(consolidated$metadata, hash = TRUE, parent = emptyenv()) + # Create consolidated metadata on the fly, in memory, + # if it doesn't exist on disk. + private$.consolidated_metadata <- Rarr:::.read_consolidated_metadata( + file, + consolidate = "missing" + ) |> + list2env(hash = TRUE, parent = emptyenv()) self }, From 8d8dc283e78ff876a3db0727bb95b79bc6b49e41 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Thu, 30 Jul 2026 15:49:04 +0200 Subject: [PATCH 08/13] Simplify .get_attrs_from_consolidated() Since consolidated metadata is now always returned under v3 format --- R/ZarrAnnData.R | 4 ---- 1 file changed, 4 deletions(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index 187a1414..519a79e4 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -43,11 +43,7 @@ ZarrAnnData <- R6::R6Class( }, .get_attrs_from_consolidated = function(slot, attr) { - if (private$.zarrformat == 3L) { private$.consolidated_metadata[[slot]]$attributes[[attr]] - } else { - private$.consolidated_metadata[[file.path(slot, ".zattrs")]][[attr]] - } } ), active = list( From 4ef8184d9ccee6569b6f3e25680ba271eb78cb24 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Thu, 30 Jul 2026 15:49:40 +0200 Subject: [PATCH 09/13] Require more recent Rarr version --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index f4966762..d40aab41 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -56,7 +56,7 @@ Suggests: knitr, processx, rhdf5 (>= 2.52.1), - Rarr (>= 2.1.28), + Rarr (>= 2.1.31), rmarkdown, S4Vectors, Seurat, From a5a705167fc718f938a02c243e99956d51e51bda Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Thu, 30 Jul 2026 15:50:35 +0200 Subject: [PATCH 10/13] Use new read_zarr_consolidated_metadata() name --- R/ZarrAnnData.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index 519a79e4..b257cdc9 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -559,8 +559,8 @@ ZarrAnnData <- R6::R6Class( } # Create consolidated metadata on the fly, in memory, - # if it doesn't exist on disk. - private$.consolidated_metadata <- Rarr:::.read_consolidated_metadata( + # if it doesn't exist on disk (only happens for readonly stores). + private$.consolidated_metadata <- Rarr::read_zarr_consolidated_metadata( file, consolidate = "missing" ) |> From c36a7125ed14c34da30468e9b3c235151e9f3cb9 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Fri, 31 Jul 2026 18:32:08 +0200 Subject: [PATCH 11/13] Add NEWS bullet --- NEWS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/NEWS.md b/NEWS.md index a824fb38..a246359d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +# anndataR 1.3.2 + +- Write consolidated metadata on non-readonly anndata stores. Consolidated metadata is used to read encoding type and version of elements one level deep into the store (PR #492). + # anndataR 1.3.1 - Add support for reading backed objects using `DelayedArray` matrices, including a `backed` argument for `HDF5AnnData` and `InMemoryAnnData`, and conversion of backed `AnnData` objects to `SingleCellExperiment`/`Seurat` (PR #387). From f84626c4df476aee350cc7961aa8717df5374dd9 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Mon, 3 Aug 2026 11:00:38 +0200 Subject: [PATCH 12/13] Run air --- R/ZarrAnnData.R | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/R/ZarrAnnData.R b/R/ZarrAnnData.R index b257cdc9..2b0b5bfb 100644 --- a/R/ZarrAnnData.R +++ b/R/ZarrAnnData.R @@ -43,7 +43,7 @@ ZarrAnnData <- R6::R6Class( }, .get_attrs_from_consolidated = function(slot, attr) { - private$.consolidated_metadata[[slot]]$attributes[[attr]] + private$.consolidated_metadata[[slot]]$attributes[[attr]] } ), active = list( @@ -54,8 +54,8 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_X, status=done read_zarr_element( - private$.zarrobj, - "X", + private$.zarrobj, + "X", private$.get_attrs_from_consolidated("X", "encoding-type"), private$.get_attrs_from_consolidated("X", "encoding-version") ) |> @@ -85,7 +85,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_layers, status=done read_zarr_element( - private$.zarrobj, + private$.zarrobj, "layers", private$.get_attrs_from_consolidated("layers", "encoding-type"), private$.get_attrs_from_consolidated("layers", "encoding-version") @@ -116,7 +116,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_obsm, status=done read_zarr_element( - private$.zarrobj, + private$.zarrobj, "obsm", private$.get_attrs_from_consolidated("obsm", "encoding-type"), private$.get_attrs_from_consolidated("obsm", "encoding-version") @@ -149,7 +149,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_varm, status=done read_zarr_element( - private$.zarrobj, + private$.zarrobj, "varm", private$.get_attrs_from_consolidated("varm", "encoding-type"), private$.get_attrs_from_consolidated("varm", "encoding-version") @@ -182,7 +182,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_obsp, status=done read_zarr_element( - private$.zarrobj, + private$.zarrobj, "obsp", private$.get_attrs_from_consolidated("obsp", "encoding-type"), private$.get_attrs_from_consolidated("obsp", "encoding-version") @@ -213,7 +213,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_varp, status=done read_zarr_element( - private$.zarrobj, + private$.zarrobj, "varp", private$.get_attrs_from_consolidated("varp", "encoding-type"), private$.get_attrs_from_consolidated("varp", "encoding-version") @@ -244,7 +244,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_obs, status=done read_zarr_element( - private$.zarrobj, + private$.zarrobj, "obs", private$.get_attrs_from_consolidated("obs", "encoding-type"), private$.get_attrs_from_consolidated("obs", "encoding-version") @@ -268,7 +268,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_var, status=done read_zarr_element( - private$.zarrobj, + private$.zarrobj, "var", private$.get_attrs_from_consolidated("var", "encoding-type"), private$.get_attrs_from_consolidated("var", "encoding-version") @@ -292,7 +292,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_obs_names, status=done read_zarr_element_keys( - private$.zarrobj, + private$.zarrobj, "obs", private$.get_attrs_from_consolidated("obs", "encoding-type"), private$.get_attrs_from_consolidated("obs", "encoding-version"), @@ -311,7 +311,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_var_names, status=done read_zarr_element_keys( - private$.zarrobj, + private$.zarrobj, "var", private$.get_attrs_from_consolidated("var", "encoding-type"), private$.get_attrs_from_consolidated("var", "encoding-version"), @@ -330,7 +330,7 @@ ZarrAnnData <- R6::R6Class( if (missing(value)) { # trackstatus: class=ZarrAnnData, feature=get_uns, status=done read_zarr_element( - private$.zarrobj, + private$.zarrobj, "uns", private$.get_attrs_from_consolidated("uns", "encoding-type"), private$.get_attrs_from_consolidated("uns", "encoding-version") @@ -558,7 +558,7 @@ ZarrAnnData <- R6::R6Class( Rarr::zarr_consolidate_metadata(file) } - # Create consolidated metadata on the fly, in memory, + # Create consolidated metadata on the fly, in memory, # if it doesn't exist on disk (only happens for readonly stores). private$.consolidated_metadata <- Rarr::read_zarr_consolidated_metadata( file, From c32da76c84e8a17313278583896931f61be2b6b6 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Mon, 3 Aug 2026 11:00:43 +0200 Subject: [PATCH 13/13] Bump version --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index d40aab41..d51816e0 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: anndataR Title: AnnData interoperability in R -Version: 1.3.1 +Version: 1.3.2 Authors@R: c( person("Robrecht", "Cannoodt", , "rcannood@gmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-3641-729X", github = "rcannood")),