Skip to main content

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.

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 raises BlazeMultipositionUnsupportedError (a NotImplementedError). 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 on attrs.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.

Metadata

Release files for zarrmony-blaze 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for zarrmony-blaze 0.1.1
File Interpreter ABI Platform
zarrmony_blaze-0.1.1-py3-none-any.whl Python 3 none any Details

Release files / zarrmony_blaze-0.1.1-py3-none-any.whl

Download URL zarrmony_blaze-0.1.1-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
364664795b90fd47bb306961cf9b4fde9324ff233d4fde686326a2bc7037098f
BLAKE2b-256 checksum
How to use checksums
f1c2336e9dfdc93d5bbaa45a43b60672c95d9ca7e8b92969e9e26282d35cc39e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page