The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Remote OME-NGFF Demo

Setup

We install the blosc package to be able to use Blosc as the decompression codec, since the image we want to load is Blosc-compressed.

install.packages("blosc")

Demo

library(pizzarr)

# The path to the root of the OME-NGFF Zarr store.
root <- "https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0062A/6001240.zarr"

# Open the OME-NGFF as an HttpStore.
store <- HttpStore$new(root)
g <- zarr_open_group(store)

# Using the OME metadata, get the path to the first resolution of the image pyramid.
attrs <- g$get_attrs()$to_list()
resolution_paths <- attrs$multiscales[[1]]$datasets[[1]]$path
first_resolution <- resolution_paths[[1]]

# Load the 4-dimensional array of pixels (as a ZarrArray instance).
zarr_arr <- g$get_item(first_resolution)

print(zarr_arr$get_shape())
# [1]   2 236 275 271

z_index <- 118

# Load a single Z-slice of pixels (as a NestedArray instance).
nested_arr <- zarr_arr$get_item(list(slice(1, 2), slice(z_index, z_index), slice(NA, NA), slice(NA, NA)))

print(nested_arr$shape)
# [1]   2   1 275 271

# Extract the NestedArray contents as a base R array.
arr <- nested_arr$data

# Convert to a pseudo-RGB array to make raster package happy.
rg_arr <- aperm(arr, c(2, 4, 3, 1))[1,,,]
rgb_arr <- array(dim=c(271, 275, 3))
rgb_arr[,,1] <- rg_arr[,,1]
rgb_arr[,,2] <- rg_arr[,,2]
rgb_arr[,,3] <- 0

# Plot the pseudo-RGB image using base R rasterImage().
plot.new()
plot.window(c(0, 271), c(0, 275), asp = 1)
rasterImage(rgb_arr / max(rgb_arr), 0, 0, 271, 275)

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.