-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FOV names and array names are hard-coded for the HCS dataset reader #248
Comments
According to #200 (comment), one can view all the FOVs by loading individual wells. However this only works for incremental integer FOV path names, not any 'case sensitive, alphanumeric' path names defined in the specification. Possible cause: ome-zarr-py/ome_zarr/reader.py Lines 427 to 431 in c1302e0
|
Thanks for the feedback. This is a similar type of change to #241 where it becomes slower to load plate data if you don't make assumptions about all the Wells being the same. Reading Well images may not have such a big impact as the changes on that PR, but it raises similar questions: @ziw-liu In your data, does each Well have a different path to the first image? |
@will-moore Thanks for the explanation. I agree that hardcoding is the fastest way to get the images. As for the dataset I have in mind, all the wells would have the same path (in fact The array name finding is of a bit more real-world concern. In our workflow it is common to transform the raw data into other arrays with incompatible data types and shapes, and it would be a cleaner data management practice if these can all be held in the same Zarr group with their names indicating their nature (e.g. As for the performance concern, I don't have an intuition for cloud object storage, but for a storage server in the local netowrk, increased I/O operations should only be linear to the image count to load the |
Thanks for the info. This makes good sense. |
I do not think we will have multiple pyramids for a single FOV, and I agree that for visualization only loading the first pyramid makes sense. Are you suggesting that incompatible arrays can be stored in separate |
The spec allows multiple |
I fell into the same problem. Well image path and field index seem to be used a bit interchangeably in the code, but this is not reflected in any document, especially the spec. For my use case, I'd prefer to have human-readable image names, because these are displayed, e.g. in Napari. If the reason are performance concerns about accessing image paths when reading the plate, then maybe the paths should not (only) live at the well level, or the spec could be modified not to allow non-index image names. Since ome-zarr-py already has assumptions (not fully implemented spec), it's a matter of weighing up the probability that a dataset has well image path != field index versus the probability that the first well's image paths are not the same for all wells. I think the second is less likely and a fix would increase the amount of supported datasets. |
The v0.4 spec states:
And ome-zarr-py works with arbitrary array names in the single-FOV images layout, but not in an HCS plate layout. Only integer names starting with "0" is recognized.
It should instead be discovered from metadata (
multiscales.datasets[0].path
).Also, FOV names not starting with "0" is not supported. The cause is likely this line hard-coding 'first field':
ome-zarr-py/ome_zarr/reader.py
Line 493 in c1302e0
It should instead be discovered from metadata (
well.images[0].path
). Spec:Edit: separate description for array and position names.
The text was updated successfully, but these errors were encountered: