allen-cell-animated / volume-viewer

https://allen-cell-animated.github.io/volume-viewer/
Other
90 stars 7 forks source link

load from multiple data sources #78

Closed toloudis closed 5 months ago

toloudis commented 1 year ago

Background

Images often have other derivative images computed and stored in a different place. In order to combine them for CFE, we rebuild combined images which results in redundant storage. For other applications the burden is entirely on the users to do this. How should users specify multiple data sources from which to load image data?

Today you can specify a single file location in the url of the standalone viewer. And in CFE, the application provides that url.

User might know all the data sources initially, or they might add channels to the image after the first batch is loaded. I'm not sure if both of these modes are needed.

Sharmi Seshamani of AIND is our example user who specified this request initially.

User needs statement(s)

As a user, I want to be load a raw microscope image and its segmentation image from different storage locations, and have them show up as a combined multichannel image.

Size m

Requirements Discovery, Final design deliverables

Deliverables Meeting with decision making.

Stakeholder(s) @frasercl @toloudis

Timeline

Notes

We will need to deal with error conditions such as dimension mismatches etc.

toloudis commented 1 year ago

there should be a GUI path and a scripted url/json path to get data in to the viewer.

as a start, url and a selection of channels, and if time series, a time index.

user says "add data" (button on channels tab?) user picks url (popup dialog box) we fetch metadata and show user what channels are available. user picks channels (popup dialog box) we load them. if xyz dims do not match, then what? fail? yes that's an error until we want to do something more clever.

come up with some data where this would actually be a useful and not fake demo

toloudis commented 1 year ago

get urls from Sharmi maybe, to have a practical test for this feature

toloudis commented 1 year ago

also see https://github.com/allen-cell-animated/volume-viewer/issues/87

toloudis commented 7 months ago

Requirement change: For a data release, we would like to implement this only at the url-query-parameter level. We need to tell the viewer to get raw data from one zarr and segmentation data from a different one. Something like: viewer.html?url=first_channels_zarr&url2=more_channels_zarr ? Maybe something better than url2 but you get the idea.

Internally we have discussed being able to pass both urls to the volume loader.

We will use the first url as the dimensions that all following urls have to match. Requirement: our segmentations will have level1 match the raw level0 in resolution. We know our segmentations have level0 at 100x and raw is 20x. We are planning to generate zarrs which downsample the segmentation from level0 to level1 by that 100x-to-20x factor so that it matches the raw's level0. We need the viewer to be able to try to find the matching resolution. Probably ok to error out if no match is found.