Skip to main content

zarrmony-phenix

Opera Phenix reader plugin for zarrmony. Wraps pyphenix.OperaPhenixReader so that zarrmony convert /path/to/PhenixExperiment Just Works.

Install

pip install zarrmony-phenix

This pulls zarrmony and pyphenix from PyPI as transitive dependencies.

Verify the plugin registered

from zarrmony.readers.plugin import list_plugins
print([p.name for p in list_plugins()])
# -> [..., 'zarrmony-phenix']

Use

zarrmony inspect /path/to/PhenixExperiment   # lists fields per well
zarrmony convert /path/to/PhenixExperiment ./out

zarrmony convert defaults to --layout auto, which dispatches to the HCS plate writer for plate-shaped readers. The output at ./out is a single OME-NGFF 0.5 plate store: well groups at <row>/<column>/ (e.g. B/04/) each containing one image per imaged field. Pass --layout plate to make the choice explicit, or --layout per-scene to produce one <scene>.ome.zarr per FOV instead.

Scenes are named with the vendor's native field labels (F001, F002, …); plate coordinates live on the plate_layout attribute that zarrmony's plate writer consumes (see the reader-plugin authoring guide §9 and zarrmony ADR-0004). Multi-acquisition Phenix experiments emit a LayoutDowngradeWarning and only the first acquisition's fields are exported; pass --layout per-scene to get all acquisitions in one pass.

Migrating from v0.1.0

  • Scene names changed from <row-letter><col>-f<field> (e.g. B04-f02) to vendor-native field labels (F001, F002, …). Code that keys --per-scene-metadata (or anything else) by the old name must be re-keyed; plate coordinates now live on reader.plate_layout, not in the scene name.
  • Default output is now a single plate store, not one .ome.zarr per FOV. Pass --layout per-scene to keep the v0.1.0 shape.
  • zarrmony>=0.3.0 is now required (the plate writer ships there).

Supported Phenix exports

  • Export format: directory with Images/Index.xml and TIFFs under Images/.
  • Archive format: directory with index/<something>.xml and TIFFs under images/.

Detection is by the presence of either marker; both are scored equally.

Limitations

  • Flat-field correction is always-on and switches the output dtype to float32. When the Phenix export ships per-channel FFC profiles (FFC_Profile/*.xml or flatfieldcorrection/*.xml), the adapter divides each chunk by the corresponding illumination tile via dask.array.map_blocks and writes float32 arrays. Acquisitions with no profiles keep their native uint16. There is no on/off toggle — the presence of profiles in the export is itself the signal (see docs/adr/0001-always-on-float32-ffc.md). Partial coverage is surfaced as pyphenix.FFCCoverageWarning and does not block conversion. To get raw uint16 or an FFC-free pipeline, instantiate pyphenix.OperaPhenixReader directly and write the output yourself.
  • Multi-acquisition Phenix experiments degrade gracefully. Zarrmony's v1 plate writer is single-acquisition; if more than one AcquisitionID is detected in Index.xml, the adapter emits a LayoutDowngradeWarning and exports only the first acquisition's fields. Pass --layout per-scene to capture every acquisition as its own store.
  • napari shows only one field per well at the plate level. This is an upstream limitation in napari-ome-zarr, not a writer bug — all fields are present on disk and visible in the ome-ngff validator. To inspect individual fields in napari, open the per-well image group directly (e.g. path/to/plate.ome.zarr/B/04/0) instead of the plate root. Tracked upstream at ome/napari-ome-zarr#61.

Why a separate package?

Phenix carries real domain logic (FFC math, plate-coordinate parsing, mosaic stitching) and dependencies (PIL, custom XML parsing) that don't belong in zarrmony's import graph. See zarrmony ADR-0003 for the full rationale and the reader-plugin authoring guide for how to build your own.

License

Apache-2.0.

Metadata

Release files for zarrmony-phenix 0.4.0

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

Source distribution (sdist)

Source distribution for zarrmony-phenix 0.4.0
File Size Uploaded
zarrmony_phenix-0.4.0.tar.gz 22.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zarrmony-phenix 0.4.0
File Interpreter ABI Platform
zarrmony_phenix-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.1 kB

Release files / zarrmony_phenix-0.4.0.tar.gz

Download URL zarrmony_phenix-0.4.0.tar.gz
Size 22.0 kB
Tags Source
SHA-256 checksum
How to use checksums
35796ac437fb4043221a2b594d6884059080da66be2812acf7d48e432037f6b8
BLAKE2b-256 checksum
How to use checksums
8d37b08a48e3e8d333cb18b0f012f89100ee5a318b59d0ab2a0b5a2282f27326
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 5, 2026.

Transparency log

Release files / zarrmony_phenix-0.4.0-py3-none-any.whl

Download URL zarrmony_phenix-0.4.0-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
82085ee30b96bdaf57c831300f381d849747f2fd9826eb766f8517b1f8c74a51
BLAKE2b-256 checksum
How to use checksums
dadad6b3d0e735011b466106a79ae94543bebd9eaab09b581d0fa32918d5f80f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

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