Skip to content

MM Ome tif support#564

Open
amitabhverma wants to merge 11 commits into
mainfrom
ome-tif-v2
Open

MM Ome tif support#564
amitabhverma wants to merge 11 commits into
mainfrom
ome-tif-v2

Conversation

@amitabhverma

@amitabhverma amitabhverma commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator
  • Added CLI support for Micro-Manager acquired ome tif datasets: converts to .zarr and then proceeds to reconstruction.
  • Added GUI functionality to support ome-tif
  • Added metadata info next to dataset selector utilizing "iohub info" like functionality

Incorporated changes based on comments from previous pull request #527

- Added CLI support for Micro-Manager acquired ome tif datasets: converts to .zarr and then proceeds to reconstruction.
- Added GUI functionality to support ome-tif
- Added metadata info next to dataset selector utilizing "iohub info" like functionality
Remove duplicate open_ome_zarr import, drop unused TransformationMeta and
DTypeLike imports, and reflow long lines in get_dataset_info.
@codecov

codecov Bot commented Jun 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 27.94118% with 98 lines in your changes missing coverage. Please review.
✅ Project coverage is 52.45%. Comparing base (507a8af) to head (13e4d01).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
waveorder/cli/utils.py 29.87% 54 Missing ⚠️
waveorder/plugin/tab_recon.py 15.38% 33 Missing ⚠️
waveorder/cli/apply_inverse_transfer_function.py 50.00% 3 Missing ⚠️
waveorder/cli/compute_transfer_function.py 40.00% 3 Missing ⚠️
waveorder/cli/reconstruct.py 40.00% 3 Missing ⚠️
waveorder/cli/parsing.py 50.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #564      +/-   ##
==========================================
- Coverage   55.49%   52.45%   -3.05%     
==========================================
  Files          62       62              
  Lines       11051    11654     +603     
==========================================
- Hits         6133     6113      -20     
- Misses       4918     5541     +623     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@talonchandler talonchandler left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @amitabhverma, thanks for this iteration.

The main shape of this feature is correct, but much of what's here duplicates code that lives in iohub. I just pushed a feature/ometiff-input branch that refactors to show what a minimal version would look like. By reusing iohub and moving the switching in parsing.py, we reduce the feature diff to <50 lines.

Regarding pinned dependencies, let's figure this out with automated tests. In my example branch I added a test that checks a simple ome.tiff against the current pyproject.toml, and I couldn't reproduce the issues you mentioned. If you saw failures, can you share:

  • the traceback,
  • the iohub, tifffile, zarr versions in the failing environment,
  • the path/dataset that triggered the issue, and
  • ideally, a failing automated test that reproduces the problem.

If we need to pin versions, this PR should include a change to pyproject.toml and an automated test that fails without the pin.

talonchandler
talonchandler previously approved these changes Jun 26, 2026

@talonchandler talonchandler left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Final fixes made together. Looks great! Thanks @amitabhverma

- auto-populates YX and Z pixel sizes from dataset metadata
@amitabhverma

Copy link
Copy Markdown
Collaborator Author

@talonchandler

Couple of points I forgot to ask/share on Friday.

  1. For ome-zarr metadata print_info does not print out the Scale and FOV which are the 2 additions I had to do on my end. Do you use something else to get that info using iohub ? Ideally, like we discussed, this function should reside in iohub with a wrapper on waveorder.
image
  1. I moved some other metadata parsing which was under tab_recon to utils.get_dataset_info which adds those extra fields and also provides easier access to fields that might be needed for auto-populate. Regarding auto-populate, is it explicit that there would only be a single channel when doing a Phase/Fluorescence reconstruction ?

  2. I was trying the pytest and trying to locate what you had shown me and realized the version on https://waveorder.readthedocs.io/en/latest/guide/development-guide.html is different from whats in the /main branch docs are. I believe I had it set to automatically generate the html docs with a new commit but it seems like it's not done that for the last 10 months.

  3. I got the tests running locally now but had to manually install pytest-qt

@talonchandler

Copy link
Copy Markdown
Collaborator

Thanks Amit...following up with a summary of our chat just now:

  1. I'm flexible on this...you can leave it as is and/or pass in single FOVs in the print_info.

  2. Yes, only a single channel for fluorescence and phase. Birefringence recons can take multiple input channels.

  3. No worries. Github docs is fine for now...Sri will likely move + rebuild our docs later.

  4. We worked through this together...see CONTRIBUTING.md. Feel free to flag/fix conflicting instructions.

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.

2 participants