Skip to content

Migrate ClearEx ingestion and analysis stores to Zarr v3#11

Closed
AdvancedImagingUTSW wants to merge 11 commits intomainfrom
plan-zarr-v2-to-v3
Closed

Migrate ClearEx ingestion and analysis stores to Zarr v3#11
AdvancedImagingUTSW wants to merge 11 commits intomainfrom
plan-zarr-v2-to-v3

Conversation

@AdvancedImagingUTSW
Copy link
Contributor

Summary

  • add a Zarr v2/v3 storage adapter and migrate ClearEx-managed analysis writes to Zarr v3
  • add clearex migrate-store and sibling staging/materialization flows for external Zarr, OME-Zarr, and N5 inputs
  • preserve N5 ingestion through a legacy helper path while keeping external source stores immutable during ingest
  • update metadata parsing for Zarr v3, OME-Zarr 0.5, OME-Zarr 0.4, _ARRAY_DIMENSIONS, and legacy axes
  • update dependency pins and viewer extras for zarr, dask, distributed, tifffile, ome-zarr, and napari-ome-zarr
  • refresh docs, agent guidance, and tests to reflect the new canonical-store and migration behavior

Testing

  • uv run pytest -q tests/io/test_cli.py tests/io/test_experiment.py tests/io/test_read.py tests/io/test_provenance.py
  • uv run pytest -q tests/test_workflow.py tests/io/test_cli.py tests/io/test_experiment.py tests/io/test_provenance.py
  • uv run ruff check src/clearex/main.py src/clearex/workflow.py src/clearex/gui/app.py src/clearex/io/cli.py src/clearex/io/experiment.py src/clearex/io/provenance.py src/clearex/io/read.py src/clearex/io/zarr_storage.py src/clearex/visualization/pipeline.py src/clearex/flatfield/pipeline.py src/clearex/detect/pipeline.py src/clearex/deconvolution/pipeline.py src/clearex/mip_export/pipeline.py tests/test_workflow.py tests/io/test_cli.py tests/io/test_experiment.py tests/io/test_provenance.py tests/io/test_read.py
  • uv run --extra viewer python -c "import neuroglancer, ome_zarr, napari_ome_zarr; print('viewer-extra-ok')"
  • conda env create --dry-run -f environment.yml

Update CODEX.md to document store-level spatial calibration and other recent runtime changes. Adds a root store attribute `spatial_calibration` as the canonical stage-to-world axis mapping (missing attrs default to identity), records canonical text form (`z=...,y=...,x=...`) and allowed bindings (`+/-x`, `+/-y`, `+/-z`, `+/-f`, `none`). Notes that WorkflowConfig now carries SpatialCalibrationConfig, setup exposes a per-experiment "Spatial Calibration" control that prefills existing stores and writes resolved mappings on Next, headless workflows accept `--stage-axis-map`, visualization affines derive world z/y/x translations (including Navigate F and `none` behavior), and provenance records the effective calibration. Adds a dated "Recent Runtime Updates (2026-03-20)" section summarizing these changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant