Repository navigation
feat: Imaris input, pixel calibration, OOM-safe pyramids - #13
Merged
Merged
Conversation
ome_zarr >= 0.16 nests multiscales under the "ome" key instead of at the root level. load_ome_zarr and estimate_empty_tiles now fall back to attrs["ome"]["multiscales"] when attrs["multiscales"] is absent. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- read Imaris .ims natively (HDF5, no JVM) via imaris-ims-file-reader; add the [imaris] extra and a .ims dispatch in to_ome_zarr - read physical voxel size from the input (bioio physical_pixel_sizes, Imaris resolution, or an existing OME-ZARR scale) and write it into the NGFF coordinateTransformations with micrometer units; pixel_size= overrides or supplies it for bare arrays. X/Y scale per level, Z stays - build each pyramid level by reading the previous level back from disk and streaming with bounded chunks, so the dask graph never chains and no whole plane/volume is held in RAM (no OOM on terabyte inputs) - labels written into the input store inherit its calibration Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CI used a newer ruff than local and reformatted _io.py. Pin the ruff-action to 0.15.18 so local and CI agree, and apply that version's formatting. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three asks for the OME-ZARR plugin:
Imaris
.imsreading viaimaris-ims-file-reader(HDF5, no JVM); new[imaris]extra.to_ome_zarr("scan.ims", "out.zarr")just works. (bioio still handles CZI/LIF/ND2/OME-TIFF.)Pixel calibration (regardless of input)
physical_pixel_sizes, Imaris resolution, or an existing OME-ZARR's scale — and written into NGFFcoordinateTransformationswithmicrometerunits.pixel_size={...}overrides / supplies it for bare arrays.OOM-safe pyramids
_CHUNK_CAP). The dask graph never chains level-on-level and no whole plane/volume is materialised → terabyte inputs convert in bounded RAM.Tests: calibration scale/units asserted, Imaris import-guard, full suite green (
25 passed); ruff +mkdocs --strictclean. Imaris/bioio runtime paths are import-guarded (not installed in CI).🤖 Generated with Claude Code