Skip to content

Zarr layers#532

Draft
will-moore wants to merge 25 commits into
ome:masterfrom
will-moore:zarr_layers
Draft

Zarr layers#532
will-moore wants to merge 25 commits into
ome:masterfrom
will-moore:zarr_layers

Conversation

@will-moore

@will-moore will-moore commented May 23, 2026

Copy link
Copy Markdown
Member

Start looking at loading OME-Zarr images (labels) as a layer in iviewer, rendered with ome-zarr.js

NB: needs ome/omero-py#495 to get externalInfo on shapes.

Set-up:

Draw e.g. a Rectangle on the image and save. Use the Shape ID to set externalInfo on the Shape:

$ omero obj ext-info-set Rectangle:6891 3 com.glencoesoftware.ngff:multiscales https://livingobjects.ebi.ac.uk/idr/webatlas/dataset_161/morphology.ome.zarr/0/labels/segmentation/

NB: using an un-released version of ome-zarr.js from BioNGFF/ome-zarr.js#38 for this:

Screenshot 2026-06-10 at 16 06 41

@will-moore

will-moore commented Jun 12, 2026

Copy link
Copy Markdown
Member Author

Discussed alignment of this PR with standards that Pathviewer uses:

  • OMERO.tables use an object or Object (long) column to store the label values
  • Pathviewer expects all label images to have a single Channel
  • ExternalInfo is set on the ROI (not Shape)
  • Supports multiple ROIs (zarr label images) for a single OMERO image
  • OMERO.tables are annotations on the corresponding ROI (not on the OMERO Image) which associates one or more OMERO.tables to a specific zarr label image
  • The zarr label image extent (x, y, width, height) is specified by the bounding box of the Mask Shape. May not cover the whole image and resolutions may differ etc)
  • OMERO.table may have columns 'bbox_min_x', 'bbox_min_y', 'bbox_max_x', 'bbox_max_y' to specify bounding box of the specific label. Allows you to pan the image to show a label, and also to query the OMERO.table for labels within certain viewport/region.
  • Histograms for particular table columns can be calculated when OMERO.tables are created, and stored in table metadata (not sure how?). These are used for the histogram shown when using "color by a parameter" - even when you may not load a complete column (e.g. if filtering by some value).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant