-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Description
In #181 we import OME-zarr labels by reading the zarr pixel values and converting them into classic OMERO Masks with the binary data stored in the Postgres database. For large amounts of labels, this has the potential to bloat the DB and doesn't take advantage of having the data as zarr.
We may want to keep it for maximum compatibility with existing tools, but we also want to consider other options:
-
- Use Glencoe's approach:
- image-region microservice handles e.g. http://localhost:3000/omero_ms_image_region/get_shape_mask_bytes/2160?domain=[0,0,0,512:786,0:512]&resolution=5 and returns bytes from zarr mask. These bytes are rendered into masks via JavaScript (no
zarr.jsetc) - Single OMERO mask per Image would require a different approach from classic OMERO metadata populate where we have an ROI / Shape ID per table row.
- This would also need changes in iviewer AND require users to install https://github.com/glencoesoftware/omero-ms-image-region microservice
-
- Use omero-web-zarr to handle urls like https://idr.openmicroscopy.org/webgateway/render_shape_mask/1665606/ and return a png for iviewer.
- We'd need to add config to omero-web, so we can specify an app to handle this URL, similar the way we specify a viewer to handle image-viewer URLS like
$ omero config set omero.web.viewer.view omero_iviewer.views.index - Use
externalInfoon the Shape to know where the zarr image is. Use the Shape bounding box to crop the zarr image and render to png. NB: we would need some way to specify what the pixel value from the zarr should be used to identify the mask region for rendering to png. This could be an annotation on the Shape? - Advantage is that iviewer doesn't have to change, not does any omero metadata populate -> OMERO.tables workflow.
- Other tools would need to be updated to know how to access the mask bytes (e.g. iviewer or other clients), but that's true of all the options here.
- Disadvantage is authentication issues. If the data isn't public and auth credentials live on the server, they would have to be made available to omero-web environment too.
-
- Add a new layer in iviewer that loads another OMERO image (used to store the Labels as a separate image) and overlays it on the main image. The OMERO labels-image could use omero-zarr-pixel-buffer to load from the labels image. First attempt at this approach at Support img_detail/9837058/?labelimage=9837059 as extra Tile layer omero-iviewer#511
-
- Update iviewer to read the zarr directly from the browser. Use zarrita.js and maybe ome-zarr.js to render the zarr data for openlayers.
- Similar pros and cons as the previous approach, but probably a bit harder to hack on iviewer and openlayers etc than to work in python.
- We wouldn't need to add any config to omero-web or update any other tools.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Backlog