From fb8d7441dfe838473ac7d972d0d8a7ab9e35523a Mon Sep 17 00:00:00 2001 From: Mark Keller <7525285+keller-mark@users.noreply.github.com> Date: Tue, 7 May 2024 08:13:33 -0400 Subject: [PATCH] Fix bug and add tests and anndataR fixtures --- .gitignore | 4 +- R/zarr-array.R | 4 +- inst/extdata/fixtures/v2/example.zarr/.zattrs | 4 + inst/extdata/fixtures/v2/example.zarr/.zgroup | 3 + .../fixtures/v2/example.zarr/X/.zattrs | 8 ++ .../fixtures/v2/example.zarr/X/.zgroup | 3 + .../v2/example.zarr/X/indices/.zarray | 20 ++++ .../fixtures/v2/example.zarr/X/indices/0 | Bin 0 -> 2265 bytes .../fixtures/v2/example.zarr/X/indptr/.zarray | 20 ++++ .../fixtures/v2/example.zarr/X/indptr/0 | Bin 0 -> 142 bytes .../fixtures/v2/example.zarr/layers/.zattrs | 4 + .../fixtures/v2/example.zarr/layers/.zgroup | 3 + .../v2/example.zarr/layers/counts/.zattrs | 8 ++ .../v2/example.zarr/layers/counts/.zgroup | 3 + .../layers/counts/indices/.zarray | 20 ++++ .../v2/example.zarr/layers/counts/indices/0 | Bin 0 -> 2265 bytes .../example.zarr/layers/counts/indptr/.zarray | 20 ++++ .../v2/example.zarr/layers/counts/indptr/0 | Bin 0 -> 142 bytes .../v2/example.zarr/layers/csc_counts/.zattrs | 8 ++ .../v2/example.zarr/layers/csc_counts/.zgroup | 3 + .../layers/csc_counts/indices/.zarray | 20 ++++ .../example.zarr/layers/csc_counts/indices/0 | Bin 0 -> 2155 bytes .../layers/csc_counts/indptr/.zarray | 20 ++++ .../example.zarr/layers/csc_counts/indptr/0 | Bin 0 -> 240 bytes .../v2/example.zarr/layers/dense_X/.zarray | 22 +++++ .../v2/example.zarr/layers/dense_X/.zattrs | 4 + .../v2/example.zarr/layers/dense_X/0.0 | Bin 0 -> 15594 bytes .../example.zarr/layers/dense_counts/.zarray | 22 +++++ .../example.zarr/layers/dense_counts/.zattrs | 4 + .../v2/example.zarr/layers/dense_counts/0.0 | Bin 0 -> 4280 bytes .../fixtures/v2/example.zarr/obs/.zattrs | 18 ++++ .../fixtures/v2/example.zarr/obs/.zgroup | 3 + .../fixtures/v2/example.zarr/obs/Bool/.zattrs | 4 + .../fixtures/v2/example.zarr/obs/Bool/.zgroup | 3 + .../v2/example.zarr/obs/Bool/mask/.zarray | 20 ++++ .../v2/example.zarr/obs/Bool/mask/.zattrs | 4 + .../fixtures/v2/example.zarr/obs/Bool/mask/0 | Bin 0 -> 66 bytes .../v2/example.zarr/obs/Bool/values/.zarray | 20 ++++ .../v2/example.zarr/obs/Bool/values/.zattrs | 4 + .../v2/example.zarr/obs/Bool/values/0 | Bin 0 -> 66 bytes .../v2/example.zarr/obs/BoolNA/.zattrs | 4 + .../v2/example.zarr/obs/BoolNA/.zgroup | 3 + .../v2/example.zarr/obs/BoolNA/mask/.zarray | 20 ++++ .../v2/example.zarr/obs/BoolNA/mask/.zattrs | 4 + .../v2/example.zarr/obs/BoolNA/mask/0 | Bin 0 -> 66 bytes .../v2/example.zarr/obs/BoolNA/values/.zarray | 20 ++++ .../v2/example.zarr/obs/BoolNA/values/.zattrs | 4 + .../v2/example.zarr/obs/BoolNA/values/0 | Bin 0 -> 66 bytes .../v2/example.zarr/obs/Float/.zarray | 20 ++++ .../v2/example.zarr/obs/Float/.zattrs | 4 + .../fixtures/v2/example.zarr/obs/Float/0 | Bin 0 -> 70 bytes .../v2/example.zarr/obs/FloatNA/.zarray | 20 ++++ .../v2/example.zarr/obs/FloatNA/.zattrs | 4 + .../fixtures/v2/example.zarr/obs/FloatNA/0 | Bin 0 -> 78 bytes .../fixtures/v2/example.zarr/obs/Int/.zarray | 20 ++++ .../fixtures/v2/example.zarr/obs/Int/.zattrs | 4 + .../fixtures/v2/example.zarr/obs/Int/0 | Bin 0 -> 91 bytes .../v2/example.zarr/obs/IntNA/.zattrs | 4 + .../v2/example.zarr/obs/IntNA/.zgroup | 3 + .../v2/example.zarr/obs/IntNA/mask/.zarray | 20 ++++ .../v2/example.zarr/obs/IntNA/mask/.zattrs | 4 + .../fixtures/v2/example.zarr/obs/IntNA/mask/0 | Bin 0 -> 66 bytes .../v2/example.zarr/obs/IntNA/values/.zarray | 20 ++++ .../v2/example.zarr/obs/IntNA/values/.zattrs | 4 + .../v2/example.zarr/obs/IntNA/values/0 | Bin 0 -> 42 bytes .../v2/example.zarr/obs/_index/.zarray | 24 +++++ .../v2/example.zarr/obs/_index/.zattrs | 4 + .../fixtures/v2/example.zarr/obs/_index/0 | Bin 0 -> 269 bytes .../v2/example.zarr/obs/leiden/.zattrs | 5 + .../v2/example.zarr/obs/leiden/.zgroup | 3 + .../obs/leiden/categories/.zarray | 24 +++++ .../obs/leiden/categories/.zattrs | 4 + .../v2/example.zarr/obs/leiden/categories/0 | Bin 0 -> 50 bytes .../v2/example.zarr/obs/leiden/codes/.zarray | 20 ++++ .../v2/example.zarr/obs/leiden/codes/.zattrs | 4 + .../v2/example.zarr/obs/leiden/codes/0 | Bin 0 -> 66 bytes .../obs/log1p_n_genes_by_counts/.zarray | 20 ++++ .../obs/log1p_n_genes_by_counts/.zattrs | 4 + .../obs/log1p_n_genes_by_counts/0 | Bin 0 -> 371 bytes .../obs/log1p_total_counts/.zarray | 20 ++++ .../obs/log1p_total_counts/.zattrs | 4 + .../v2/example.zarr/obs/log1p_total_counts/0 | Bin 0 -> 190 bytes .../obs/n_genes_by_counts/.zarray | 20 ++++ .../obs/n_genes_by_counts/.zattrs | 4 + .../v2/example.zarr/obs/n_genes_by_counts/0 | Bin 0 -> 90 bytes .../v2/example.zarr/obs/total_counts/.zarray | 20 ++++ .../v2/example.zarr/obs/total_counts/.zattrs | 4 + .../v2/example.zarr/obs/total_counts/0 | Bin 0 -> 95 bytes .../fixtures/v2/example.zarr/obsm/.zattrs | 4 + .../fixtures/v2/example.zarr/obsm/.zgroup | 3 + .../v2/example.zarr/obsm/X_pca/.zarray | 22 +++++ .../v2/example.zarr/obsm/X_pca/.zattrs | 4 + .../fixtures/v2/example.zarr/obsm/X_pca/0.0 | Bin 0 -> 7572 bytes .../v2/example.zarr/obsm/X_umap/.zarray | 22 +++++ .../v2/example.zarr/obsm/X_umap/.zattrs | 4 + .../fixtures/v2/example.zarr/obsm/X_umap/0.0 | Bin 0 -> 416 bytes .../fixtures/v2/example.zarr/obsp/.zattrs | 4 + .../fixtures/v2/example.zarr/obsp/.zgroup | 3 + .../example.zarr/obsp/connectivities/.zattrs | 8 ++ .../example.zarr/obsp/connectivities/.zgroup | 3 + .../obsp/connectivities/indices/.zarray | 20 ++++ .../obsp/connectivities/indices/0 | Bin 0 -> 1040 bytes .../obsp/connectivities/indptr/.zarray | 20 ++++ .../example.zarr/obsp/connectivities/indptr/0 | Bin 0 -> 109 bytes .../v2/example.zarr/obsp/distances/.zattrs | 8 ++ .../v2/example.zarr/obsp/distances/.zgroup | 3 + .../obsp/distances/indices/.zarray | 20 ++++ .../v2/example.zarr/obsp/distances/indices/0 | Bin 0 -> 775 bytes .../obsp/distances/indptr/.zarray | 20 ++++ .../v2/example.zarr/obsp/distances/indptr/0 | Bin 0 -> 105 bytes .../fixtures/v2/example.zarr/uns/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/.zgroup | 3 + .../fixtures/v2/example.zarr/uns/Bool/.zarray | 20 ++++ .../fixtures/v2/example.zarr/uns/Bool/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/Bool/0 | Bin 0 -> 19 bytes .../v2/example.zarr/uns/BoolNA/.zattrs | 4 + .../v2/example.zarr/uns/BoolNA/.zgroup | 3 + .../v2/example.zarr/uns/BoolNA/mask/.zarray | 20 ++++ .../v2/example.zarr/uns/BoolNA/mask/.zattrs | 4 + .../v2/example.zarr/uns/BoolNA/mask/0 | Bin 0 -> 19 bytes .../v2/example.zarr/uns/BoolNA/values/.zarray | 20 ++++ .../v2/example.zarr/uns/BoolNA/values/.zattrs | 4 + .../v2/example.zarr/uns/BoolNA/values/0 | Bin 0 -> 19 bytes .../v2/example.zarr/uns/Category/.zattrs | 5 + .../v2/example.zarr/uns/Category/.zgroup | 3 + .../uns/Category/categories/.zarray | 24 +++++ .../uns/Category/categories/.zattrs | 4 + .../v2/example.zarr/uns/Category/categories/0 | Bin 0 -> 30 bytes .../example.zarr/uns/Category/codes/.zarray | 20 ++++ .../example.zarr/uns/Category/codes/.zattrs | 4 + .../v2/example.zarr/uns/Category/codes/0 | Bin 0 -> 19 bytes .../example.zarr/uns/DataFrameEmpty/.zattrs | 6 ++ .../example.zarr/uns/DataFrameEmpty/.zgroup | 3 + .../uns/DataFrameEmpty/_index/.zarray | 24 +++++ .../uns/DataFrameEmpty/_index/.zattrs | 4 + .../example.zarr/uns/DataFrameEmpty/_index/0 | Bin 0 -> 269 bytes .../fixtures/v2/example.zarr/uns/Int/.zarray | 20 ++++ .../fixtures/v2/example.zarr/uns/Int/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/Int/0 | Bin 0 -> 40 bytes .../v2/example.zarr/uns/IntNA/.zattrs | 4 + .../v2/example.zarr/uns/IntNA/.zgroup | 3 + .../v2/example.zarr/uns/IntNA/mask/.zarray | 20 ++++ .../v2/example.zarr/uns/IntNA/mask/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/IntNA/mask/0 | Bin 0 -> 19 bytes .../v2/example.zarr/uns/IntNA/values/.zarray | 20 ++++ .../v2/example.zarr/uns/IntNA/values/.zattrs | 4 + .../v2/example.zarr/uns/IntNA/values/0 | Bin 0 -> 40 bytes .../v2/example.zarr/uns/IntScalar/.zarray | 10 ++ .../v2/example.zarr/uns/IntScalar/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/IntScalar/0 | Bin 0 -> 8 bytes .../v2/example.zarr/uns/Sparse1D/.zattrs | 8 ++ .../v2/example.zarr/uns/Sparse1D/.zgroup | 3 + .../example.zarr/uns/Sparse1D/indices/.zarray | 20 ++++ .../v2/example.zarr/uns/Sparse1D/indices/0 | Bin 0 -> 28 bytes .../example.zarr/uns/Sparse1D/indptr/.zarray | 20 ++++ .../v2/example.zarr/uns/Sparse1D/indptr/0 | Bin 0 -> 44 bytes .../v2/example.zarr/uns/String/.zarray | 24 +++++ .../v2/example.zarr/uns/String/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/String/0 | Bin 0 -> 140 bytes .../v2/example.zarr/uns/String2D/.zarray | 26 ++++++ .../v2/example.zarr/uns/String2D/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/String2D/0.0 | Bin 0 -> 343 bytes .../v2/example.zarr/uns/StringScalar/.zarray | 10 ++ .../v2/example.zarr/uns/StringScalar/.zattrs | 4 + .../v2/example.zarr/uns/StringScalar/0 | Bin 0 -> 32 bytes .../fixtures/v2/example.zarr/uns/hvg/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/hvg/.zgroup | 3 + .../v2/example.zarr/uns/hvg/flavor/.zarray | 10 ++ .../v2/example.zarr/uns/hvg/flavor/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/hvg/flavor/0 | Bin 0 -> 24 bytes .../v2/example.zarr/uns/leiden/.zattrs | 4 + .../v2/example.zarr/uns/leiden/.zgroup | 3 + .../v2/example.zarr/uns/leiden/params/.zattrs | 4 + .../v2/example.zarr/uns/leiden/params/.zgroup | 3 + .../uns/leiden/params/n_iterations/.zarray | 10 ++ .../uns/leiden/params/n_iterations/.zattrs | 4 + .../uns/leiden/params/n_iterations/0 | 1 + .../uns/leiden/params/random_state/.zarray | 10 ++ .../uns/leiden/params/random_state/.zattrs | 4 + .../uns/leiden/params/random_state/0 | Bin 0 -> 8 bytes .../uns/leiden/params/resolution/.zarray | 10 ++ .../uns/leiden/params/resolution/.zattrs | 4 + .../uns/leiden/params/resolution/0 | Bin 0 -> 8 bytes .../v2/example.zarr/uns/log1p/.zattrs | 4 + .../v2/example.zarr/uns/log1p/.zgroup | 3 + .../v2/example.zarr/uns/neighbors/.zattrs | 4 + .../v2/example.zarr/uns/neighbors/.zgroup | 3 + .../uns/neighbors/connectivities_key/.zarray | 10 ++ .../uns/neighbors/connectivities_key/.zattrs | 4 + .../uns/neighbors/connectivities_key/0 | Bin 0 -> 56 bytes .../uns/neighbors/distances_key/.zarray | 10 ++ .../uns/neighbors/distances_key/.zattrs | 4 + .../uns/neighbors/distances_key/0 | Bin 0 -> 36 bytes .../example.zarr/uns/neighbors/params/.zattrs | 4 + .../example.zarr/uns/neighbors/params/.zgroup | 3 + .../uns/neighbors/params/method/.zarray | 10 ++ .../uns/neighbors/params/method/.zattrs | 4 + .../uns/neighbors/params/method/0 | Bin 0 -> 16 bytes .../uns/neighbors/params/metric/.zarray | 10 ++ .../uns/neighbors/params/metric/.zattrs | 4 + .../uns/neighbors/params/metric/0 | Bin 0 -> 36 bytes .../uns/neighbors/params/n_neighbors/.zarray | 10 ++ .../uns/neighbors/params/n_neighbors/.zattrs | 4 + .../uns/neighbors/params/n_neighbors/0 | Bin 0 -> 8 bytes .../uns/neighbors/params/random_state/.zarray | 10 ++ .../uns/neighbors/params/random_state/.zattrs | 4 + .../uns/neighbors/params/random_state/0 | Bin 0 -> 8 bytes .../fixtures/v2/example.zarr/uns/pca/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/pca/.zgroup | 3 + .../v2/example.zarr/uns/pca/params/.zattrs | 4 + .../v2/example.zarr/uns/pca/params/.zgroup | 3 + .../pca/params/use_highly_variable/.zarray | 10 ++ .../pca/params/use_highly_variable/.zattrs | 4 + .../uns/pca/params/use_highly_variable/0 | 1 + .../uns/pca/params/zero_center/.zarray | 10 ++ .../uns/pca/params/zero_center/.zattrs | 4 + .../example.zarr/uns/pca/params/zero_center/0 | 1 + .../v2/example.zarr/uns/pca/variance/.zarray | 20 ++++ .../v2/example.zarr/uns/pca/variance/.zattrs | 4 + .../v2/example.zarr/uns/pca/variance/0 | Bin 0 -> 165 bytes .../uns/pca/variance_ratio/.zarray | 20 ++++ .../uns/pca/variance_ratio/.zattrs | 4 + .../v2/example.zarr/uns/pca/variance_ratio/0 | Bin 0 -> 164 bytes .../uns/rank_genes_groups/.zattrs | 4 + .../uns/rank_genes_groups/.zgroup | 3 + .../rank_genes_groups/logfoldchanges/.zarray | 45 +++++++++ .../rank_genes_groups/logfoldchanges/.zattrs | 4 + .../uns/rank_genes_groups/logfoldchanges/0 | Bin 0 -> 2142 bytes .../uns/rank_genes_groups/names/.zarray | 45 +++++++++ .../uns/rank_genes_groups/names/.zattrs | 4 + .../uns/rank_genes_groups/names/0 | Bin 0 -> 1465 bytes .../uns/rank_genes_groups/params/.zattrs | 4 + .../uns/rank_genes_groups/params/.zgroup | 3 + .../params/corr_method/.zarray | 10 ++ .../params/corr_method/.zattrs | 4 + .../rank_genes_groups/params/corr_method/0 | Bin 0 -> 72 bytes .../rank_genes_groups/params/groupby/.zarray | 10 ++ .../rank_genes_groups/params/groupby/.zattrs | 4 + .../uns/rank_genes_groups/params/groupby/0 | Bin 0 -> 24 bytes .../rank_genes_groups/params/method/.zarray | 10 ++ .../rank_genes_groups/params/method/.zattrs | 4 + .../uns/rank_genes_groups/params/method/0 | Bin 0 -> 24 bytes .../params/reference/.zarray | 10 ++ .../params/reference/.zattrs | 4 + .../uns/rank_genes_groups/params/reference/0 | Bin 0 -> 16 bytes .../rank_genes_groups/params/use_raw/.zarray | 10 ++ .../rank_genes_groups/params/use_raw/.zattrs | 4 + .../uns/rank_genes_groups/params/use_raw/0 | Bin 0 -> 1 bytes .../uns/rank_genes_groups/pvals/.zarray | 45 +++++++++ .../uns/rank_genes_groups/pvals/.zattrs | 4 + .../uns/rank_genes_groups/pvals/0 | Bin 0 -> 4296 bytes .../uns/rank_genes_groups/pvals_adj/.zarray | 45 +++++++++ .../uns/rank_genes_groups/pvals_adj/.zattrs | 4 + .../uns/rank_genes_groups/pvals_adj/0 | Bin 0 -> 3737 bytes .../uns/rank_genes_groups/scores/.zarray | 45 +++++++++ .../uns/rank_genes_groups/scores/.zattrs | 4 + .../uns/rank_genes_groups/scores/0 | Bin 0 -> 2067 bytes .../fixtures/v2/example.zarr/uns/umap/.zattrs | 4 + .../fixtures/v2/example.zarr/uns/umap/.zgroup | 3 + .../v2/example.zarr/uns/umap/params/.zattrs | 4 + .../v2/example.zarr/uns/umap/params/.zgroup | 3 + .../v2/example.zarr/uns/umap/params/a/.zarray | 10 ++ .../v2/example.zarr/uns/umap/params/a/.zattrs | 4 + .../v2/example.zarr/uns/umap/params/a/0 | 1 + .../v2/example.zarr/uns/umap/params/b/.zarray | 10 ++ .../v2/example.zarr/uns/umap/params/b/.zattrs | 4 + .../v2/example.zarr/uns/umap/params/b/0 | 1 + .../fixtures/v2/example.zarr/var/.zattrs | 18 ++++ .../fixtures/v2/example.zarr/var/.zgroup | 3 + .../v2/example.zarr/var/String/.zarray | 24 +++++ .../v2/example.zarr/var/String/.zattrs | 4 + .../fixtures/v2/example.zarr/var/String/0 | Bin 0 -> 470 bytes .../v2/example.zarr/var/_index/.zarray | 24 +++++ .../v2/example.zarr/var/_index/.zattrs | 4 + .../fixtures/v2/example.zarr/var/_index/0 | Bin 0 -> 469 bytes .../v2/example.zarr/var/dispersions/.zarray | 20 ++++ .../v2/example.zarr/var/dispersions/.zattrs | 4 + .../v2/example.zarr/var/dispersions/0 | Bin 0 -> 803 bytes .../example.zarr/var/dispersions_norm/.zarray | 20 ++++ .../example.zarr/var/dispersions_norm/.zattrs | 4 + .../v2/example.zarr/var/dispersions_norm/0 | Bin 0 -> 416 bytes .../example.zarr/var/highly_variable/.zarray | 20 ++++ .../example.zarr/var/highly_variable/.zattrs | 4 + .../v2/example.zarr/var/highly_variable/0 | Bin 0 -> 116 bytes .../var/log1p_mean_counts/.zarray | 20 ++++ .../var/log1p_mean_counts/.zattrs | 4 + .../v2/example.zarr/var/log1p_mean_counts/0 | Bin 0 -> 341 bytes .../var/log1p_total_counts/.zarray | 20 ++++ .../var/log1p_total_counts/.zattrs | 4 + .../v2/example.zarr/var/log1p_total_counts/0 | Bin 0 -> 341 bytes .../v2/example.zarr/var/mean_counts/.zarray | 20 ++++ .../v2/example.zarr/var/mean_counts/.zattrs | 4 + .../v2/example.zarr/var/mean_counts/0 | Bin 0 -> 407 bytes .../v2/example.zarr/var/means/.zarray | 20 ++++ .../v2/example.zarr/var/means/.zattrs | 4 + .../fixtures/v2/example.zarr/var/means/0 | Bin 0 -> 743 bytes .../var/n_cells_by_counts/.zarray | 20 ++++ .../var/n_cells_by_counts/.zattrs | 4 + .../v2/example.zarr/var/n_cells_by_counts/0 | Bin 0 -> 142 bytes .../var/pct_dropout_by_counts/.zarray | 20 ++++ .../var/pct_dropout_by_counts/.zattrs | 4 + .../example.zarr/var/pct_dropout_by_counts/0 | Bin 0 -> 315 bytes .../v2/example.zarr/var/total_counts/.zarray | 20 ++++ .../v2/example.zarr/var/total_counts/.zattrs | 4 + .../v2/example.zarr/var/total_counts/0 | Bin 0 -> 145 bytes .../fixtures/v2/example.zarr/varm/.zattrs | 4 + .../fixtures/v2/example.zarr/varm/.zgroup | 3 + .../fixtures/v2/example.zarr/varm/PCs/.zarray | 22 +++++ .../fixtures/v2/example.zarr/varm/PCs/.zattrs | 4 + .../fixtures/v2/example.zarr/varm/PCs/0.0 | Bin 0 -> 7702 bytes .../fixtures/v2/example.zarr/varp/.zattrs | 4 + .../fixtures/v2/example.zarr/varp/.zgroup | 3 + inst/extdata/fixtures/v2/example_h5ad.py | 88 ++++++++++++++++++ tests/testthat/test-get.R | 28 ++++++ 314 files changed, 2354 insertions(+), 3 deletions(-) create mode 100644 inst/extdata/fixtures/v2/example.zarr/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/X/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/X/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/X/indices/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/X/indices/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/X/indptr/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/X/indptr/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/counts/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/counts/indices/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/counts/indices/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/counts/indptr/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/counts/indptr/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/indices/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/indices/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/indptr/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/indptr/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/dense_X/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/dense_X/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/dense_X/0.0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/dense_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/dense_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/layers/dense_counts/0.0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Bool/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Bool/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Bool/mask/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Bool/mask/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Bool/mask/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Bool/values/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Bool/values/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Bool/values/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/BoolNA/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/BoolNA/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/BoolNA/mask/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/BoolNA/mask/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/BoolNA/mask/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/BoolNA/values/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/BoolNA/values/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/BoolNA/values/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Float/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Float/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Float/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/FloatNA/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/FloatNA/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/FloatNA/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Int/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Int/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/Int/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/IntNA/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/IntNA/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/IntNA/mask/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/IntNA/mask/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/IntNA/mask/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/IntNA/values/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/IntNA/values/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/IntNA/values/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/_index/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/_index/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/_index/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/leiden/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/leiden/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/log1p_n_genes_by_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/log1p_n_genes_by_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/log1p_n_genes_by_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/log1p_total_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/log1p_total_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/log1p_total_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/n_genes_by_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/n_genes_by_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/n_genes_by_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/total_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/total_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obs/total_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsm/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsm/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsm/X_pca/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsm/X_pca/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsm/X_pca/0.0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsm/X_umap/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsm/X_umap/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsm/X_umap/0.0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indices/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indices/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indptr/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indptr/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/distances/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/distances/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/distances/indices/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/distances/indices/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/distances/indptr/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/obsp/distances/indptr/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Bool/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Bool/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Bool/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Category/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Category/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Int/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Int/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Int/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntNA/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntNA/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntNA/mask/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntNA/mask/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntNA/mask/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntNA/values/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntNA/values/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntNA/values/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntScalar/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntScalar/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/IntScalar/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Sparse1D/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Sparse1D/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Sparse1D/indices/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Sparse1D/indices/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Sparse1D/indptr/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/Sparse1D/indptr/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/String/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/String/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/String/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/String2D/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/String2D/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/String2D/0.0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/StringScalar/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/StringScalar/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/StringScalar/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/hvg/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/hvg/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/hvg/flavor/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/hvg/flavor/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/hvg/flavor/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/n_iterations/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/n_iterations/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/n_iterations/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/random_state/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/random_state/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/random_state/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/resolution/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/resolution/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/resolution/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/log1p/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/log1p/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/connectivities_key/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/connectivities_key/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/connectivities_key/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/distances_key/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/distances_key/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/distances_key/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/method/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/method/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/method/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/metric/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/metric/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/metric/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/n_neighbors/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/n_neighbors/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/n_neighbors/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/random_state/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/random_state/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/neighbors/params/random_state/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/params/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/params/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/variance/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/variance/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/variance/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/variance_ratio/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/variance_ratio/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/pca/variance_ratio/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/logfoldchanges/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/logfoldchanges/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/logfoldchanges/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/names/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/names/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/names/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/corr_method/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/corr_method/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/corr_method/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/groupby/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/groupby/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/groupby/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/method/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/method/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/method/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/reference/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/reference/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/reference/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals_adj/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals_adj/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals_adj/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/scores/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/scores/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/scores/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/params/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/params/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/params/a/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/params/a/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/params/a/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/params/b/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/params/b/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/uns/umap/params/b/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/String/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/String/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/String/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/_index/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/_index/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/_index/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/dispersions/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/dispersions/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/dispersions/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/dispersions_norm/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/dispersions_norm/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/dispersions_norm/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/highly_variable/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/highly_variable/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/highly_variable/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/log1p_mean_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/log1p_mean_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/log1p_mean_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/log1p_total_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/log1p_total_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/log1p_total_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/mean_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/mean_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/mean_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/means/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/means/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/means/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/n_cells_by_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/n_cells_by_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/n_cells_by_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/pct_dropout_by_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/pct_dropout_by_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/pct_dropout_by_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/total_counts/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/total_counts/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/var/total_counts/0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/varm/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/varm/.zgroup create mode 100644 inst/extdata/fixtures/v2/example.zarr/varm/PCs/.zarray create mode 100644 inst/extdata/fixtures/v2/example.zarr/varm/PCs/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/varm/PCs/0.0 create mode 100644 inst/extdata/fixtures/v2/example.zarr/varp/.zattrs create mode 100644 inst/extdata/fixtures/v2/example.zarr/varp/.zgroup create mode 100644 inst/extdata/fixtures/v2/example_h5ad.py diff --git a/.gitignore b/.gitignore index 318d59f..f33204d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,6 @@ data/ check/ vignettes/data/ *.Rproj -tests/testthat/test_data \ No newline at end of file +tests/testthat/test_data +.ipynb_checkpoints/ +*.ipynb \ No newline at end of file diff --git a/R/zarr-array.R b/R/zarr-array.R index 901d787..9c889c7 100644 --- a/R/zarr-array.R +++ b/R/zarr-array.R @@ -830,7 +830,7 @@ ZarrArray <- R6::R6Class("ZarrArray", private$load_metadata() } # Handle zero-dimensional arrays - if(is.null(private$shape)) { + if(is.null(private$shape) || length(private$shape) == 0) { return(private$get_basic_selection_zd(selection, out = out, fields = fields)) } return(private$get_basic_selection_nd(selection, out = out, fields = fields)) @@ -852,7 +852,7 @@ ZarrArray <- R6::R6Class("ZarrArray", }, set_basic_selection = function(selection, value, fields = NA) { # Handle zero-dimensional arrays - if(is.null(private$shape)) { + if(is.null(private$shape) || length(private$shape) == 0) { return(private$set_basic_selection_zd(selection, value = value, fields = fields)) } return(private$set_basic_selection_nd(selection, value = value, fields = fields)) diff --git a/inst/extdata/fixtures/v2/example.zarr/.zattrs b/inst/extdata/fixtures/v2/example.zarr/.zattrs new file mode 100644 index 0000000..82ba51b --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "anndata", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/.zgroup b/inst/extdata/fixtures/v2/example.zarr/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/X/.zattrs b/inst/extdata/fixtures/v2/example.zarr/X/.zattrs new file mode 100644 index 0000000..3cd60a6 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/X/.zattrs @@ -0,0 +1,8 @@ +{ + "encoding-type": "csr_matrix", + "encoding-version": "0.1.0", + "shape": [ + 50, + 100 + ] +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/X/.zgroup b/inst/extdata/fixtures/v2/example.zarr/X/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/X/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/X/indices/.zarray b/inst/extdata/fixtures/v2/example.zarr/X/indices/.zarray new file mode 100644 index 0000000..6c23a90 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/X/indices/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 4317 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "LJ}ztuG;VpDTVfT)0ba3>Y-Rk+?h1suj-)A>SCk;cX+6iDMU_LTsWFCr}9 zABS4n4!(@;#L3QAf;->ScVREK%m0ln{{nJyDu;N)khg+FlSAplhW^4qB;D_xex6kj zMFDkJiV&e5((TLiC=!hYI|tM>2*p|rH6K2*i0`Y9pE$Y4%1cs$pI^NEoD-rO%7*5k z47kcgBALq6)a_F)lnP~6$(;uqq6*@@8rP)?c#)()XC|j+@*rJV0!p;gd|;2ZH`=ud z|3>C*=Gor9fcssz3os+-)Dq6aiyNw{z#WD^N@9stX=Lb{K9hs7)TL!zrdZmOY<+{OW0X^`k1^JW z=0Pqedh$s3=Ml?qN>;@%HN6OLQf{SdYPAUa*O>~$70^0EsamJZSte+16_^5@)}*|vsE6T(Ox10~vRUvQwFBXxRF;BQ^Q^=l48$@zOBr2VFM1U|+aQ9m&)>!LCuf%NHt$FU;OIkystjV|uNjWj0IpgfupR}~L1!i7>J4((f4h&qr z&t{eU8$$JNBDF1u8+V#{f@oH%9$B*FO)x)kYRyA|P;KoPM|~E#$60k?{}m-ZBC4ZS zaJ8|s)_VqLQ+#E60dMv6UdU=;NQSgkvG*mK63J(X*WDqB+R$oX0_6jD<-ms*g(++j zMHS^^7mkQ9o`LoK&_>jAWr>dJmD=lxOCe#0oJ}^Pi0xk{r_txMqt{gCXv{!5R2Tio?t~Y9`T_nniT$uy%5U{qh5jPN38n@~Y$i|HY|4;a^pe;}kMcks^XbMGk!pZd01!nZ-= ztiC|PoYL-HXI)i$N0@^e2yGBWC9Hm()3yYghu(L)t9gsvwZIp#>>oqsYqsAw_?q1! z5Mdnk+ge)J$Z;rp=B&=sA3F4H2utv^U9Lc@u2$6%z{9{(Pm4j@%ul_>!3QFdn}RRk zfV704bar(IL%G1$dU{nofAF-SDesiAbid j7Z(>dH#ZLt4=*n-A0Hn-Kfi#008k4911p1P0GI&)8fzT= literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/.zattrs b/inst/extdata/fixtures/v2/example.zarr/layers/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/.zgroup b/inst/extdata/fixtures/v2/example.zarr/layers/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/counts/.zattrs b/inst/extdata/fixtures/v2/example.zarr/layers/counts/.zattrs new file mode 100644 index 0000000..3cd60a6 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/counts/.zattrs @@ -0,0 +1,8 @@ +{ + "encoding-type": "csr_matrix", + "encoding-version": "0.1.0", + "shape": [ + 50, + 100 + ] +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/counts/.zgroup b/inst/extdata/fixtures/v2/example.zarr/layers/counts/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/counts/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/counts/indices/.zarray b/inst/extdata/fixtures/v2/example.zarr/layers/counts/indices/.zarray new file mode 100644 index 0000000..6c23a90 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/counts/indices/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 4317 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "LJ}ztuG;VpDTVfT)0ba3>Y-Rk+?h1suj-)A>SCk;cX+6iDMU_LTsWFCr}9 zABS4n4!(@;#L3QAf;->ScVREK%m0ln{{nJyDu;N)khg+FlSAplhW^4qB;D_xex6kj zMFDkJiV&e5((TLiC=!hYI|tM>2*p|rH6K2*i0`Y9pE$Y4%1cs$pI^NEoD-rO%7*5k z47kcgBALq6)a_F)lnP~6$(;uqq6*@@8rP)?c#)()XC|j+@*rJV0!p;gd|;2ZH`=ud z|3>C*=Gor9fcssz3os+-)Dq6aiyNw{z#WD^N@9stX=Lb{K9hs7)TL!zrdZmOY<+{OW0X^`k1^JW z=0Pqedh$s3=Ml?qN>;@%HN6OLQf{SdYPAUa*O>~$70^0EsamJZSte+16_^5@)}*|vsE6T(Ox10~vRUvQwFBXxRF;BQ^Q^=l48$@zOBr2VFM1U|+aQ9m&)>!LCuf%NHt$FU;OIkystjV|uNjWj0IpgfupR}~L1!i7>J4((f4h&qr z&t{eU8$$JNBDF1u8+V#{f@oH%9$B*FO)x)kYRyA|P;KoPM|~E#$60k?{}m-ZBC4ZS zaJ8|s)_VqLQ+#E60dMv6UdU=;NQSgkvG*mK63J(X*WDqB+R$oX0_6jD<-ms*g(++j zMHS^^7mkQ9o`LoK&_>jAWr>dJmD=lxOCe#0oJ}^Pi0xk{r_txMqt{gCXv{!5R2Tio?t~Y9`T_nniT$uy%5U{qh5jPN38n@~Y$i|HY|4;a^pe;}kMcks^XbMGk!pZd01!nZ-= ztiC|PoYL-HXI)i$N0@^e2yGBWC9Hm()3yYghu(L)t9gsvwZIp#>>oqsYqsAw_?q1! z5Mdnk+ge)J$Z;rp=B&=sA3F4H2utv^U9Lc@u2$6%z{9{(Pm4j@%ul_>!3QFdn}RRk zfV704bar(IL%G1$dU{nofAF-SDesiAbid j7Z(>dH#ZLt4=*n-A0Hn-Kfi#008k4911p1P0GI&)8fzT= literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/.zattrs b/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/.zattrs new file mode 100644 index 0000000..ee83d73 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/.zattrs @@ -0,0 +1,8 @@ +{ + "encoding-type": "csc_matrix", + "encoding-version": "0.1.0", + "shape": [ + 50, + 100 + ] +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/.zgroup b/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/indices/.zarray b/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/indices/.zarray new file mode 100644 index 0000000..6c23a90 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/csc_counts/indices/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 4317 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "xp_KrMho%h#B?!VgPEZi9 z9ciS!wb$9}_J3;&yX}vz0pkA;1E2}OSsyqv0E)5B^TWFOWGYHGWSW{=mbJFEcXTfA z%60eju2|VWkS`PmOXW%x7fpk(E>XflrddtS%`o7|=wg;TVH5ycA9X_ru?~2dA8cywUIG1AA zkXqaIs-?&;+r|#p;hZE>aZF#Pr&jCHTdC%m4z~gY0zOY{*X0jseqfC2YP_x~=@NmM!+3M{{|Y;Wo$~dY0Z8&D)T@Z{->a0lHy`jV+4SQR@D7LXn+0^>-Gfi=NZ#2;x!z>xM^xDIi^4}Rx+H>!A;V&hh<%V)k4)!+_(uiTF=yQ_+5xzmzz5jb_ZFa+-h_L##;sb3 zH-Sw=mRv2+vxmVINH=VO{DS-e>>=*$8S3SF7DfarHH9wazMjL|N@dtEpP(e)bBQ!4KxDd=~| z85~9ZD9tSTY8r)Cq-f-OX-*Q0bdMrXRh_WzZER7Rii*-S@Dj9Xn54EetWX9KSO@L) z31U_@^{wd77Y0iMh{^(v5qppr)(iwWYYT!$fVFUkAtQpVi1Okk%X+Ml!uZ0HH8ZL& z$*t@krPZJ(;Ks=9v^x>a1Ke(96lR{b1ha!}g++%A68+m4uLAp1Fe3j%q$Rw=(@*>- zZEG-x)GY8WOoGuYtamjf^vu;Fdfzn69YR&?dvQMgG@@23Hbqo`Srs_=J%c&8yJ&yL z=x(ugKhR;k9q{JSkRL9fr!+I9+ly;$wni%8sK?0C$Tc@Zit?`Fz4 z^eemCum-!!hTlMITNOATm=ZGf7H|T=&DfmlUYdrxj9ZVyZ-QWg32og@M&H*7x*b{u z6+qZ-WFxtOGKWMF(KrNa1H8X9E)v9a9ZSe{bp9itnr#%b2>4`;cErOXR&@7l30GBX zydLS~Z^6~@QYM&Xw9Ye##A<_eM!ib68wxb%7~FzPZX2u({C>~8h446em2pSV?fjR4 zBajV7vo|lnUVwkQ)LFS#N0bhafj@{ST*t`XdLDv37w{qU7K(2m=lOrO<^kXngc~eA zp~=HOVeO2`wYF~#l~Rrvv;}y?1P=ycTq?4O-v5~|X6iP;yEo;)jfP{RE&(6WeS^|!jzDIHCs^l*YUB{&6tcO9>!I|*5( ze3APEJ1NJ70i#g_{*}}gt7eh(!f%R98zsoT167yVNS#;m7wR*jm>H#1x%hyp5gw3+ zW#17rNw@>eP?VmGgR7eW%b`3)mSMk5>_<3==$8Vss?NKM=3n4``1*jHO8D=BzsG55 f@BH%djVDUETIdJr3!1^^;nT=vQHr`;-3aVXx`G=}s z-O6jf)dK5QT>GyTR=4UhlU_{6jwig z(MKup0d3?SV@UXQA=8M)5m9W+qjH`OZrk?hwr$%)^6Acq5k zhO(RqSW3LSuUu4BCIhjBMoiS!<;(MxF>z}vebla@;ZOtjp@wqea$93rga?uO5E;h!KOXk&r>PePX zJ3S~z5#8nPqR<`A=X39oYo(9BOeI=PUO13)z=BdzQgk4Nj1C-ll{C1d05||s3M?=f zPh7&{R|An&^d!g#1{83RB07k~0kt`5L18t!qiv41X`?oTqku=-#E=W1qlLy&2vSG$ zHL;N7=+X9a-Dp44Nt9nd#cR(< zrTgSshG?Ly^z7us}3(OR!*9S_xQYr5#s zH6*PE$a_H1)-h#hO|o33yhPoIKKI;n;wDrAaXl~VhO_- z)7`IUDx9jOSb6!LJyLLMPx_ucdscAoi6a14gq6K#5ADc{hm^4gYvp*n6_w0ASlKI9 z(4(>xTS3Q5*TEGlq>C%;w*uK_@8UfI5_wBkthk7Dni4!kFSZojJ$A7j#%~2OR#4Lb zI4)j%Bj8+dk7c;$4;wbj?qS0e#CK9@{xB{`cOtC~;DBB8K|jcs7OKPiNm#b|U35LF z`7-9UBqj=Iwo(@`6PU^|?}ieuhN8MJO#d4p6n_lwNYA>E**EN7O>ntkg~FK^^tEt? z=+%mb{Rh>oF=NI|)~3nQmaX%ni2zn$&-Hv)#wEA zE0)WW%h5;an_i2&M$l`oy%KpPV(=?q^qTZq2=HKAX_65YNmdo)2$@oKh|mv( z!j0l_P)+)^B|$i{L_r!>)sZDfmT)C#78or#!YjHI9bBR#M|5OK7Rao->9|Me0=fDs zoYsYC@pMIxbn!!lepUCfGV7{$^R3o{%ers&t;=FgyN~e0o+gxa7d$QGTAOZWN)KtG zb?CCfWPJp`&ReJm?uzrOFh~_(yBe(XT|or+I3u+46~-j6uvuadQuive>v_hyRAp9F zm?{5zY|S-YD=WKJb}fi`F)|j}y#>61L2L|!AkJ0vS_key+EZ2n{}u_MZ2R))wJbG) z618Qu_=u~rYNPVXoaf1V#-Z$~Sua{9HLHg*m#D_M=Up`tR3~+*dKW#y@KS<_S#l&T zEt-}lViH0SuOc5u8U`(KZE3?OJkhjOaf+o;6Js2_PaAl#Ks3rI9X0zAOM5vfLx=t@ zN$(|1WZaY*?vi&b$p%v!QVHdUTFZ6REE{JV3L0)CnRze4dbCiF7V4vDIYUZI2Bh+a zwi?m4EmzyNB4zfIKr+HEFwjQymcFeKX_{3?W=Q}WAv>dPZFG6+~kgMvgOtrU#z$nVP08yPIxs0xzN6U=soI><4WU}8Op zJ=Dt6*Ys`+swMO0&W@27ghzL3*iD;QUT%@0VfX8x7)GCCfMn=o;CCev<`U7JrB-oO zHnc*>i|C1nO;JY4-S9&Xgxq~0=i3ZJBSO(F?LrRg;3?zUwW^T1(ZO;QD|;}c-Zo~q zc04Ub-lM!%cV?aa#4iZ>{rcr+=jW63QyeAb=SMW6U%%{rYGFl=$j?^4{FWM=4KFY7 zki5IC4YKm{LyGm=5%FJ&=;eqmri8CX^j^dri|{Tk-(*8A6ifG+1hsSwEMJn(@ZYkP zvRXDfl>d0@vD9Pv+^MOl)amsu`Nsg2ntJS*j#)}D+A(7aXaT381!tUBsmJ1+gOr)7 zY-LvE_gBWTs%|b+=$M}Bd*Nu=lP%7yuj(()G&VScohTS?pYCZ4)VWLBf=VfV0?yPfz zZ5G*ht!zt)8AE2z-)zM*R=4ukMYOP$yBgJ!h^vZF&3=NaE--TH0w3Ycil`1I-? zXMDcCO2>5sUu?KiOP!jSs+X2dD@C_ds?urGp5V3|2}YyI11_~N4Gi$K(qP^dorZQX zR-+I}_Fj{XI?d`mR;tI(oqPP8xPzc`z#=B$<{P7rqYjD6xc^)`bvXBUs(9m!#~+W% zrQ5`yDfIZc$Boy*{dba!|35s=L@CkkI=d6?BH(cXyk#KNIy}yR1&^~%b;j}qkFyS` zx^szfkMpfM8xioF8ft4B8frxp4+aDtXDuTLWQc*s*mNMM#Ex6l@q>=P59-)a z+{7KXZvB9`W5=x>&EuRXLs`xQEG6C=_c%=kA|7W)eXw;a9%si7%;WU^!#?+6KZ`hv zSRmw2A`uvFqmnSv;&IZId-?t!J?v{g_@AncCQ$p(3&1Q?@{Iq*e~6L0%J)8pKIcy~OAZUH-Q9_MiEPu1|b zhMarH&@c?TrZ;J2PrM`oJhHTIibGaadv0P=OPq04F{s}z+ zWK6~jIQ0%3N9ze0wTxsCl@4fTQVm!LtYqyMolSJUmbn3)s-f+lI-3pu-r20JtsSRT z<5-CsM?4N^lNfN7Ih(7-8OVV5MQ1Y*7&q<)RHGAE#~b$tXESA0{|aj{+B8%VsxUYN zM*XG!6`^~)jQ$nbYF*LaV__kRqsJ(E2tE_CiEy}0JYwbLyfS@2llkVGtKNK5#3Y0uzCk{YGz`5u za4J{9v+B(oaf+p@OpKwCjoP#c)<1J9 zFJHba?#4zUb1DtyN4VouUT)kFWG`=M{G(F|rV&=0$_+_sZh86g2CNf>nE2(zi?x`~ zBrIkYWX@5dMl3D@ouWq#ySRnI*rLT>5*`WT9DUA9(A`DUSBjd`Vf?>1q~@c>Jym2`T6$n1RgO*VNbIbFXla1hg6u^dl3T>{>I|JRnkA( zT!WQ4mSTAy_n=aXeq%oD^~9~VXdSFvTdLhQ&Tc(`wP4O|t}Ns8D)5ZSygRO}YY}0l zZJw+R+2H@gla1;AkmvAYL$UpFU$$c?I*Zjoio;*tzkhhh%?+t1FA&nk5T2}hXd?Xz z{lLzdr)KW#TJZ})#oDzMV_4TAqc}<||KQH9T{~v2&E9cmE5>MT1@7z^c>mO$t*F5A zto@I;vpMZ^+TX*Slamv;v-h+IR8CI&_G)h_!D#J`DWCT)^RQEeONXh<=V$dDPF9w zDj+8O>R0B!W(WSOVG06VcDA4p?e~4$ zTP7Yq_v!HWF1|}i=}J9VEd7bE>we~R7rkx&EV>)LjWwrreoVII1^io>U#)r{MmtN(z9Eo(o(+|8ubcUtm!7d$*+ld82 zEi#q1G~1TAqDvWC+F{d{!lFfwJ+|mEaR)(<0kdMP$;4pV>mv`+G_Zt4ajviiEh40w zzBYvxJ+>$yLZ4<#B>$EwHQnx1(7c)D&G)Jc3N|-4tGb}N*}S{z>doA0t}fuNZY~J& z&CSgP1x$Tc`n)feaGF{8AQvKH&4u=|BTqjr}lvhihs| zbeMHpS5s5tO1Nb}4a=hd0$oyb7+%AwriAPn*h+w%h~0MNO31jHI8;(oQbGo7&CNM| z=iHp5Idl59Mg=Ks~OK?@{@W0@tJRDp@29 zLrjLyLnd8G&x844HT_&0d-T`?9yCQ)YQ~ku88c>d?|xdsc5$8*O0q3t$aULN=&= zS!0QcbphU524*TA9=o9M4FEKT37aSqMk(3eN6qhD`pNX^mo8mWw{G2Zsav;8({*Y3 z2GVZbrvIcHi)jX2n%<2c3v1JVVmu%&O~2F)sSTP=jsm7nM-mpr@f30gJsq*>%4c_n z^`yz?Nb@J>=d(NT?sByLS6`;Q;Hw05#2%F(h_2v_P(>E-?FRtLm z4`Xw)(D7yVZtlxRw60SjP#SHS;zu7LfaR#w}GiZrr z;~QgI;<0v;F=){CC4-PL?m_aFu!XbT^T-(Ype108AHhN1cHo}6UhZvV>zZ9_9IV#k zHjZO88t-f)0nEm6#2ZBh24eg$qShc0*~sR0>(^VuV?@gsBgw|radz8SXr0S4s6Uw2 zBH|{Zm1+lzrmC&ovE!J-Rcih=1lkv@c35k|>2-8Eos+y{LRaG@LHHnB!6=_wI)T@fCsh1IZk!VvB2>@C3 z0u5)C5Cc38Xku}+ddb)}kysIcHm1m(Vf=BJE;EK^j_OSmQaMCICug^N+~H}(`qFq}82PcLJWY`s~Y-bXGdsX*Coh zo&`VYY$vcmj{GDER4c~6Ns|ye+sSZ~Itg(CrJbGB>1+;dUL9HqD#(CluX#G9h3mq4TczQ;(z?>py1LR}=3iH;Is@v$yTTx0fgv1* zfdo!Nv4K!(EU-fQE$J@Xg$ctM5GjjHUHEO=WwE-WKB+^iajNb+&i%k$ZwbaO!m^i_ zl?T;IZduaH`nhZJkb;*+piL;{<)rtW`7hew*r#f0A2ec8`GU{(f3`rMEhsEp@Y!bz zJ}V?zuvH7l=(EoXNel7cG71;4;xhZQLb$fV0sn%nMq03-&@zZG5I^|2VFP9P&#W{t zW4XfN1)HPT?4>&j#+=0FB_MR=3iB6cE0$rlLe^+xnFh^x7Z}j62Efi=yAOJP2 zrcpuW_U-4M3y`-L-G=QpOt)nvS+QFC!DvO-u8rbdb4T|^N3$TYcI{|GMfc)P#0h)j zOqPk_Y(z)zjXUFOqgvZRO-qr&8#h@ii4diTy%b1x-n@Bs_wWDdyiY&1w-mt6!SVptUq@W@40|ShWRYyt<_=<~FY}30MSL|wvneEjSpA5xV z6l>b>d~vavK!-7N4j3j2#c{w8#WpE)#iU4r21QxV!&1y75NZv@AC)>EJ>PlCn)BzU zkaX6R^YNtfl=D;8OzAvjiXqgwGvpu$h)YvAjRKFr!_~QSLuWglG9@5)Mq!2_L96jPkc4(U5Om5DLz#EJa1)h_fHZ1!j{{j&+ksw2Q1Un6hF_m+Ur^*9UxE^*Oo_`@T))$@rOX<4$vsOSqd`)1XF*@V++E73hy#3QJ5?U z0-#xzaA}Xwgz(!Y(^m(>#)0*qG?sERO6we2y*Sh~igU1<%5kr$Q@dQ8+GQOJ@l&T> zVn9P8jPVizlMH&8+Kg~&$<`MI1;$hemxu5!&-&1`)?(@`BANTqADLwVE z$Q$zeAo>_l3KBya1`aTN5CQT1r~2qAV?hucR4zCLE9gESe;?e~oD*Yn#xBnpYa!=_ z6GQ@YVyr-&SU&c|iJY7hCp0#PtTcA)3u8~f4!_ai!vk!I5G+AKuv<=+oH#MIP%|Bh zR$Nol&>~aCZ}~ff>Y;dCZ-!F!OlW2?%E^rC9iKxSrjKZ}Ee@crrlGw2AnBIh>|u6H z%AK|XTuoj0`9!_$ydob>sG@09_x7&4#7=BxID9fOx~qdm(6-^ai74l@S~Ud{1#dqNXP&eZ7N z6m=`vlUJtn-AENYB~CS`LKvfH3G0)$S~Yu{&E;bervRr7wP{wh-_*6BIe^J&vkFkA zz?&mRZwgqoftU53=0Jtmz{k0>ELw%X*Sv3U%JqdDnS>85Yu4&`;DpKQk*inp1u0rR za%AJ`k?&g$&`@^fI>i`ADrIEKYK=@G7u*4))hVk%uZ9sGBIJw}4ET|pW>m0JUbL9y z`o)VSQi=`k#c1N8A~FP$ZHv>CQB)KY8wM;p0@6N3ix+Q0gf+iz`Uzr|A#9t=qRjP- zqJc#NCE}u@fdfUxV!|Du=uRdegY9Z(%lsV8G(NthqCICEiV+T(XwYmNAvn?!oZ?pp23%WRr(f^`P?kvvPw6e zR+d{&F(tM;$av#s1bc0CyFJ3N7}NcBB(B52B2@fKQd`kU^kZATlxK_39I)3^TQjsi z(?K4K)l81Q6HvGFB+LXm7w_A8D}-p#vvT+y3ry6G*YAg}z#7dv^b$Lfj+Ez7d_-?$p?@HM&`~pj)vi&pGf;m;k`s!fme>um} zX%WRch8?k8@`7VEoOky&28Vx~XIl@9$8B6_JnQYuS&}$eCNcKCAnz@?)3$5kutRJ< z^AUXM2C-l0H9Bvc9mVr_0N?&N)wrG)u{|G;cj?2~1vwgnC323Wu>(U@uw51NG)dk? z)~=1m@$jM23i}*m-YWMM=L*>ocHV!X3WCSCw$``m=Gmj|NrLl9YQwX-Y_QYUR`}`Q zq~|c+i{ec-mefx5MPmdz{5}Cn_T`{eza%yo#0k6M94U4H4#i6k zx+~v(ziEp5j@-{ej`;(9f&G)mTR8!GpzJie0^Qxq8b8&AW?F<1p*5Sml*>#bXiG+LOJzg*LBo{p4rb31sU()X2A3=6^vdQ^19-1vGy(3Wa`WgL&U!YVx-953U+0O!@v&}wOrcTI8;*g^ zyWi=@&UzrdnzrR&^9^F(jdhN<;^ooX&GM*`q@cT^Ud7JiDLm_0Yd^O{dLCmD@|Swb z!ZlzRXJSVk1(iti(7N>e3`fOr^hO{yE+;vS)m)&u`xZJtH^E>5$n{O_04UmDXS0=hpw+ zFU4U)`nY>f-X~TqsJ7nm*hNv1^mk?m+?V9|3XWGy7R!TXA~B@Xf(qFle33`9I`#6* zbUxvrdh=zDGJSoO+=gIOdE7HIHjq<}!MFd;tfA{9?}Lzg-Si#H;D*R?Ac#WPT_=m+ zu%Ok(N=p@bhpCKQW)SmT#qtLE)(7Y&ao9Pu(we-kuW zwHaWqv+0ta3+WL?MY&}@)$Y1;YAIw@O~dgaVb4(&bRN!Yyk|QaAbpC;5A?QJ{`kOD zBiPgW49`N7eY)s1&Tl#oW5J_83)&(9V`H0qAq>F)xk`Hze|*@wE9UnV=h8#2t+PG) zqrRKwjDcfIJd0KvD9oN2p!IyU&^Q}OXuCHYTA9G3&nBSKUNNsSxR%X?EW$>t2iN9~>OUfY8uhFWdF?{EA6my|a*~)}hfSz(Z)HH@ zwPCnvhRZtVB6;~C_bt!g?|hozpOgSK!XUu&ZR9aM`icDOrj_&o_o#=g*VQwtyhyWV7XqE8!vw^3Lmm^(5s3h`mRqGL9yq^J>*+MQftAK(($*6%4FBa)ZS)`s9AqH z5GrKzW;DS&ov4Tt5B-_k>YzI4J@oQC=b?2}1W)PX)Y12uM4>9w^$-->cXZ$L9-ZDj hBK$$?rquP%m}SXEJ2Z#-MNa_M+B|r1k+~H_{~K-MzhwXb literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/layers/dense_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/layers/dense_counts/.zarray new file mode 100644 index 0000000..5812a4f --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/layers/dense_counts/.zarray @@ -0,0 +1,22 @@ +{ + "chunks": [ + 50, + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "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 H96$g7YBmby literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/Int/.zarray b/inst/extdata/fixtures/v2/example.zarr/obs/Int/.zarray new file mode 100644 index 0000000..052f729 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/Int/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 50 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "B0%g6#Q!xI7@3$^SlQS)IJvlac=`AR1cih}M8(7@Vxs_ KaJTV~et7^Q3@ds7 literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/leiden/.zattrs b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/.zattrs new file mode 100644 index 0000000..198a2dd --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/.zattrs @@ -0,0 +1,5 @@ +{ + "encoding-type": "categorical", + "encoding-version": "0.2.0", + "ordered": false +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/leiden/.zgroup b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/.zarray b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/.zarray new file mode 100644 index 0000000..d8bb08a --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/.zarray @@ -0,0 +1,24 @@ +{ + "chunks": [ + 6 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|O", + "fill_value": 0, + "filters": [ + { + "id": "vlen-utf8" + } + ], + "order": "C", + "shape": [ + 6 + ], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/.zattrs b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/.zattrs new file mode 100644 index 0000000..6e14470 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "string-array", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/0 b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/categories/0 new file mode 100644 index 0000000000000000000000000000000000000000..17067cd3e2b813316e5afbd82d35a0db8421ba76 GIT binary patch literal 50 mcmZQ#G-gy{U|;}YBOqo2Vn!e~01<{D!U#kdg9sB4VF~~)dI9MG literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/.zarray b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/.zarray new file mode 100644 index 0000000..146ad9f --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 50 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|i1", + "fill_value": 0, + "filters": null, + "order": "C", + "shape": [ + 50 + ], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/.zattrs b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/.zattrs new file mode 100644 index 0000000..2b8d6d9 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "array", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/0 b/inst/extdata/fixtures/v2/example.zarr/obs/leiden/codes/0 new file mode 100644 index 0000000000000000000000000000000000000000..2058b1c761ca14ec5292f78c45c92f64d2600fe1 GIT binary patch literal 66 ycmWm3u@S&948uT>6c=(f$o@lFF8)x!`gDNjU)Yig-MTASOvdkKCJKnSjfPx2M*%(n literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/log1p_n_genes_by_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/obs/log1p_n_genes_by_counts/.zarray new file mode 100644 index 0000000..ea55289 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/log1p_n_genes_by_counts/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 50 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "?5hHNm#lJu=d&d>*xSm)bgfK|zwB5Q*2!{8;Kv z?ASq}z>5b#iEiCI=s6L=gDcnvKfY>(zy7EIa5g<@0sx**KbEYF!ip)_02P0iK@rY7i-#@S=dG`WE-D2hJdesxaR zKXT)}ZkpQIwjj6Bh6BM;)p^TnQr zklz*|%i^}*$37fB_`M-U$m@w>#J>4)a7f)ai0f{ANLO(gv|`sS>%n2YPV41sS{^zt tWvi3AZrloj)%vS!{6{xPK+#vAatSV);E8TDXqo_^3U0*;xao`M{s6zOq3{3z literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/log1p_total_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/obs/log1p_total_counts/.zarray new file mode 100644 index 0000000..457c7f4 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/log1p_total_counts/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 50 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|_`l zvyNQ+D)%+TPFQk}-9fHRU+vN*-+G5Vv%UL8+SbW;PuLcr@6TB~l9t-)6mNOHH+74E z^q%M4=^E*KQn!UYN`0Ugke+HA<~nKBiWMtYtzNNu&GJ<%S1ew>YRSq~E0(QUwtUU< mWh+;&Sh8}(nib2JuU-Y@u3Ecd`HEFbS2%zGD}!hNm;nHhp;z$$ literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/n_genes_by_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/obs/n_genes_by_counts/.zarray new file mode 100644 index 0000000..7695864 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/n_genes_by_counts/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 50 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "*}*Q##28n?}&DWU{Xsi)-zFv4~G@dCCZ6-xjB literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obs/total_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/obs/total_counts/.zarray new file mode 100644 index 0000000..457c7f4 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obs/total_counts/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 50 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "W&%nqK@L$8n+1@iC&^{>A#>c}>-PTLX&ClLA%FH&# l%FHFuNyptG!okKW)F;-;+&jU+%HBuM(HR6-8AJoX3;=0~6mI|k literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obsm/.zattrs b/inst/extdata/fixtures/v2/example.zarr/obsm/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsm/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obsm/.zgroup b/inst/extdata/fixtures/v2/example.zarr/obsm/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsm/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obsm/X_pca/.zarray b/inst/extdata/fixtures/v2/example.zarr/obsm/X_pca/.zarray new file mode 100644 index 0000000..e9dc91a --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsm/X_pca/.zarray @@ -0,0 +1,22 @@ +{ + "chunks": [ + 50, + 38 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "UfE>NWbb+JMMab{$|xCythiPs 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 K^s~SA{qaDiUc%h~ literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/.zattrs b/inst/extdata/fixtures/v2/example.zarr/obsp/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/.zgroup b/inst/extdata/fixtures/v2/example.zarr/obsp/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/.zattrs b/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/.zattrs new file mode 100644 index 0000000..ad72404 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/.zattrs @@ -0,0 +1,8 @@ +{ + "encoding-type": "csr_matrix", + "encoding-version": "0.1.0", + "shape": [ + 50, + 50 + ] +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/.zgroup b/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indices/.zarray b/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indices/.zarray new file mode 100644 index 0000000..81f30d8 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indices/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 964 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "ECI@bPTYm7@NbWsaSA9Cf~0CxH<;t5Szc64d!5() zcnBgjtP69zFp8V5zmL@aq)?kNu)eZA>nDAT6dOWxh z5HK&c7lb)H^f=xRXknQ!PU@z`cx(^P;07o*U?v$~W?lt;+pugF#Th0}u=yYwb%O}| zV4HE-2;}_)Zn}P$x2GgizP1BMTx_`SzyaT|fYGk!heg!`17G;yq$F8|s*NO)wB-5R zr;E@YS}FYbk>QFY?+mHvy8Ypfy<8$6wN{K;htJ+Bhmfl))E{ zumu>y!fn|O0%N*~92`8tLT8=0y^&`uRpfPC9JHdwZ%N^({j@xjopqUrpVOFl!d(}F$$q{*Bx xFPmZHWdec-?_dkCh{3ecT4XoeW=-cPP%(tIY&PEHnh50me*gS}?}Yr%$v;|FaK-=t literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indptr/.zarray b/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indptr/.zarray new file mode 100644 index 0000000..fab71fa --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/connectivities/indptr/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 51 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "unM literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/distances/.zattrs b/inst/extdata/fixtures/v2/example.zarr/obsp/distances/.zattrs new file mode 100644 index 0000000..ad72404 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/distances/.zattrs @@ -0,0 +1,8 @@ +{ + "encoding-type": "csr_matrix", + "encoding-version": "0.1.0", + "shape": [ + 50, + 50 + ] +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/distances/.zgroup b/inst/extdata/fixtures/v2/example.zarr/obsp/distances/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/distances/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/obsp/distances/indices/.zarray b/inst/extdata/fixtures/v2/example.zarr/obsp/distances/indices/.zarray new file mode 100644 index 0000000..b59e131 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/obsp/distances/indices/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 700 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "x^5QJs0K^Pe!Y!F~53Br#75hpjvC3A~C)ZQT5Xge=1 zX*)&|o!Xo^G@8hy*=fC401GmO(?+ZhbXy0!h=u2O^^0&H(pYwWPB4B@#%XJe=Bop~V# zC5yWK`GExDsxf8PV;b*>@KwJ)BlpJvF{ z5Ea@V(Y?^(tJ*$rA-JW1!SBl=S&ap5VMJ!sHZI$zN6U?6n&0s#9^evFV*{eohQZpJmH<-# literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/.zattrs new file mode 100644 index 0000000..a643cd9 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "nullable-boolean", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/.zarray new file mode 100644 index 0000000..96a710d --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 3 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|b1", + "fill_value": false, + "filters": null, + "order": "C", + "shape": [ + 3 + ], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/.zattrs new file mode 100644 index 0000000..2b8d6d9 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "array", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/0 b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/mask/0 new file mode 100644 index 0000000000000000000000000000000000000000..53a4fe78f4c83099c5f2a4caad8942829976b375 GIT binary patch literal 19 WcmZQ#G-hOGU|;}YVIXE;U<3dJk^oWw literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/.zarray new file mode 100644 index 0000000..96a710d --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 3 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|b1", + "fill_value": false, + "filters": null, + "order": "C", + "shape": [ + 3 + ], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/.zattrs new file mode 100644 index 0000000..2b8d6d9 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "array", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/0 b/inst/extdata/fixtures/v2/example.zarr/uns/BoolNA/values/0 new file mode 100644 index 0000000000000000000000000000000000000000..06ea1a1dd09cb65062a75ced2707cc33f870e89b GIT binary patch literal 19 WcmZQ#G-hOGU|;}YVIXE?U;qFFlmJoy literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Category/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/Category/.zattrs new file mode 100644 index 0000000..198a2dd --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/Category/.zattrs @@ -0,0 +1,5 @@ +{ + "encoding-type": "categorical", + "encoding-version": "0.2.0", + "ordered": false +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Category/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/Category/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/Category/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/.zarray new file mode 100644 index 0000000..eca134e --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/.zarray @@ -0,0 +1,24 @@ +{ + "chunks": [ + 2 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|O", + "fill_value": 0, + "filters": [ + { + "id": "vlen-utf8" + } + ], + "order": "C", + "shape": [ + 2 + ], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/.zattrs new file mode 100644 index 0000000..6e14470 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "string-array", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/0 b/inst/extdata/fixtures/v2/example.zarr/uns/Category/categories/0 new file mode 100644 index 0000000000000000000000000000000000000000..ce7b8ec266513862d56663b31342eae07e7e8f06 GIT binary patch literal 30 bcmZQ#G-l*uU|;}YIUr^NVn!fN1QAI94YdI| literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/.zarray new file mode 100644 index 0000000..65b4e12 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 3 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|i1", + "fill_value": 0, + "filters": null, + "order": "C", + "shape": [ + 3 + ], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/.zattrs new file mode 100644 index 0000000..2b8d6d9 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "array", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/0 b/inst/extdata/fixtures/v2/example.zarr/uns/Category/codes/0 new file mode 100644 index 0000000000000000000000000000000000000000..1b302c17be6ace8bead0fc224aa208126fb2958d GIT binary patch literal 19 WcmZQ#G-hOGU|;}YVIXE;{0{&Hk^xZw literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/.zattrs new file mode 100644 index 0000000..7c9c5f9 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/.zattrs @@ -0,0 +1,6 @@ +{ + "_index": "_index", + "column-order": [], + "encoding-type": "dataframe", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/.zarray new file mode 100644 index 0000000..acb06ec --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/.zarray @@ -0,0 +1,24 @@ +{ + "chunks": [ + 50 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|O", + "fill_value": 0, + "filters": [ + { + "id": "vlen-utf8" + } + ], + "order": "C", + "shape": [ + 50 + ], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/.zattrs new file mode 100644 index 0000000..6e14470 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "string-array", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/0 b/inst/extdata/fixtures/v2/example.zarr/uns/DataFrameEmpty/_index/0 new file mode 100644 index 0000000000000000000000000000000000000000..1c53ad11b01ba20402350e4066fd78884c1f15c0 GIT binary patch literal 269 zcma*iD-M7#5CqUE0z`uX)?*L^(U$VlT!2g92)75#R5d{m#Ouyv*ECVJY7-#H6;J}W z=@Vxs_ KaJTV~et7^Q3@ds7 literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/Int/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/Int/.zarray new file mode 100644 index 0000000..82cf922 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/Int/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 3 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "H;I;Bsi@p^1x|kf<}j66iq_0QGV$IRF3v literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/StringScalar/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/StringScalar/.zarray new file mode 100644 index 0000000..79c2b48 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/StringScalar/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": ")H;$k2!0pcPc&IIB-AWjEj05Gru`2YX_ literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/hvg/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/hvg/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/hvg/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/hvg/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/hvg/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/hvg/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/hvg/flavor/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/hvg/flavor/.zarray new file mode 100644 index 0000000..9082ffb --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/hvg/flavor/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "iE;!+?k0^&p9 literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/resolution/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/resolution/.zarray new file mode 100644 index 0000000..7dd3880 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/leiden/params/resolution/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "9 literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/pca/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/pca/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/.zarray new file mode 100644 index 0000000..576a0ab --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "|b1", + "fill_value": false, + "filters": null, + "order": "C", + "shape": [], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/.zattrs new file mode 100644 index 0000000..f7b936f --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "numeric-scalar", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/0 b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/0 new file mode 100644 index 0000000..6b2aaa7 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/use_highly_variable/0 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/.zarray new file mode 100644 index 0000000..576a0ab --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "|b1", + "fill_value": false, + "filters": null, + "order": "C", + "shape": [], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/.zattrs new file mode 100644 index 0000000..f7b936f --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "numeric-scalar", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/0 b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/0 new file mode 100644 index 0000000..6b2aaa7 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/params/zero_center/0 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/variance/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/pca/variance/.zarray new file mode 100644 index 0000000..406b0ed --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/variance/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 38 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "lV(M+)@(eV{a_-_wI_tQ`&Mejeb2o;391g1$H37${=FP$Pi!y F0swV9Lo@&Y literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/pca/variance_ratio/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/pca/variance_ratio/.zarray new file mode 100644 index 0000000..406b0ed --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/pca/variance_ratio/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 38 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "+G6#FZg>uXIkz7uKG30 zC-=5x#YVUrX)6fxe0g-^+|Je0`rB#(45i;ZJ-=t^;wpW4_RdIK5MX7Huwi64U=0UW FRsequMw9>m literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/logfoldchanges/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/logfoldchanges/.zarray new file mode 100644 index 0000000..bf8818a --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/logfoldchanges/.zarray @@ -0,0 +1,45 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": [ + [ + "0", + "XcAfv&{&NP$)}`A+lsiBqJRp>&QM6A-jY$GPZ1K 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 literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/groupby/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/groupby/.zarray new file mode 100644 index 0000000..9082ffb --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/groupby/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "iE;!Ge;fwJ>}Gyozz0&)NV literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/method/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/method/.zarray new file mode 100644 index 0000000..9082ffb --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/method/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "#~T8vq~R0%8CF literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/reference/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/reference/.zarray new file mode 100644 index 0000000..8ebe55b --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/reference/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "iE;$k2!0b&3VQ~|#L literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/.zarray new file mode 100644 index 0000000..576a0ab --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "|b1", + "fill_value": false, + "filters": null, + "order": "C", + "shape": [], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/.zattrs new file mode 100644 index 0000000..f7b936f --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "numeric-scalar", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/0 b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/params/use_raw/0 new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals/.zarray new file mode 100644 index 0000000..c277dff --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/pvals/.zarray @@ -0,0 +1,45 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": [ + [ + "0", + "T2-r7>7cD$Rg@aFDYa_v+G^D%R%#_8tsRnB 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 KC3`fHHU9_8H4DN3 literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/scores/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/scores/.zarray new file mode 100644 index 0000000..bf8818a --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/rank_genes_groups/scores/.zarray @@ -0,0 +1,45 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": [ + [ + "0", + "<|K2><{S2mk;S0002{2LJ&6|0W@e>3#_GI~1 zf`1$4g}oHgy|jW#Xr87zG`bSd5)jj9qp`asu6_+@5*BhqP z`T7C{1j+~^l&ei4!3J(w@Dr!JLKtMo1KtDe}KR*Qk96kX6{|Y@lJv_a=y}iD^ zzP`S`zP`S`zP`V|zrVi)00I)g0RaF1BWZQyGk3^ul_*J*Zd$TmM9pnYVX95kgy18oLI---0?NdN167?2v zt_I15(q@NNqwGbKx;#sljg*W?LmB(_@9pT-#>mi*Wc;{6)!qVXFxzeKtPKD0SN*C7Cr$03y}d2h5-Nv0ssP#0ssFViI)HUD-hcE zl`|9MWf4J=;Tt+oU~}mdCXV0f8TL?N?-lYm+(SyD6N@zWCjEOc$S4>PJ!~q$dkgfcKvLFn-0x)yd;IYe z9!Nq3?UNUR#-aj6zD&G$3Zgbr~~MMg;>>J_e$19+h6apUA^UxKVSd`7m*Xp z61Q#{?ZfZj$A}Lg+rdhy=t7kC;SbW2?ZjmHJyuWvS?5EFnKKe_heXjDxlcuRkZ@~e zSa=SJ?#vpHW@ zS^%KgYs>4?>G?`WIw>L<5)B9f`1J7Rhj(>#T3S;{JvK5b8Up6c zwXl$eg;YE4&ccqffB}Z6)7=SiiJ7Rq$IJ-~4iOqCDk>{VQGJ7zmz|!WvBS;J*V*Fo z{s<;4gs+YP0RjL4d;t#v00se#0RRF30FeQ4JUhL;y}iAQ0S~bR3J|}K0rLMJz?N>Z zZjy%tp&p-wfZ=6K2q8|LzmO573fqMfFHp`VOcMLd!vWZg&K=Dzkq9*w&&ANKj^`mm zw{CqffslqRT+srte4~A)o}@MHCq&WM>K)NcEWKS=V%R78;E;}JqQh& zr~fI7B|s_yT4;h(RiFnxl-V_VS#QWI$!&fjhNfWdAAw-!;5;8F+lXFIOGqmu8}r=L z%fi9Fy12HrshyIKifv$1N<}|BIyNvN7ZU~p_Ug2ejDtiB3B8;^Ms(BYQB`eqj+~>g zzro++_8TH5EHE@XQd@F+eSUt2jgOO;o1>(t%IW(14kkviKa2qnjsXo2KZ*eX0swJ6 zJw3a%YSgX;HX2|t0ixWkR+ zfh-prSD6Zvc1eEo-0-U)Y{GHW1$#CuRQH5`PgDqjeP_``hIPmShN(6JKoa{CneAUX za;Jboie(t0(BQr_M|y_#>L)p(n?3)d>@kXHza<2XY&z^`SLchK)fW6nKcF*w>FaM$ zB69jU)&Puo(BFcDbF;spFIm~v^OxV7q}LjaCNjR64y01q1j1_q4*Og=q5z0L;#0sst$0R;j8P`|&xz`)o5$=(0} literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/umap/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/umap/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/umap/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/umap/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/umap/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/umap/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/.zattrs b/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/.zgroup b/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/a/.zarray b/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/a/.zarray new file mode 100644 index 0000000..6b8bc7b --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/uns/umap/params/a/.zarray @@ -0,0 +1,10 @@ +{ + "chunks": [], + "compressor": null, + "dtype": "6|nj#pabyb`#)W|YC6B3_s4B4)08=tY0GpG+7Hm7fsT|K9P<8xqZwQDh9?AU~4IOVY|0?GNO7m9t literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/var/_index/.zarray b/inst/extdata/fixtures/v2/example.zarr/var/_index/.zarray new file mode 100644 index 0000000..bfa845d --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/_index/.zarray @@ -0,0 +1,24 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "|O", + "fill_value": 0, + "filters": [ + { + "id": "vlen-utf8" + } + ], + "order": "C", + "shape": [ + 100 + ], + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/var/_index/.zattrs b/inst/extdata/fixtures/v2/example.zarr/var/_index/.zattrs new file mode 100644 index 0000000..6e14470 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/_index/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "string-array", + "encoding-version": "0.2.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/var/_index/0 b/inst/extdata/fixtures/v2/example.zarr/var/_index/0 new file mode 100644 index 0000000000000000000000000000000000000000..0e7d0ff437db0698e39d67a1750d4d565a4425e7 GIT binary patch literal 469 zcma*kArgZy6a>&shiOG*>Gzl_L=plaC%|$Du-uSi^eX5sDl-V?i#LCFvMvwPn7IN@ zKLgYNcHX01m|irk+v=Pv(U%xX>`IIY(l?O7LK2M@pKS5S{3cy8=b&MW>RuxoVO dX+-WcdhRp^?lcm28Y6canY$ZrzRmorod3aUQ3(J5 literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/var/dispersions/.zarray b/inst/extdata/fixtures/v2/example.zarr/var/dispersions/.zarray new file mode 100644 index 0000000..6f4beac --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/dispersions/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "2-qe^HWnDgxEX5m*2to*9rontz-CGnAIr@A^Q_L_Kx~T;`4H@|~L0=GWy{ zEf^!+qQX)6_(g@Dv>m!CJ+SiM@PH;@QMnaj0-6s}5vZ-lFdNpaXS|0HqXw8Wq7IyN zL+xtSPt&0!*J6L1fao@oSI`Yck}g7$uYTwBQ3@wbii>O1TzEZg`~#)t`Iq^Y zbsHsiOOKs%Nccg0vni3(^=JYj)G-DR{nFkVAApm5 z8RvB5PVdO4JuYAT_k^^!oC=s7oPp}GmP6lpb`h5{%@d9>EsTbV=i~;5sf2SQX!h#7 zonp;fwz>x;sEJQ? zai8SYh+gL_o<0QkMRH<|I;si>G7ZRgMd}4I7C$l>FOfYaQ$VJQLA2*TXT|eb%sU@( zi_1K=xXd6+Fv7UMQu&s3eB9}?UXx5VVDU~<;5&AURXhyXuJDp)(EW2L)F|T+LXKbq zx*yt+Veent!}~MtbV?2Y(t{M6I)0qKVYY3lc#*U5?_3;wj%LdXqy9nD+3OJ??_0P- z{07ed#0AZcf&`sr`oUC2=EB4_PBy~V^a-{M5l{M=%t4NN@c%|(u1A^?GEzlkJdaOa z-be?~y6P*^_Yp|H#Mi{f&(hS}$e=mm&cCmh$IZ>Qx6;th*wN0(*Q&Ct$l$_<)3Kt? z+q%EDz?0S0#lqFcyQiDByKB3|%g)u)*SvMV+Oo9M&yu#o!pYM$v%{X!*4?_bz1E-7 zgUPzU!?V^uKR-V|zdygfzrR1fzdt{}zdt{}Kfgb}Kfgb}KR-Ve00JTa0|x*AGyoC5 h1ONdO000R91S|jm695oDEC2uz0D!+gzdygfzds|^jp+aY literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/var/dispersions_norm/.zarray b/inst/extdata/fixtures/v2/example.zarr/var/dispersions_norm/.zarray new file mode 100644 index 0000000..788682b --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/dispersions_norm/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "McLuO_o2u#3R369*;l4 zE^)uOBdNb!szJUoHi^F)(FH#x9s|JnCmg?qKY2d9IZHnP0DwPbVUEAkX?s6&WQ0HH z-@m>xF@U~ZzFWWZ1T{Zg3f;b6qpv>z0DwQlTIN52ZN9$zxXeG&us}bG{!~9P)?+{5 zNUgtHe8In~>uEoOw_m<0?pnX~XxqKI5 zhFibk{E@$+)mXorC=@^N=ioaR1iL@Y<$OI3+WNnZs82m+y%TB#A*|MJ!34h2z{w~r)vg9dV_ENBcZ8Rmz`(!DZCU3WMSm;yhh C>;anq literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/var/log1p_mean_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/var/log1p_mean_counts/.zarray new file mode 100644 index 0000000..788682b --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/log1p_mean_counts/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "h9cQXy0_8BB*Pb<(MWN?RIii?1(!MiUbgv?vuM z;3AO_+&jEQGr71HgyPo04243l+Jocn$am^*`v~IT^_#QDCvT{y*|SxgOO=hm1F zsxeLlaMCdj8ZtCX4G7r;mx5%H25oz}++8lZRLEQ? zBpp)y0a=5HNcUnh1ezsVjL`?*dyfZir*^mtYYg+pWyK!DFvnGv2FR6}z#DPz{^l!8 znk&A(hIdV48)c1576!5y7@=ftrpn@_n`-k?DWq4)KhT#7lXeOdv{Y4NJ&#p|d8w*b zx*2v-Ndo0OZS^}|q57WbtIBDgZTaT%{inY1wCVL@SNPO?P!=DB&Mx#+@)2!6~GZ*H!1tHz%tZoHC!A=$g!jV{l9cp|pt8 zA&77YB~Xzn0aJ=br&tS!_CGIS0YwU=);| zBUz9~D6W*0yi;fiZ3Ng21jfk@pjED}nS&;uHVSBbdrY|c{(wo5!pLQRDZ zSx%IzMJi-4poN^@F>hYzloCx6HA!r)*Vue(&AOAep#jZ$_z_pKvzQfzb!hgNb*<-0 z&Fe9sx+WcSZ5bH%5g5xaOZDnXnN>Y||N355=Hlt&`AzB8%WHeQud6=l?e;p~-Hw4P se>n6vZq|1E=5F{?lm8kX06GSY;mG&T0NQ{YXzu|G02%PGEpI-40cm%oasU7T literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/var/means/.zarray b/inst/extdata/fixtures/v2/example.zarr/var/means/.zarray new file mode 100644 index 0000000..6f4beac --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/means/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "CVr_ z1H(<3LoU9O1?z^Rp{3mtTxFIxSQomT`arn56aj%dE~uS0f1Cvj2qcR0AQt4FOK?Y5b4nu*gYEL>#6=!@w; zSa^QAi4sTtnwSsQus%fj#xq>1rUPt0dkT^@H!h~g*nd?HEu4;LvB9{P&AcK*(F(I` zkiSa?MrvM9=iBeCgP%j}J4wzSQ<UH z$yqZq@~pHRDOUU%q?#}Xs}#+nKzAMQ&h&kRRbzsdop@SI#$8qKKCS@C=v8tTjtm@) zOb>i}P)Zqp9SB_2qMONzN#x_Nb2*i5ZYd{VSwa4mBJg$$)|My9v@;KyjE>dl%o~o% zg|akfhf8`v_Md_A@$&ES@bd2Q@$m8S@bdBO@$m2R@bK;N^7HcY@bU5S@bK{P@$T{Q z@$vKW^6~QV@$vHU@$vBR^6>KU@bL2R@$m2P@$m5S@a^#K@9^>Q?(gyK^6~KU@$&NW Z^6~QW@$v9KKR-V|KL!9sP(MFEKR@;gk_P|) literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/var/n_cells_by_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/var/n_cells_by_counts/.zarray new file mode 100644 index 0000000..2b1f74b --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/n_cells_by_counts/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "PE(t0J5zqf-d>$Q9LfWOlXV I_&ome3*}iB#Q*>R literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/var/pct_dropout_by_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/var/pct_dropout_by_counts/.zarray new file mode 100644 index 0000000..6f4beac --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/pct_dropout_by_counts/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "or*Yb&iEhrQR?~^PMBE%~Pr7mu+-|XVz|Bs7XA*SZYyWe}^E{R@G z=MFgfjet7<9QPB5@cZJs(>@T910G384h~Oy*q{MBGQ#DUlZPCT;m-J(+yf#<9tiPh zh!6M3V#`r}23>(Vq#h|F4WR3Tal+(1=o#G>bPt-55@jFWAN~M2uRNUq literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/var/total_counts/.zarray b/inst/extdata/fixtures/v2/example.zarr/var/total_counts/.zarray new file mode 100644 index 0000000..788682b --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/var/total_counts/.zarray @@ -0,0 +1,20 @@ +{ + "chunks": [ + 100 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "-Hp xx?M;1ZM(8(&Zb3cHXJy&WYwj4PY!H*bn4!pHYX5ZWpEDwGXSbjRB!+Q literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/varm/.zattrs b/inst/extdata/fixtures/v2/example.zarr/varm/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/varm/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/varm/.zgroup b/inst/extdata/fixtures/v2/example.zarr/varm/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/varm/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/varm/PCs/.zarray b/inst/extdata/fixtures/v2/example.zarr/varm/PCs/.zarray new file mode 100644 index 0000000..24b887b --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/varm/PCs/.zarray @@ -0,0 +1,22 @@ +{ + "chunks": [ + 100, + 38 + ], + "compressor": { + "blocksize": 0, + "clevel": 5, + "cname": "lz4", + "id": "blosc", + "shuffle": 1 + }, + "dtype": "}B19FMsGIWxG3BI99^ zJrHXGmSac~fT4k;c$5PP@(hg`c@{}y-5g6Zh`|8K^AyK&6bBS5)QrOLEKQRLO95X9 zt?hvfiAh<6VJJpOO`*sv&rt})aWo=QNQa_v4>p4)QEm=ciepd>1Qycrs4=i4&oCRI zH5N3~?n{%1!~u2&a2?CAEW#oc5`=WDP!v+!iuo6_G;$Xj0+@oqj~sxYontM_Az2o8 zuq1`dIEv&^5)9)2d7uC^E=2@Pf~0^1td^y5H#_<@=pyI$_at_0>%ShkBn@1j)hDA0MBJmWy7+gY=9MWM}q>Z9r^%O;OJWpY3 z0JvGsBt;exZ@bVGt|KXyq>(zXJg#ARY$%Jm0f{Pd6wOe`Uie50%Ckrh2H1UAlElR{ zHbLNzyl@Mv=1J6oW)PCY0;f8M*?oB+fhG|U9~6!nMFY=}7)PNLJTBoG9{AqGPapyb zG8c;FNS2Bs8r+Z&X2e2hK>!M{r&v-?fy2)YK0J#I7!s916ePfK7>r8On2%(zbbOM{ z2#!StJP%j{1L00~0wEY)5R7IW(nY~gVJsTj^Y~y{4&fXWNRH$W-*7iC;&6Je(lQf z6dvaRC<@z0Q!L8BDxFIh3Kt0V(bQz{7Gmu_Bu*PP2#^$q%45w!A5d<@hg|0u&k904)FsO|5mai$D+sFg1<3 z148(?hOK9D9|_zL!rlz05)0;mrYMeNS$qM7d`Xh*OL!3jh&Kd7lN8`up5*`)V}>+; z-HOC*ie(W}m=IhHIDrhJBMQeb)In%Ty>LH^0^zvfky*m{%xw^1PdJjJX_90B7>;6} zxVK~%xmR*HqzsMoiOQW81jkeuf#stt7>>dqER8kr9EErc#j_Oon~Na$)dpV%1>s1? zUi?V%6otA2$6@7CXEY_st9LD2HpI>Sdr8kU?z;QJ z$CPdqV@;yQ7!R~+_uyqD2oHy!@F~+}RZ%Lx_dVuRIy()}e3*FYZcw+CSN~b)rtR`` z=fmSaZ8WX4Hu}lBg}WpP+~#d_8=6*xIQ3e;9!AG1MkXKq*e8EaOy$cd!6Vwe{^y3n zPtMNkQy&QIQbV5WepGqLZGH4}97l z`QeVo`92{ts>soW@%>IIJmhBw)=VsSQ3W6IT;cGOsSCr$3|ne|9i#n-qOu)F`$wL> zx%j-IKB6KlH_5M#^ZeESVOBPsAMWz1&*9*Qx7uIX(Cxv34Q)EOy7|o+x%d9h0T*461=A;blK-}WbudIhl2-ug=Xpej@%Xe zB$T;+`RG1t#Vl88z{)PgUc<)TNtMLEco*ia=%Ky4Ywk}i9{F!MuOAl_v1qw^UCC8( zU6Scj4hjL6hh7ENOW8$KLKyKW`4uUua$%5-~Wl{__rX z+h+L<2jrvwI)7k-XNLcmAunRU%YF<72b2^4^!jH-=$w-UhgZ&W&mS@{yZX)jq?so5 z-BoZ zTBmoK_SFko#7#@rv^VyRy7jpIM?(3Un+863o`u+b4Svs_H@!CO&F5!pzv*Tii(H{d zzR-3-iSz29$}2a`3#q0(7fOe3Jule(k%3=bI|oc0_goUS=D%5! zRPw0xxZ23z&e*n%7#g@?!Rbq5OzX~?wk3_3(59h%yP>Q9y0FNvZAI&c3EoT{w9{@d#7b(m)7pNHGfT7!6x^C^_kW}=dDE{ zwr3yTk0^V8^jSXB?3nqDD0q+VRYaiG>q677cY_lg?7>TJ{*nNxHHeG*wF-df&W6H-~p8hN6yzO=?EB2!J==kx< zki2=^caL1J&q;e_Y+35x=7A zi^WcF7O7`~ABNAf`_?X+@c#K!TV>|`%T<}Iwy?Qdn{gl8_f4MgpxfrVan8Li9vvp4 zrbNR63}0;bt@L!ibv$@zo8p~+G<2Oa>gR`KdRVpMMaqq9{t2at!#}yne|v43e+f^M zKe~n1^^vZSJfBqjEp*WcSZQG|;-v>Qtd(kUA zdfBJDZw|hAQZRezzU(KZaXyNzMgG;U@k0K2t`Ez`hIJO#-+gh0YH_LtxWs^U( z`r(bCu6F&b4b>Bt_(U{+9NVYSbOwIk@8FPKYgbynY#F++%XiVA!{3hGzWwtr?K9d$ z=$+s6&-tOpgj))S=>(n3y&5)m#iKcM75yg+^y#$8obmm#(D#d@U$h_#UM}c3Yu<$> z^P2v-!u`Q0^VS_rCOEY-_Py0EZ1_%>&u^~nUf$-5Pjo{@OlNbm0egbU z)TcM6B)y$d-}zv>_lx5`eLHjbbrik1pya{DPUGv!b3Qpe&9N_hS@omp*>7E|v?n#k zVsFMqr~foW(XX- z$(2*@qMH2@5a-o=)f0#5n7Ykds&Jx`d;VUj4%+CIHo<9W$=BacPx8KhH|E3z`cw7J zarc}!qL*Ug_fh53zjW2MNjMm=`q#%DY?q_9oZ0HyRXu+F`s*S~yTI|^xtF@F+20|_ z_3fIw>8nDerkQu%oSiYSpnPgZdMM-{87``ipKsXkuj$OGcR#sHrti|Pu8jWsTu4gd zDz`DySAFE07PqxkLwv18=B-qG}U&%N#*9#cFtt$!L4 z;T14|d$hHy&bno>)6%ccdI#NH{`H@+Q$8jQEAAV4?e-Usz0OM_UCu9C6r3|AYwVGo zPv`wJEc;2z2ZOG^oPBWK>>o!4kH0*>t=HO=(XmCTHJek%#y#r#U(;z}`SjuA-5c$r zrbdh{{-XV7-+(6Fy?^(Z{ct?HP=blmv#YxARNTK#xt)9i~~``fN|9`rP;;X?Q7 z_?>$vcP`yUe)~G2%3(SZ)9ny-vtiGimNp!lcAdNb%X`zgQGe$>B*Kr}IPWuQX!p{& zGVkMx)`3m`_;7e@=vMEh{fTY+L@}=(b!+~hu$SwT{9Wm{*L8>~G_><+G@a}9AK#sC z#?>1aM-B6MwzGDe^E01!-<&3e_WNn{=uK-MJ@0h#g4_PlJ)pNQ3Y{|asWQ$3p9 z4k){|qjhFlYPYC(g5bgcP zNByN&euF-KiCjLZYS4y;XSelxyF4hmX>*uPl`Un;u$e6<-g$SlAGam)UQkhs85O2d zR+PuD%nqMAJFrW1XSUtec6S4=oGuwtyP;#|lAKlIQL)jf-6X#b%qq0UH_v@E;>}Ig zZ(#5Ln2t|C@z~|EA>--k-C$z#duKKl`Ubr8>D+(l%)ls9YG~@Gj@_Qxi!Ok-eZ)Dq zvVTm-M@d?=iTt=HsD*CVI(h2YpqQi0GHZ_=lQd-fY5R3-225HvAuY_7eQ@fMw%e{h z>o=IP1^G<Rh3-vddZO$qh1+PVYB1s;t;#9|829E@3hys!!C_4ANgjZXq{iu z0!x|XP;gnzhm_OXyu(H6S$gqi!E~BlSjv`!tj>}ZE82IFJR|igbN)jAP4DE&PgB4A zu0QqT=zt+jOpT_q^(#60(%r*-S{Lk1s7mUuH6LGmI%cPTw})YY@_q+nZgigc-5}lY zwT@ppmHRTZ=L+S;5~f<6n_~>g;0{_;MhkZ|vBFe$NK;y1NmDB&1MyyI?Wyi#v<%YyyEhzWbamhLIyrPn9WqD+2r8c+N zVooz~hJ2k|mToK&XBKc=kg{@Gcs{iN>om+)+Vb|D=Oq%l(FK!rc+qACsh_Bi7TvEYr}1(^lka4Gg4#I zmKRqSX2;1a)$4N;OO3il)5+f^J6WcQR-0oBb%zsc^Y&M%^m|JT`t+Qd)2mHooGP!> zAhkJ6$5?hD)1a%+>$xjjszhhgYR#7PVsWKXBUgv1)2~LD&0={~np~Y-UU5=ls*j-{kP z%AK)@i!~~7euhO+XDQ66F*caDs!f)H!u3^&CE`+f=~+#ATtafWULPU598qPH z=IF&*Yi?Cxs!=0W7t~3Tw_GVzZez3lEKk1{m8Yt(Nu);QzG{n1Tv#5d$yHWy8nwh~ z$U2{>jtNhz(B_nxxw0~8>QU`JOHpCEL|d(}CMfg&YdY#gHK#AGzNpa}i_R<4S#h?t z!d8=;bu~XLLtLOQDUxWa4XKT$BefP-RV7u@!rbu7I=!wmr%J6((w{A_)FeqS6z;1q zVr-FbS=M(GKQ zQhTJ}M7+|%s%^$p&eUi+SomC*9k)3@S6WeO(3Y!{EE;*KSaU%uRh>IqdflpuKT@8;86`z!+JxHdD+OxH zhFFV6uPC%68myeMT&uEXabh*wXgWqNQI@4r%JQzo=V&YuhJ;+1%wSAQ)0r|WN~|_R zqPbF{zS?Lyd3iC#du+z&LX+C2O)FDyI=xwT*sxCjl zCYD?FpD8_ZJpXhQr!p8Ng?rgk(sR{$T9xVgY+Y${7vXZ=A$yx}b9JUF&ZMo4i7r(n zS}V`X$~I*WSLv1M3#xV6D2cc_ZM!?s#vZ6D)Nz;9X491`VZ}ycvMr~mpsq$OmSrC; zI-My`++oynwzxu0ZLE$ttIU!XL|Qg$FY0Qt@=L9$HCd%ex#jATGZhh+6OGo*1BgTR zb_S_>d!c!YMQkwaR9VCcYIT`O5vJZLsm?pIey=JbM-@?Kx{cpwDrjjBOifcu#4#n7 zSgS=}qgUnETr5-RxPpX@61{A;t}IuQX2~hdt18n-GUV0r3i*#FEgQ>brR7Rr-vU+Ypxsr{Psp3x6$KagA#-Kixa?WqNHS`@W4O##CK01yrETz8@`;tsWXrx zO9*gs1;S0ZE!3){BS3S2-av=|0)TJ@Q3rs3KmPzkYXCO^fN%k#xnpxPfWPC0QhOjg zz@;6)ED-euC(?2E$qRyj_yu4v5Y2>ZWQat}0%9igD;YTnyl_fr_#2$0Kr|&F1E2_? z2{=`Pr#m5B-WUq|!HEHUhh{)bBb?oYYq`+M!RR$1@EQcr4hS_k`$4A?CA1+13fW+d zz=PNcA`v*x1m_Tdt{_5k?%>=5h;Bf%5ON6DyIaFy2i!q`e*iC`ic&!o2_h?aqTa*= zf(QiQ0XzVL1>(>Gz!!+`z^y5WuqJf%9w2fD(J_IG$P0)j0G9wJg21#rhh){o!A zD4j4C7g6XXK+FZ$4z3%3XamG1Al$+84-oD~z#I@c18f1X0_+fqb-|rQgs8KlGsv_H z5N!d@0VD{c1Ji{o%lljrU*!;}3AkVoK@hl!^;Q5e07N9f214`%h#!UCxU~ktpAeci z3W!bsO~LbjZwkORaAtsr1`*<+JS9T)j*1tcAOx%gmr%!nW8l;gJTpYYgux+N5s(Uy z1yBm28UoZHLOI%kCw}MS@k1_7gv$qj4unWgfG2^YkK@n=h64l<#AqSE(DybXm>^Jg zatC4+f%A)J1>rBW#bpnHsfG)wpgRE%g}KF9aK=gT0dNN5A$YEG@+R<1=tJPSCBkXM zPU8HabX^@d*a4gzoNMgrFv4@Q^DLP7~fIL}97TmJ`5pt2PJ literal 0 HcmV?d00001 diff --git a/inst/extdata/fixtures/v2/example.zarr/varp/.zattrs b/inst/extdata/fixtures/v2/example.zarr/varp/.zattrs new file mode 100644 index 0000000..a204673 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/varp/.zattrs @@ -0,0 +1,4 @@ +{ + "encoding-type": "dict", + "encoding-version": "0.1.0" +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example.zarr/varp/.zgroup b/inst/extdata/fixtures/v2/example.zarr/varp/.zgroup new file mode 100644 index 0000000..3b7daf2 --- /dev/null +++ b/inst/extdata/fixtures/v2/example.zarr/varp/.zgroup @@ -0,0 +1,3 @@ +{ + "zarr_format": 2 +} \ No newline at end of file diff --git a/inst/extdata/fixtures/v2/example_h5ad.py b/inst/extdata/fixtures/v2/example_h5ad.py new file mode 100644 index 0000000..cec5d3b --- /dev/null +++ b/inst/extdata/fixtures/v2/example_h5ad.py @@ -0,0 +1,88 @@ +# python v3.10.10 +import anndata # anndata v0.8.0 +import scanpy # scanpy v1.9.3 +import numpy # numpy v1.23.5 +import pandas # pandas v2.0.0 +import scipy.sparse # scipy v1.10.1 + +# This script uses Python to create an example H5AD file for testing +# interoperability between languages. It is designed to be a small but +# relatively complex file that tests reading of different types and data +# structures. The standard scanpy workflow has also been applied to populate +# some of the most common information from real analyses. It should be updated +# to test new issues as they are discovered. +# +# NOTE: When updating this script for the {anndataR} example H5AD file please +# update the package versions used above, update the script version, date and +# changelog below and format the file using Python Black +# (https://black.readthedocs.io/en/stable/). +# +# Version: 0.2.0 +# Date: 2023-05-11 +# +# CHANGELOG +# +# v0.2.0 (2023-05-11) +# - Add 1D sparse matrix to `adata.uns["Sparse1D"] +# - Reduce the size of `adata.uns["String2D"]` and add columns to values +# v0.1.1 (2023-05-09) +# - Reduce the size of `adata.uns["String2D"]` to save space +# - Reduce dimension to 50 x 100 to save space +# v0.1.0 (2023-05-08) +# - Initial version + +numpy.random.seed(0) + +# Randomly generate a counts matrix +counts = numpy.random.poisson(2, size=(50, 100)) + +# Create an AnnData +adata = anndata.AnnData(scipy.sparse.csr_matrix(counts.copy(), dtype=numpy.float32)) +adata.obs_names = [f"Cell{i:03d}" for i in range(adata.n_obs)] +adata.var_names = [f"Gene{i:03d}" for i in range(adata.n_vars)] + +# Populate layers with different matrix types +adata.layers["counts"] = adata.X.copy() +adata.layers["dense_counts"] = counts.copy() +adata.layers["csc_counts"] = scipy.sparse.csc_matrix(counts.copy(), dtype=numpy.float32) + +# Populate adata.var with different types +adata.var["String"] = [f"String{i}" for i in range(adata.n_vars)] + +# Populate adata.obs with different types +adata.obs["Float"] = 42.42 +adata.obs["FloatNA"] = adata.obs["Float"] +adata.obs["FloatNA"][0] = float("nan") +adata.obs["Int"] = numpy.arange(adata.n_obs) +adata.obs["IntNA"] = pandas.array([None] + [42] * (adata.n_obs - 1)) +adata.obs["Bool"] = pandas.array([False] + [True] * (adata.n_obs - 1)) +adata.obs["BoolNA"] = pandas.array([False, None] + [True] * (adata.n_obs - 2)) + +# Populate adata.uns with different types +adata.uns["Category"] = pandas.array(["a", "b", None], dtype="category") +adata.uns["Bool"] = [True, True, False] +adata.uns["BoolNA"] = pandas.array([True, False, None]) +adata.uns["Int"] = [1, 2, 3] +adata.uns["IntNA"] = pandas.array([1, 2, None]) +adata.uns["IntScalar"] = 1 +adata.uns["Sparse1D"] = scipy.sparse.csc_matrix([1, 2, 0, 0, 0, 3]) +adata.uns["StringScalar"] = "A string" +adata.uns["String"] = [f"String {i}" for i in range(10)] +adata.uns["String2D"] = [[f"row{i}col{j}" for i in range(10)] for j in range(5)] +adata.uns["DataFrameEmpty"] = pandas.DataFrame(index=adata.obs.index) + +# Run the standard scanpy workflow +scanpy.pp.calculate_qc_metrics(adata, percent_top=None, inplace=True) +scanpy.pp.normalize_total(adata, inplace=True) +adata.layers["dense_X"] = adata.X.copy().toarray() +scanpy.pp.log1p(adata) +scanpy.pp.highly_variable_genes(adata) +scanpy.tl.pca(adata) +scanpy.pp.neighbors(adata) +scanpy.tl.umap(adata) +scanpy.tl.leiden(adata) +scanpy.tl.rank_genes_groups(adata, "leiden") + +# Write the H5AD file +#adata.write("example.h5ad") +adata.write_zarr("example.zarr") diff --git a/tests/testthat/test-get.R b/tests/testthat/test-get.R index 44bdde4..476d84f 100644 --- a/tests/testthat/test-get.R +++ b/tests/testthat/test-get.R @@ -15,6 +15,34 @@ test_that("get_basic_selection_zd", { expect_equal(as.numeric(a), as.numeric(sel$data)) }) +test_that("get_basic_selection_zd with anndataR IntScalar fixture", { + root <- system.file("extdata", "fixtures", "v2", "example.zarr", package="pizzarr") + + store <- DirectoryStore$new(root) + z <- zarr_open_array(store, path = "uns/IntScalar") + + expect_equal(z$get_shape(), integer(0)) + + sel <- z$get_item("...") + scalar <- as.numeric(sel$data) + + expect_equal(scalar, 1) +}) + +test_that("get_basic_selection_zd with anndataR StringScalar fixture", { + root <- system.file("extdata", "fixtures", "v2", "example.zarr", package="pizzarr") + + store <- DirectoryStore$new(root) + z <- zarr_open_array(store, path = "uns/StringScalar") + + expect_equal(z$get_shape(), integer(0)) + + sel <- z$get_item("...") + scalar <- as.character(sel$data) + + expect_equal(scalar, "A string") +}) + test_that("get_basic_selection_1d", { # Reference: https://github.com/zarr-developers/zarr-python/blob/5dd4a0e6cdc04c6413e14f57f61d389972ea937c/zarr/tests/test_indexing.py#L70 a <- array(data=42)