-
Notifications
You must be signed in to change notification settings - Fork 7
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
Refactor API for NGFF datasets #31
Conversation
At this point only Again early testing and suggestions are most welcome! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great iteration! The open_ome_zarr
method with layout
parameter is intuitive!
I have renamed & edited examples for clarity. Comments below are related to the following points.
- Repurpose the nomenclature from our dependencies:
-
Accessing the 5D arrays (zarr arrays) via position['key'] syntax is not intuitive. Let's implement position.data (set or get property) syntax, which mimics napari's syntax.
-
Rename the ImageArray object to ZarrArray to make it obvious that the object is a zarr array.
- Make it intuitive to read and write tiled acquisitions:
- Introduce a
tiles
ortiled
layout. I picked these words in favor ofmultiPos
ormultiFOV
. But, I think either of them is a decent choice.
- Make it intuitive to over-write channels:
- setitem (position[array_name][:, channel_index] = array) is too complex a usage, let's provide a wrapper
delete_channel
oroverwrite_channel
.delete_channel
is more broadly useful.
@mattersoflight Thanks for the detailed review. At this point I think this PR has grown too large (100+ commits) and further refactoring makes it difficult to trace the history. I'm tempted to move your comments/edits to a new issue/branch pair and merge this into |
You're welcome! If you want to take up improvements in API into a separate issue and PR, feel free. |
Calibration/Acquisition Plugin
* Merge pull request #14 from mehta-lab/QLIPP_pipeline recOrder pipeline infrastructure + qlipp pipeline submodule * Merge pull request #22 from mehta-lab/zarr_converter Zarr converter * Merge pull request #52 from mehta-lab/fluor_deconv Fluorescence Deconvolution and PhaseFromBF pipelines * Merge pull request #31 from mehta-lab/calibration_plugin Calibration/Acquisition Plugin * Merge pull request #112 from mehta-lab/cleanup-tests-and-readme Improved testing, configs, and dev tools * Merge pull request #123 from mehta-lab/zarr-converter-position-bug Fix ome-tif to zarr converter for acquisitions with micromanager beta * Merge pull request #140 from mehta-lab/restructure_tests Restructure tests * Merge pull request #148 from mehta-lab/pycromanager_converter_v2 Pycromanager converter v2 * Merge pull request #167 from mehta-lab/bkg-correction-fixes2 Fix background correction for non-square images and online mode * Merge pull request #157 from mehta-lab/RAM-warning Print RAM warning message in online and offline modes * Merge pull request #169 from mehta-lab/warn-bkg-averaging Remove background averaging * Merge pull request #174 from mehta-lab/show-ram-warning Show RAM warning in GUI / log in CLI * Merge pull request #175 from mehta-lab/better-messages Improved warning message * Merge pull request #181 from mehta-lab/error-mismatched-bkg-and-img Always load background and warn if background and image sizes are mismatched * Merge pull request #182 from mehta-lab/error-mismatched-bkg-and-img Mismatched x/y size of background and acquisition should error instead of warn * Merge pull request #210 from mehta-lab/0.2.0-gui-hide Remove fluorescence, preprocessing, and postprocessing; simplify GUI * Merge pull request #219 from mehta-lab/0.2.0-integration 0.2.0 integration PR * Introduce Black formatting into the code base (#229) * black-format all `.py` files except recorder_ui.py * create .git-blame-ignore-revs * Document how to ignore formatting commits * Document `git` version Co-authored-by: Talon Chandler <[email protected]> * draft refactor for imread * expose primary entry points * fix type check and tests Signed-off-by: Ziwen Liu <[email protected]> * fix formatting * update `imread` docstring * define supported formats Signed-off-by: Ziwen Liu <[email protected]> * rename pycromanager reader to ndtiff Pycromanager is no longer a dependency, and MM can also write NDTIFF. Signed-off-by: Ziwen Liu <[email protected]> * remove 'doesnt work' code * improve error messages * rearrange files from patch * depend on tqdm for progress bar in conversion * move util function * delete other util functions * make util function private * remove redundant file * rename converter file * fix some of the references and docstrings * draft refactor * write with new ngff module * fix position grid * fix image check * close writer after conversion * test ome-tiff conversion * handle invalid stage position metadata * support labelling positions * fix typo * fix path type * convert single page tiff datasets This is rather broken: the reader does not handle metadata well * allow longer conversion time in tests Signed-off-by: Ziwen Liu <[email protected]> * draft cli command Signed-off-by: Ziwen Liu <[email protected]> * fix argument * detect flat ndtiff * sort imports Signed-off-by: Ziwen Liu <[email protected]> * limit bar length * add -h shortcut for help * test cli * fix get_image * test against a random choice of dataset --------- Signed-off-by: Ziwen Liu <[email protected]> Co-authored-by: Cameron Foltz <[email protected]> Co-authored-by: Shalin Mehta <[email protected]> Co-authored-by: Talon Chandler <[email protected]> Co-authored-by: Ivan Ivanov <[email protected]>
Implements #19.
Fixes #29.