From 6337b3adb83ba6af9017bac5f1fed68eace41cda Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 22 Jul 2026 09:49:30 +0200 Subject: [PATCH 1/3] Fix link to vignette in README --- README.md | 3 ++- README.qmd | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c336fe2..c9cae22 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,8 @@ is performant, flexible. Overall, it is designed to be used deep in the dependency graph of other packages. For more details on the motivation and design principles underpinning -`{grumpy}`, see the dedicated vignette: . +`{grumpy}`, see the dedicated vignette: +`vignette("design", package = "grumpy")`. ## Installation diff --git a/README.qmd b/README.qmd index 5c44c91..7d85868 100644 --- a/README.qmd +++ b/README.qmd @@ -29,7 +29,7 @@ As a file format generated by a Python package, `.npy` files are prime candidate However, this comes with downsides in terms of performance, flexibility, and robustness of the R package infrastructure. `{grumpy}`, on the other hand, is a pure R package with a single dependency (`{jsonlite}`), and is performant, flexible. Overall, it is designed to be used deep in the dependency graph of other packages. -For more details on the motivation and design principles underpinning `{grumpy}`, see the dedicated vignette: `r vignette("design", package = "grumpy")`. +For more details on the motivation and design principles underpinning `{grumpy}`, see the dedicated vignette: `vignette("design", package = "grumpy")`. ## Installation From 0566ad665315b9665c45eb8e28d21432ec8dbd4e Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 22 Jul 2026 09:53:24 +0200 Subject: [PATCH 2/3] Install dev Rarr --- .github/workflows/pkgdown.yaml | 2 +- DESCRIPTION | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index bfc9f4d..96e630d 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -23,7 +23,7 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: r-lib/actions/setup-pandoc@v2 diff --git a/DESCRIPTION b/DESCRIPTION index 80ddb3f..1286c36 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -28,6 +28,8 @@ URL: https://hugogruson.fr/grumpy/, https://github.com/Bisaloo/grumpy BugReports: https://github.com/Bisaloo/grumpy/issues Imports: jsonlite +Config/Needs/website: + Huber-group-EMBL/Rarr Config/roxygen2/version: 8.0.0 Depends: R (>= 4.2.0) From 6f8243f227e3e1345fdec89622ba1f51e39ed14c Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 22 Jul 2026 09:54:29 +0200 Subject: [PATCH 3/3] Print size and benchmark summary --- vignettes/beyond.qmd | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/vignettes/beyond.qmd b/vignettes/beyond.qmd index c3b407c..f4bf006 100644 --- a/vignettes/beyond.qmd +++ b/vignettes/beyond.qmd @@ -44,9 +44,10 @@ size <- list.files(f_zarr, full.names = TRUE, recursive = TRUE) |> file.info() |> subset(select = "size") |> sum() +size ``` -**Without compression**, the equivalent Zarr data is thus 320.577 kB on disk, so `round(8e8 / size)` times smaller than the `.npy` file. We could also use compression to further reduce the size of the Zarr file on disk, but this is out of scope for this vignette. +**Without compression**, the equivalent Zarr data is thus 320 kB on disk, so `round(8e8 / size)` times smaller than the `.npy` file. We could also use compression to further reduce the size of the Zarr file on disk, but this is out of scope for this vignette. ## Decoding speed comparison @@ -61,11 +62,13 @@ np$save(f_npy, x) ``` ```{r} -bench::mark( +bm <- bench::mark( grumpy = read_npy(f_npy), zarr = read_zarr_array(f_zarr), - iterations = 20 + iterations = 50 ) +bm +summary(bm, relative = TRUE) ``` There is a small time penalty for reading the Zarr file, since the various chunks need to be read and concatenated together, but the memory footprint is much smaller, and the Zarr file is much smaller on disk. This is particularly important for large datasets that do not fit into memory, as it allows for out-of-core processing of the data.