Skip to main content

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.

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 FluorID 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zarrmony_blaze-0.1.1.tar.gz (868.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zarrmony_blaze-0.1.1-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file zarrmony_blaze-0.1.1.tar.gz.

File metadata

  • Download URL: zarrmony_blaze-0.1.1.tar.gz
  • Upload date:
  • Size: 868.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zarrmony_blaze-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9347982bdec0dc1e8e0e7b77b1246399483526213f4c03b5536410168901bd43
MD5 bed25b7bf756191f0400684f759396af
BLAKE2b-256 8e155c5dacac9b55b8a4960bf1d9f6555132fe8152613e9574c70d8bf36a08ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrmony_blaze-0.1.1.tar.gz:

Publisher: release.yml on ferrinm/zarrmony-blaze

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zarrmony_blaze-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: zarrmony_blaze-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zarrmony_blaze-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 364664795b90fd47bb306961cf9b4fde9324ff233d4fde686326a2bc7037098f
MD5 b650d4d5b2538c12fc3663408e536fd4
BLAKE2b-256 f1c2336e9dfdc93d5bbaa45a43b60672c95d9ca7e8b92969e9e26282d35cc39e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrmony_blaze-0.1.1-py3-none-any.whl:

Publisher: release.yml on ferrinm/zarrmony-blaze

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page