Miltenyi UltraMicroscope Blaze (MACS iQ-processed) reader plugin for zarrmony.
Project description
zarrmony-blaze
Miltenyi UltraMicroscope Blaze (MACS iQ-processed) reader plugin for zarrmony. Detects a processed Blaze export directory and converts it to OME-NGFF 0.5 in one shot:
zarrmony convert /path/to/<blaze-experiment-dir> ./out
Install
pip install zarrmony-blaze
This pulls zarrmony from PyPI as a transitive dependency. Not yet on PyPI as
of this writing — install from source until v0.1.0 is published:
pip install git+https://github.com/ferrinm/zarrmony-blaze
Verify the plugin registered
from zarrmony.readers.plugin import list_plugins
print([p.name for p in list_plugins()])
# -> [..., 'zarrmony-blaze']
For a clean-venv install smoke test (the same shape CI runs):
uv venv .venv-smoke
source .venv-smoke/bin/activate
uv pip install .
python -c "from zarrmony.readers.plugin import list_plugins; \
assert 'zarrmony-blaze' in {p.name for p in list_plugins()}"
The same assertion runs in CI as tests/test_install_smoke.py.
Use
zarrmony inspect /path/to/BlazeExperiment # dims, channels, pixel sizes
zarrmony convert /path/to/BlazeExperiment ./out
Output is a single <dir-basename>.ome.zarr store with dims (T, C, Z, Y, X),
one chunk per (t, c, z) plane, channel names taken from the vendor's
<Channel Name="..."> (falling back to Fluor → ID if Name is missing),
and physical pixel sizes copied verbatim from <Pixels PhysicalSizeX/Y/Z>.
The full master OME-XML is preserved in the audit at
<store>/OME/source/raw.ome.xml.
Supported Blaze exports
- MACS iQ-processed directories. The vendor-stitched output written as one
OME-TIFF per
(channel, Z-plane), named<prefix>_Blaze_C<NN>_Z<NNNN>.ome.tif. The plugin reads the C0 master (_C00_Z0000.ome.tif) for OME-XML and assembles the rest from<TiffData>UUID references.
Detection requires both the _Blaze_ vendor token in the filename and at
least one _Z0000.ome.tif master in the directory.
Raw (unstitched) ImSpector output is not handled in v0.1; see Limitations.
Limitations
- Multiposition exports are not supported. A master with more than one
<Image>element raisesBlazeMultipositionUnsupportedError(aNotImplementedError). Workaround: convert one position at a time; full multiposition support is tracked for v0.2 alongside raw-mode. - No raw-tile support. Raw, unstitched ImSpector output
(
measurementInfo.txt+tiles.txt, one TIFF per(tile, channel)) is out of scope for v0.1. v0.2 will add a separate matcher that emits one scene per tile with stage XY onattrs.zarrmony.tile.*; stitching is delegated to BigStitcher / ASHLAR / m2stitch / TeraStitcher. - No stitching. The plugin assembles already-stitched per-plane files into one TCZYX volume; it does not stitch tiles.
<AnnotationRef>parsing not implemented. Only the fields needed for conversion (channels, pixel sizes, file map) are extracted from the XML. The full XML is preserved verbatim in the audit.
Why a separate package?
Vanilla zarrmony routes .ome.tif to bioio-ome-tiff, which fails on real
MACS iQ exports because ome-types strictly rejects the old OME schema after
a 2008→2016 upgrade. This plugin reads the OME-XML with stdlib xml.etree
and builds the dask graph from <TiffData> references directly, sidestepping
both that and the eager-stat-all-companions behaviour of
tifffile.TiffFile.series. See
ADR-0001 for the full
rationale and the
reader-plugin authoring guide
for how to build your own plugin.
Domain context
See CONTEXT.md for the glossary (Blaze experiment, raw vs
processed export, multi-file OME master file) and
docs/v0.1-design.md for the v0.1 implementation plan.
License
Apache-2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zarrmony_blaze-0.1.0.tar.gz.
File metadata
- Download URL: zarrmony_blaze-0.1.0.tar.gz
- Upload date:
- Size: 868.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1f1abe05e2ec173c03e774b50ba00cab90d0596f5263ca511939302e25aa783
|
|
| MD5 |
531bd095dea9c806d25936bb735655bf
|
|
| BLAKE2b-256 |
b0eb9a17569267a7e9cb63781f7ba94348948d51444747144b145c52f15d522c
|
File details
Details for the file zarrmony_blaze-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zarrmony_blaze-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cd7623cfab02857a2c63052e0ff496ea1b53c5fa012193a61a9002a5a4b991f
|
|
| MD5 |
d0ccabf52d149d29d8ef946d6096dbeb
|
|
| BLAKE2b-256 |
78841b9a5d73277b62a72a9ce11996ca24e6574ae3a9063fa95c84733dcd2152
|