ngio 0.5.0b6__tar.gz → 0.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ngio-0.5.0b6 → ngio-0.5.1}/.github/workflows/build_docs.yml +5 -6
- {ngio-0.5.0b6 → ngio-0.5.1}/.github/workflows/ci.yml +1 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/.gitignore +5 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/CHANGELOG.md +79 -2
- {ngio-0.5.0b6 → ngio-0.5.1}/PKG-INFO +3 -2
- ngio-0.5.1/docs/api/ngio/ngio.md +17 -0
- ngio-0.5.1/docs/changelog.md +3 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/getting_started/0_quickstart.md +1 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/getting_started/1_ome_zarr_containers.md +65 -6
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/getting_started/2_images.md +1 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/getting_started/3_tables.md +13 -11
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/getting_started/4_masked_images.md +7 -7
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/index.md +2 -3
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/tutorials/create_ome_zarr.ipynb +2 -2
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/tutorials/feature_extraction.ipynb +8 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/tutorials/hcs_exploration.ipynb +8 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/tutorials/image_processing.ipynb +8 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/tutorials/image_segmentation.ipynb +1 -8
- {ngio-0.5.0b6 → ngio-0.5.1}/pyproject.toml +2 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/common/_masking_roi.py +18 -5
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/common/_pyramid.py +129 -30
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/hcs/_plate.py +30 -24
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/_abstract_image.py +182 -60
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/_create_synt_container.py +5 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/_create_utils.py +69 -74
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/_image.py +350 -86
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/_label.py +39 -31
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/_masked_image.py +2 -2
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/_ome_zarr_container.py +263 -96
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_match_shape.py +10 -14
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_ops_slices.py +6 -4
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_ops_slices_utils.py +8 -7
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/_meta_handlers.py +2 -26
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/ngio_specs/__init__.py +2 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/ngio_specs/_axes.py +161 -58
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_hcs.py +78 -32
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_image.py +36 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/v04/_v04_spec.py +5 -22
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/v05/_v05_spec.py +7 -23
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/resources/__init__.py +1 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/resources/resource_model.py +1 -1
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/_tables_container.py +39 -7
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/v1/_roi_table.py +4 -4
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/utils/_zarr_utils.py +8 -15
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/hcs/test_plate.py +37 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/images/test_create.py +42 -4
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/images/test_omezarr_container.py +46 -2
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/ome_zarr_meta/test_unit_ngio_specs.py +52 -52
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/ome_zarr_meta/test_unit_v04_utils.py +3 -2
- ngio-0.5.0b6/docs/api/ngio/ngio.md +0 -3
- ngio-0.5.0b6/docs/changelog.md +0 -5
- {ngio-0.5.0b6 → ngio-0.5.1}/.copier-answers.yml +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/.gitattributes +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/.github/ISSUE_TEMPLATE.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/.github/TEST_FAIL_TEMPLATE.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/.github/dependabot.yml +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/.github/pull_request_template.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/.pre-commit-config.yaml +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/LICENSE +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/README.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/_typos.toml +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/hcs.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/images.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/iterators.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ngio/common.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ngio/hcs.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ngio/images.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ngio/io_pipes.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ngio/iterators.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ngio/tables.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ngio/transforms.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ngio/utils.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/ome_zarr_container.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/api/tables.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/code_of_conduct.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/contributing.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/getting_started/5_hcs.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/getting_started/6_iterators.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/table_specs/backend.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/table_specs/overview.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/table_specs/table_types/condition_table.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/table_specs/table_types/custom_table.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/table_specs/table_types/feature_table.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/table_specs/table_types/generic_table.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/table_specs/table_types/masking_roi_table.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/docs/table_specs/table_types/roi_table.md +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/mkdocs.yml +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/common/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/common/_dimensions.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/common/_roi.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/common/_synt_images_utils.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/common/_zoom.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/experimental/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/experimental/iterators/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/experimental/iterators/_abstract_iterator.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/experimental/iterators/_feature.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/experimental/iterators/_image_processing.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/experimental/iterators/_mappers.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/experimental/iterators/_rois_utils.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/experimental/iterators/_segmentation.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/hcs/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/images/_table_ops.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_io_pipes.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_io_pipes_masked.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_io_pipes_roi.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_io_pipes_types.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_ops_axes.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_ops_transforms.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/io_pipes/_zoom_transform.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/ngio_specs/_channels.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/ngio_specs/_dataset.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/ngio_specs/_pixel_size.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/v04/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/v04/_custom_models.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/v05/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/ome_zarr_meta/v05/_custom_models.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/mask.png +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/nuclei.png +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/raw.jpg +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/_abstract_table.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_abstract_backend.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_anndata.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_anndata_utils.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_csv.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_json.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_parquet.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_py_arrow_backends.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_table_backends.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/backends/_utils.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/v1/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/v1/_condition_table.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/v1/_feature_table.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/tables/v1/_generic_table.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/transforms/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/transforms/_zoom.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/utils/__init__.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/utils/_cache.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/utils/_datasets.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/utils/_errors.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/src/ngio/utils/_fractal_fsspec_store.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/conftest.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/create_test_data.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/labels/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/labels/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/tables/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/tables/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/.zattrs +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/.zgroup +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/meta/base_ome_zarr_image_meta.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/meta/base_ome_zarr_image_meta_wrong_axis_order.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/meta/base_ome_zarr_label_meta.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/meta/base_ome_zarr_well_meta.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v04/meta/ome_zarr_well_path_normalization_meta.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_c1yx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_cyx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_czyx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tcyx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tczyx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tyx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_tzyx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_yx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/labels/label/0/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/labels/label/1/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/labels/label/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/labels/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/tables/well_ROI_table/table.csv +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/tables/well_ROI_table/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/tables/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/data/v05/images/test_image_zyx.zarr/zarr.json +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/stores/conftest.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/stores/test_http_store.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/stores/test_local_store.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/stores/test_memory_store.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/stores/test_s3_store.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/stores/utils.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/common/test_dimensions.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/common/test_pyramid.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/common/test_roi.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/common/test_transforms.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/hcs/test_well.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/images/test_images.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/images/test_masked_images.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/images/test_table_ops.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/io_pipes/test_axes_ops.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/io_pipes/test_slicing_ops.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/iterators/test_iterators.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/ome_zarr_meta/test_image_handler.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/tables/test_backends.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/tables/test_backends_utils.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/tables/test_feature_table.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/tables/test_generic_table.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/tables/test_masking_roi_table_v1.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/tables/test_roi_table_v1.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/tables/test_table_group.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/utils/test_download_datasets.py +0 -0
- {ngio-0.5.0b6 → ngio-0.5.1}/tests/unit/utils/test_zarr_utils.py +0 -0
|
@@ -3,7 +3,6 @@ name: Build Docs
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
5
|
branches:
|
|
6
|
-
- dev
|
|
7
6
|
- main
|
|
8
7
|
tags:
|
|
9
8
|
- "v*"
|
|
@@ -38,16 +37,16 @@ jobs:
|
|
|
38
37
|
run: |
|
|
39
38
|
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
|
40
39
|
git config --local user.name "github-actions[bot]"
|
|
41
|
-
|
|
40
|
+
|
|
42
41
|
- name: Restore shared data cache
|
|
43
42
|
id: cache-data
|
|
44
|
-
uses: actions/cache@
|
|
43
|
+
uses: actions/cache@v5
|
|
45
44
|
with:
|
|
46
45
|
path: data/
|
|
47
46
|
key: "${{ runner.os }}-data-${{ hashFiles('tests/conftest.py') }}"
|
|
48
47
|
restore-keys: |
|
|
49
48
|
"${{ runner.os }}-data-"
|
|
50
|
-
|
|
49
|
+
|
|
51
50
|
- name: Deploy docs
|
|
52
51
|
run: |
|
|
53
52
|
VERSION=$(echo $GITHUB_REF | sed 's/refs\/tags\///' | sed 's/refs\/heads\///')
|
|
@@ -59,8 +58,8 @@ jobs:
|
|
|
59
58
|
mike set-default --push stable
|
|
60
59
|
echo "Deployed stable version $VERSION (stable)"
|
|
61
60
|
|
|
62
|
-
elif [[ $GITHUB_REF == refs/heads/
|
|
61
|
+
elif [[ $GITHUB_REF == refs/heads/main ]]; then
|
|
63
62
|
mike deploy --push dev
|
|
64
63
|
mike set-default --push dev
|
|
65
|
-
echo "Deployed development version (dev)"
|
|
64
|
+
echo "Deployed development version (dev) from main"
|
|
66
65
|
fi
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
### Fix
|
|
6
|
+
- Fix bug causing incorrect channel metadata when creating an image.
|
|
7
|
+
- Fix correctly setting the space and time units when creating an image.
|
|
8
|
+
- Fix minor bug in `set_channel_windows_with_percentiles` method.
|
|
9
|
+
|
|
10
|
+
### Chores
|
|
11
|
+
- Improve logging consistency across the codebase.
|
|
12
|
+
|
|
3
13
|
## [v0.5.0]
|
|
4
14
|
|
|
5
15
|
### Features
|
|
@@ -7,20 +17,87 @@
|
|
|
7
17
|
- Move to zarr-python v3
|
|
8
18
|
- API to delete labels and tables from OME-Zarr containers and HCS plates.
|
|
9
19
|
- Allow to explicitly set axes order when building masking roi tables.
|
|
20
|
+
- New metadata modification APIs for `Image`, `Label`, and `OmeZarrContainer`:
|
|
21
|
+
- `set_channel_labels` - Update channel labels
|
|
22
|
+
- `set_channel_colors` - Update channel colors
|
|
23
|
+
- `set_channel_windows` - Update channel display windows (start/end values)
|
|
24
|
+
- `set_channel_windows_with_percentiles` - Update display windows based on data percentiles
|
|
25
|
+
- `set_axes_names` - Rename axes in the metadata
|
|
26
|
+
- `set_axes_unit` - Set space and time units for axes
|
|
27
|
+
- `set_name` - Set the image/label name in metadata
|
|
28
|
+
- Add translation support in all image/label creation and derivation APIs.
|
|
10
29
|
|
|
11
30
|
### API Breaking Changes
|
|
12
31
|
|
|
13
32
|
- New `Roi` models, now supporting arbitrary axes.
|
|
14
33
|
- The `compressor` argument has been renamed to `compressors` in all relevant functions and methods to reflect the support for multiple compressors in zarr v3.
|
|
15
34
|
- The `version` argument has been renamed to `ngff_version` in all relevant functions and methods to specify the OME-NGFF version.
|
|
16
|
-
- Remove the `parallel_safe` argument from all zarr related functions and methods. The locking mechanism is now handled internally and only depends on the
|
|
35
|
+
- Remove the `parallel_safe` argument from all zarr related functions and methods. The locking mechanism is now handled internally and only depends on the
|
|
17
36
|
`cache`.
|
|
18
37
|
- Remove the unused `parent` argument from `ZarrGroupHandler`.
|
|
19
38
|
- Internal changes to `ZarrGroupHandler` to support cleanup unused apis.
|
|
20
39
|
- Remove `ngio_logger` in favor of standard warnings module.
|
|
21
40
|
|
|
41
|
+
### Migration Guide (v0.4 → v0.5)
|
|
42
|
+
|
|
43
|
+
#### Roi API Changes
|
|
44
|
+
|
|
45
|
+
The `Roi` class now uses a flexible slice-based model supporting arbitrary axes:
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
# Old (v0.4)
|
|
49
|
+
roi = Roi(x=34.1, y=10, x_length=321.6, y_length=330)
|
|
50
|
+
|
|
51
|
+
# New (v0.5)
|
|
52
|
+
roi = Roi.from_values(slices={"x": (34.1, 321.6), "y": (10, 330)}, name=None)
|
|
53
|
+
|
|
54
|
+
# Accessing coordinates
|
|
55
|
+
# Old: roi.x, roi.y, roi.x_length, roi.y_length
|
|
56
|
+
# New: roi.get("x").start, roi.get("y").start, roi.get("x").length, roi.get("y").length
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
#### Argument Renames
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
# compressor → compressors
|
|
63
|
+
# Old (v0.4)
|
|
64
|
+
create_empty_ome_zarr(..., compressor=Blosc())
|
|
65
|
+
|
|
66
|
+
# New (v0.5)
|
|
67
|
+
create_empty_ome_zarr(..., compressors=Blosc())
|
|
68
|
+
|
|
69
|
+
# version → ngff_version
|
|
70
|
+
# Old (v0.4)
|
|
71
|
+
create_empty_ome_zarr(..., version="0.4")
|
|
72
|
+
|
|
73
|
+
# New (v0.5)
|
|
74
|
+
create_empty_ome_zarr(..., ngff_version="0.4")
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### Removed Arguments
|
|
78
|
+
|
|
79
|
+
- `parallel_safe`: No longer needed, locking is handled internally
|
|
80
|
+
- `ngio_logger`: Use Python's standard `warnings` module instead
|
|
81
|
+
|
|
82
|
+
### Deprecations
|
|
83
|
+
- Standardized all deprecation warnings to indicate removal in `ngio=0.6`.
|
|
84
|
+
- Deprecated `set_channel_percentiles` method, use `set_channel_windows_with_percentiles` instead.
|
|
85
|
+
|
|
22
86
|
### Bug Fixes
|
|
23
|
-
- Fix bug in `consolidate` function when using
|
|
87
|
+
- Fix bug in `consolidate` function when using coarsening mode with non power-of-two shapes.
|
|
88
|
+
- Fix HCS plate column name formatting to use standardized zero-padding (e.g., column `3` is now stored as `"03"`).
|
|
89
|
+
- Fix `_stringify_column` not passing `num_digits` parameter to `_format_int_column`.
|
|
90
|
+
|
|
91
|
+
### Documentation
|
|
92
|
+
- Fix incorrect and incomplete docstrings across the codebase:
|
|
93
|
+
- `compute_masking_roi`: Added Args/Returns, fixed description (supports 2D, 3D, 4D).
|
|
94
|
+
- `lazy_compute_slices`: Added Args/Returns sections.
|
|
95
|
+
- `LabelsContainer.list`: Fixed description (was "Create the /labels group").
|
|
96
|
+
- `build_masking_roi_table`: Added Args/Returns sections.
|
|
97
|
+
- `TablesContainer`: Fixed class and method descriptions (were referencing labels instead of tables).
|
|
98
|
+
- `NgioPlateMeta.add_well`: Fixed description (was "Add an image to the well").
|
|
99
|
+
- `NgioPlateMeta.derive`: Fixed type annotation in docstring (`NgffVersion` → `NgffVersions`).
|
|
100
|
+
- Added missing docstrings to several HCS helper functions.
|
|
24
101
|
|
|
25
102
|
## [v0.4.7]
|
|
26
103
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ngio
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.1
|
|
4
4
|
Summary: Next Generation file format IO
|
|
5
5
|
Project-URL: homepage, https://github.com/BioVisionCenter/ngio
|
|
6
6
|
Project-URL: repository, https://github.com/BioVisionCenter/ngio
|
|
@@ -23,7 +23,7 @@ Requires-Dist: dask[distributed]<2025.11.0
|
|
|
23
23
|
Requires-Dist: filelock
|
|
24
24
|
Requires-Dist: numpy
|
|
25
25
|
Requires-Dist: ome-zarr-models
|
|
26
|
-
Requires-Dist: pandas
|
|
26
|
+
Requires-Dist: pandas<3.0.0,>=1.2.0
|
|
27
27
|
Requires-Dist: pillow
|
|
28
28
|
Requires-Dist: polars
|
|
29
29
|
Requires-Dist: pooch
|
|
@@ -58,6 +58,7 @@ Requires-Dist: mkdocs-jupyter; extra == 'docs'
|
|
|
58
58
|
Requires-Dist: mkdocs-material; extra == 'docs'
|
|
59
59
|
Requires-Dist: mkdocstrings[python]; extra == 'docs'
|
|
60
60
|
Requires-Dist: rich; extra == 'docs'
|
|
61
|
+
Requires-Dist: ruff; extra == 'docs'
|
|
61
62
|
Requires-Dist: scikit-image; extra == 'docs'
|
|
62
63
|
Requires-Dist: tabulate; extra == 'docs'
|
|
63
64
|
Provides-Extra: test
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# ngio API documentation
|
|
2
|
+
|
|
3
|
+
::: ngio
|
|
4
|
+
options:
|
|
5
|
+
members:
|
|
6
|
+
- AxesSetup
|
|
7
|
+
- ChannelSelectionModel
|
|
8
|
+
- DefaultNgffVersion
|
|
9
|
+
- Dimensions
|
|
10
|
+
- ImageInWellPath
|
|
11
|
+
- NgffVersions
|
|
12
|
+
- NgioSupportedStore
|
|
13
|
+
- PixelSize
|
|
14
|
+
- Roi
|
|
15
|
+
- RoiSlice
|
|
16
|
+
- StoreOrGroup
|
|
17
|
+
- create_synthetic_ome_zarr
|
|
@@ -96,4 +96,4 @@ Also, checkout our jupyer notebook tutorials for more examples:
|
|
|
96
96
|
- [Image Processing](../tutorials/image_processing.ipynb): Learn how to perform simple image processing operations.
|
|
97
97
|
- [Image Segmentation](../tutorials/image_segmentation.ipynb): Learn how to create new labels from images.
|
|
98
98
|
- [Feature Extraction](../tutorials/feature_extraction.ipynb): Learn how to extract features from images.
|
|
99
|
-
- [HCS
|
|
99
|
+
- [HCS Exploration](../tutorials/hcs_exploration.ipynb): Learn how to explore high-content screening data using ngio.
|
|
@@ -58,8 +58,8 @@ Examples of the OME-Zarr metadata access:
|
|
|
58
58
|
=== "Available Paths"
|
|
59
59
|
Show the paths to all available resolution levels:
|
|
60
60
|
```pycon exec="true" source="console" session="get_started"
|
|
61
|
-
>>> ome_zarr_container.
|
|
62
|
-
>>> print(ome_zarr_container.
|
|
61
|
+
>>> ome_zarr_container.level_paths # Show the paths to all available images
|
|
62
|
+
>>> print(ome_zarr_container.level_paths) # markdown-exec: hide
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
=== "Dimensionality"
|
|
@@ -76,7 +76,7 @@ Examples of the OME-Zarr metadata access:
|
|
|
76
76
|
|
|
77
77
|
=== "Full Metadata Object"
|
|
78
78
|
```pycon exec="true" source="console" session="get_started"
|
|
79
|
-
>>> metadata = ome_zarr_container.
|
|
79
|
+
>>> metadata = ome_zarr_container.meta
|
|
80
80
|
>>> print(metadata) # markdown-exec: hide
|
|
81
81
|
```
|
|
82
82
|
The metadata object contains all the information about the image, for example, the channel labels:
|
|
@@ -85,6 +85,65 @@ Examples of the OME-Zarr metadata access:
|
|
|
85
85
|
>>> print(metadata.channels_meta.channel_labels) # markdown-exec: hide
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
+
## Modifying metadata
|
|
89
|
+
|
|
90
|
+
ngio provides methods to modify the image metadata, such as channel labels, colors, display windows, axes names, and units.
|
|
91
|
+
|
|
92
|
+
### Channel metadata
|
|
93
|
+
|
|
94
|
+
You can update channel labels, colors, and display windows:
|
|
95
|
+
|
|
96
|
+
=== "Channel Labels"
|
|
97
|
+
Update the labels (names) of the channels:
|
|
98
|
+
```python
|
|
99
|
+
>>> ome_zarr_container.set_channel_labels(["DAPI", "GFP", "RFP"])
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
=== "Channel Colors"
|
|
103
|
+
Update the display colors of the channels (hex format):
|
|
104
|
+
```python
|
|
105
|
+
>>> ome_zarr_container.set_channel_colors(["0000FF", "00FF00", "FF0000"])
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
=== "Channel Windows"
|
|
109
|
+
Update the display windows (start/end values) for each channel:
|
|
110
|
+
```python
|
|
111
|
+
>>> ome_zarr_container.set_channel_windows([(0, 255), (0, 1000), (0, 500)])
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
=== "Channel Windows from Percentiles"
|
|
115
|
+
Automatically compute display windows based on data percentiles:
|
|
116
|
+
```python
|
|
117
|
+
>>> ome_zarr_container.set_channel_windows_with_percentiles(percentiles=(0.1, 99.9))
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Axes metadata
|
|
121
|
+
|
|
122
|
+
You can update the axes names and units:
|
|
123
|
+
|
|
124
|
+
=== "Axes Names"
|
|
125
|
+
Rename the axes in the metadata:
|
|
126
|
+
```python
|
|
127
|
+
>>> ome_zarr_container.set_axes_names(["t", "c", "z", "y", "x"])
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
=== "Axes Units"
|
|
131
|
+
Set the space and time units:
|
|
132
|
+
```python
|
|
133
|
+
>>> ome_zarr_container.set_axes_units(space_unit="micrometer", time_unit="second")
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Image name
|
|
137
|
+
|
|
138
|
+
You can set the name of the image in the metadata:
|
|
139
|
+
|
|
140
|
+
```python
|
|
141
|
+
>>> ome_zarr_container.set_name("My Processed Image")
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
!!! note
|
|
145
|
+
The `set_name` method only updates the metadata. It does not change the group name or file paths.
|
|
146
|
+
|
|
88
147
|
## Accessing images / labels / tables
|
|
89
148
|
|
|
90
149
|
To access images, labels, and tables, you can use the `get_image`, `get_label`, and `get_table` methods of the `OME-Zarr Container` object.
|
|
@@ -109,7 +168,7 @@ new_image = ome_zarr_container.derive_image(
|
|
|
109
168
|
"data/new_ome.zarr",
|
|
110
169
|
overwrite=True,
|
|
111
170
|
shape=(16, 128, 128),
|
|
112
|
-
|
|
171
|
+
pixelsize=0.65,
|
|
113
172
|
z_spacing=1.0
|
|
114
173
|
)
|
|
115
174
|
```
|
|
@@ -129,7 +188,7 @@ x = np.random.randint(0, 255, (16, 128, 128), dtype=np.uint8)
|
|
|
129
188
|
new_ome_zarr_image = create_ome_zarr_from_array(
|
|
130
189
|
store="random_ome.zarr",
|
|
131
190
|
array=x,
|
|
132
|
-
|
|
191
|
+
pixelsize=0.65,
|
|
133
192
|
z_spacing=1.0
|
|
134
193
|
)
|
|
135
194
|
```
|
|
@@ -142,7 +201,7 @@ from ngio import create_empty_ome_zarr
|
|
|
142
201
|
new_ome_zarr_image = create_empty_ome_zarr(
|
|
143
202
|
store="empty_ome.zarr",
|
|
144
203
|
shape=(16, 128, 128),
|
|
145
|
-
|
|
204
|
+
pixelsize=0.65,
|
|
146
205
|
z_spacing=1.0
|
|
147
206
|
)
|
|
148
207
|
```
|
|
@@ -137,7 +137,7 @@ To read or write a specific region of the image defined in world coordinates, yo
|
|
|
137
137
|
|
|
138
138
|
```pycon exec="true" source="console" session="get_started"
|
|
139
139
|
>>> from ngio import Roi
|
|
140
|
-
>>> roi = Roi(x
|
|
140
|
+
>>> roi = Roi.from_values(slices={"x": (34.1, 321.6), "y": (10, 330)}, name=None) # Define a ROI in world coordinates
|
|
141
141
|
>>> image.get_roi_as_numpy(roi) # Get the image data in the ROI as a numpy array
|
|
142
142
|
>>> print(image.get_roi_as_numpy(roi).shape) # markdown-exec: hide
|
|
143
143
|
```
|
|
@@ -35,17 +35,19 @@ Ngio supports three types of tables: `roi_table`, `feature_table`, and `masking_
|
|
|
35
35
|
cmap_array[0] = 0
|
|
36
36
|
cmap = ListedColormap(cmap_array)
|
|
37
37
|
image_3 = ome_zarr_container.get_image(path="3")
|
|
38
|
-
image_data = image_3.
|
|
38
|
+
image_data = image_3.get_as_numpy(c=0)
|
|
39
39
|
image_data = np.squeeze(image_data)
|
|
40
40
|
roi = roi_table.get("FOV_1")
|
|
41
|
-
roi = roi.
|
|
41
|
+
roi = roi.to_pixel(pixel_size=image_3.pixel_size)
|
|
42
|
+
x_slice = roi.get("x")
|
|
43
|
+
y_slice = roi.get("y")
|
|
42
44
|
#label_3 = ome_zarr_container.get_label("nuclei", pixel_size=image_3.pixel_size)
|
|
43
|
-
#label_data = label_3.
|
|
45
|
+
#label_data = label_3.get_as_numpy()
|
|
44
46
|
#label_data = np.squeeze(label_data)
|
|
45
47
|
fig, ax = plt.subplots(figsize=(8, 4))
|
|
46
48
|
ax.set_title("FOV_1 ROI")
|
|
47
49
|
ax.imshow(image_data, cmap='gray')
|
|
48
|
-
ax.add_patch(Rectangle((
|
|
50
|
+
ax.add_patch(Rectangle((x_slice.start, y_slice.start), x_slice.length, y_slice.length, edgecolor='red', facecolor='none', lw=2))
|
|
49
51
|
#ax.imshow(label_data, cmap=cmap, alpha=0.6)
|
|
50
52
|
# make sure the roi is centered
|
|
51
53
|
ax.axis('off')
|
|
@@ -58,7 +60,7 @@ Ngio supports three types of tables: `roi_table`, `feature_table`, and `masking_
|
|
|
58
60
|
ROIs can be used to slice the image data:
|
|
59
61
|
```pycon exec="true" source="console" session="get_started"
|
|
60
62
|
>>> roi = roi_table.get("FOV_1")
|
|
61
|
-
>>> roi_data = image.
|
|
63
|
+
>>> roi_data = image.get_roi_as_numpy(roi)
|
|
62
64
|
>>> roi_data.shape
|
|
63
65
|
>>> print(roi_data.shape) # markdown-exec: hide
|
|
64
66
|
```
|
|
@@ -76,10 +78,10 @@ Ngio supports three types of tables: `roi_table`, `feature_table`, and `masking_
|
|
|
76
78
|
cmap = ListedColormap(cmap_array)
|
|
77
79
|
roi = roi_table.get("FOV_1")
|
|
78
80
|
image_3 = ome_zarr_container.get_image(path="3")
|
|
79
|
-
image_data = image_3.
|
|
81
|
+
image_data = image_3.get_roi_as_numpy(roi, c=0)
|
|
80
82
|
image_data = np.squeeze(image_data)
|
|
81
83
|
#label_3 = ome_zarr_container.get_label("nuclei", pixel_size=image_3.pixel_size)
|
|
82
|
-
#label_data = label_3.
|
|
84
|
+
#label_data = label_3.get_as_numpy()
|
|
83
85
|
#label_data = np.squeeze(label_data)
|
|
84
86
|
fig, ax = plt.subplots(figsize=(8, 4))
|
|
85
87
|
ax.set_title("FOV_1 ROI")
|
|
@@ -104,7 +106,7 @@ Ngio supports three types of tables: `roi_table`, `feature_table`, and `masking_
|
|
|
104
106
|
ROIs can be used to slice the image data:
|
|
105
107
|
```pycon exec="true" source="console" session="get_started"
|
|
106
108
|
>>> roi = masking_table.get_label(100)
|
|
107
|
-
>>> roi_data = image.
|
|
109
|
+
>>> roi_data = image.get_roi_as_numpy(roi)
|
|
108
110
|
>>> roi_data.shape
|
|
109
111
|
>>> print(roi_data.shape) # markdown-exec: hide
|
|
110
112
|
```
|
|
@@ -122,10 +124,10 @@ Ngio supports three types of tables: `roi_table`, `feature_table`, and `masking_
|
|
|
122
124
|
cmap = ListedColormap(cmap_array)
|
|
123
125
|
roi = masking_table.get_label(100)
|
|
124
126
|
image_3 = ome_zarr_container.get_image(path="2")
|
|
125
|
-
image_data = image_3.
|
|
127
|
+
image_data = image_3.get_roi_as_numpy(roi, c=0)
|
|
126
128
|
image_data = np.squeeze(image_data)
|
|
127
129
|
label_3 = ome_zarr_container.get_label("nuclei", pixel_size=image_3.pixel_size)
|
|
128
|
-
label_data = label_3.
|
|
130
|
+
label_data = label_3.get_roi_as_numpy(roi)
|
|
129
131
|
label_data = np.squeeze(label_data)
|
|
130
132
|
fig, ax = plt.subplots(figsize=(8, 4))
|
|
131
133
|
ax.set_title("Label 1 ROI")
|
|
@@ -156,7 +158,7 @@ Tables (differently from Images and Labels) can be purely in memory objects, and
|
|
|
156
158
|
```pycon exec="true" source="console" session="get_started"
|
|
157
159
|
>>> from ngio.tables import RoiTable
|
|
158
160
|
>>> from ngio import Roi
|
|
159
|
-
>>> roi = Roi(x
|
|
161
|
+
>>> roi = Roi.from_values(slices={"x": (0, 128), "y": (0, 128)}, name="FOV_1")
|
|
160
162
|
>>> roi_table = RoiTable(rois=[roi])
|
|
161
163
|
>>> print(roi_table) # markdown-exec: hide
|
|
162
164
|
```
|
|
@@ -30,10 +30,10 @@ Let's create a masked image from the `nuclei` label:
|
|
|
30
30
|
|
|
31
31
|
Since the `MaskedImage` is a subclass of `Image`, we can use all the methods available for `Image` objects.
|
|
32
32
|
|
|
33
|
-
The two most notable exceptions are the `
|
|
33
|
+
The two most notable exceptions are the `get_roi_as_numpy` (or `get_roi_as_dask`) and `set_roi` which now instead of requiring a `roi` object, require an integer `label`.
|
|
34
34
|
|
|
35
35
|
```pycon exec="true" source="console" session="masked_images"
|
|
36
|
-
>>> roi_data = masked_image.
|
|
36
|
+
>>> roi_data = masked_image.get_roi_as_numpy(label=1009, c=0)
|
|
37
37
|
>>> roi_data.shape
|
|
38
38
|
>>> print(roi_data.shape) # markdown-exec: hide
|
|
39
39
|
```
|
|
@@ -50,7 +50,7 @@ cmap_array = np.random.rand(1000, 3)
|
|
|
50
50
|
cmap_array[0] = 0
|
|
51
51
|
cmap = ListedColormap(cmap_array)
|
|
52
52
|
|
|
53
|
-
image_data = masked_image.
|
|
53
|
+
image_data = masked_image.get_roi_as_numpy(label=1009, c=0)
|
|
54
54
|
image_data = np.squeeze(image_data)
|
|
55
55
|
|
|
56
56
|
fig, ax = plt.subplots(figsize=(8, 4))
|
|
@@ -68,13 +68,13 @@ Additionally we can used the `zoom_factor` argument to get more context around t
|
|
|
68
68
|
For example we can zoom out the ROI by a factor of `2`:
|
|
69
69
|
|
|
70
70
|
```pycon exec="true" source="console" session="masked_images"
|
|
71
|
-
>>> roi_data = masked_image.
|
|
71
|
+
>>> roi_data = masked_image.get_roi_as_numpy(label=1009, c=0, zoom_factor=2)
|
|
72
72
|
>>> roi_data.shape
|
|
73
73
|
>>> print(roi_data.shape) # markdown-exec: hide
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
```python exec="1" html="1" session="masked_images"
|
|
77
|
-
image_data = masked_image.
|
|
77
|
+
image_data = masked_image.get_roi_as_numpy(label=1009, c=0, zoom_factor=2)
|
|
78
78
|
image_data = np.squeeze(image_data)
|
|
79
79
|
|
|
80
80
|
fig, ax = plt.subplots(figsize=(8, 4))
|
|
@@ -90,7 +90,7 @@ print(buffer.getvalue())
|
|
|
90
90
|
|
|
91
91
|
## Masked operations
|
|
92
92
|
|
|
93
|
-
In addition to the `
|
|
93
|
+
In addition to the `get_roi_as_numpy` method, the `MaskedImage` class also provides a masked operation method that allows you to perform reading and writing only on the masked pixels.
|
|
94
94
|
|
|
95
95
|
For these operations we can use the `get_roi_masked` and `set_roi_masked` methods.
|
|
96
96
|
For example, we can use the `get_roi_masked` method to get the masked data for a specific label:
|
|
@@ -123,7 +123,7 @@ We can also use the `set_roi_masked` method to set the masked data for a specifi
|
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
```python exec="1" html="1" session="masked_images"
|
|
126
|
-
masked_data = masked_image.
|
|
126
|
+
masked_data = masked_image.get_roi_as_numpy(label=1009, c=0, zoom_factor=2)
|
|
127
127
|
masked_data = np.squeeze(masked_data)
|
|
128
128
|
fig, ax = plt.subplots(figsize=(8, 4))
|
|
129
129
|
ax.set_title("Masked Label 1009 ROI - After setting")
|
|
@@ -28,11 +28,11 @@ Ngio's mission is to streamline working with OME-Zarr files by providing a simpl
|
|
|
28
28
|
## Getting Started
|
|
29
29
|
|
|
30
30
|
Refer to the [Getting Started](getting_started/0_quickstart.md) guide to integrate ngio into your workflows. We also provide a collection of [Tutorials](tutorials/image_processing.ipynb) to help you get up and running quickly.
|
|
31
|
-
For more advanced usage and API documentation, see our [API Reference](api/
|
|
31
|
+
For more advanced usage and API documentation, see our [API Reference](api/ome_zarr_container.md).
|
|
32
32
|
|
|
33
33
|
## Supported OME-Zarr versions
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Ngio supports OME-Zarr v0.4 and v0.5, with Zarr v2 and v3 storage formats.
|
|
36
36
|
|
|
37
37
|
## Development Status
|
|
38
38
|
|
|
@@ -51,7 +51,6 @@ Currently, ngio only supports OME-Zarr v0.4. Support for version 0.5 and higher
|
|
|
51
51
|
|
|
52
52
|
### Upcoming Features
|
|
53
53
|
|
|
54
|
-
- Support for OME-Zarr v0.5 and Zarr v3 (via `zarr-python` v3)
|
|
55
54
|
- Enhanced performance optimizations (parallel iterators, optimized io strategies)
|
|
56
55
|
|
|
57
56
|
## Contributors
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"ome_zarr = create_ome_zarr_from_array(\n",
|
|
43
43
|
" store=\"./data/human_mitosis.zarr\",\n",
|
|
44
44
|
" array=skimage.data.human_mitosis(),\n",
|
|
45
|
-
"
|
|
45
|
+
" pixelsize=0.1, # Just a guess\n",
|
|
46
46
|
")\n",
|
|
47
47
|
"ome_zarr"
|
|
48
48
|
]
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"name": "python",
|
|
94
94
|
"nbconvert_exporter": "python",
|
|
95
95
|
"pygments_lexer": "ipython3",
|
|
96
|
-
"version": "3.11.
|
|
96
|
+
"version": "3.11.14"
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
99
|
"nbformat": 4,
|
|
@@ -142,6 +142,13 @@
|
|
|
142
142
|
"source": [
|
|
143
143
|
"ome_zarr.get_table(\"nuclei_regionprops\").lazy_frame.collect()"
|
|
144
144
|
]
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"cell_type": "code",
|
|
148
|
+
"execution_count": null,
|
|
149
|
+
"metadata": {},
|
|
150
|
+
"outputs": [],
|
|
151
|
+
"source": []
|
|
145
152
|
}
|
|
146
153
|
],
|
|
147
154
|
"metadata": {
|
|
@@ -160,7 +167,7 @@
|
|
|
160
167
|
"name": "python",
|
|
161
168
|
"nbconvert_exporter": "python",
|
|
162
169
|
"pygments_lexer": "ipython3",
|
|
163
|
-
"version": "3.11.
|
|
170
|
+
"version": "3.11.14"
|
|
164
171
|
}
|
|
165
172
|
},
|
|
166
173
|
"nbformat": 4,
|
|
@@ -102,6 +102,13 @@
|
|
|
102
102
|
"print(test_plate)\n",
|
|
103
103
|
"print(f\"Rows: {test_plate.rows}, Columns: {test_plate.columns}\")"
|
|
104
104
|
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"cell_type": "code",
|
|
108
|
+
"execution_count": null,
|
|
109
|
+
"metadata": {},
|
|
110
|
+
"outputs": [],
|
|
111
|
+
"source": []
|
|
105
112
|
}
|
|
106
113
|
],
|
|
107
114
|
"metadata": {
|
|
@@ -120,7 +127,7 @@
|
|
|
120
127
|
"name": "python",
|
|
121
128
|
"nbconvert_exporter": "python",
|
|
122
129
|
"pygments_lexer": "ipython3",
|
|
123
|
-
"version": "3.11.
|
|
130
|
+
"version": "3.11.14"
|
|
124
131
|
}
|
|
125
132
|
},
|
|
126
133
|
"nbformat": 4,
|
|
@@ -241,6 +241,13 @@
|
|
|
241
241
|
"# No need to consolidate, the iterator takes care of that\n",
|
|
242
242
|
"# after all the regions have been processed"
|
|
243
243
|
]
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"cell_type": "code",
|
|
247
|
+
"execution_count": null,
|
|
248
|
+
"metadata": {},
|
|
249
|
+
"outputs": [],
|
|
250
|
+
"source": []
|
|
244
251
|
}
|
|
245
252
|
],
|
|
246
253
|
"metadata": {
|
|
@@ -259,7 +266,7 @@
|
|
|
259
266
|
"name": "python",
|
|
260
267
|
"nbconvert_exporter": "python",
|
|
261
268
|
"pygments_lexer": "ipython3",
|
|
262
|
-
"version": "3.11.
|
|
269
|
+
"version": "3.11.14"
|
|
263
270
|
}
|
|
264
271
|
},
|
|
265
272
|
"nbformat": 4,
|
|
@@ -240,13 +240,6 @@
|
|
|
240
240
|
"plt.tight_layout()\n",
|
|
241
241
|
"plt.show()"
|
|
242
242
|
]
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
"cell_type": "code",
|
|
246
|
-
"execution_count": null,
|
|
247
|
-
"metadata": {},
|
|
248
|
-
"outputs": [],
|
|
249
|
-
"source": []
|
|
250
243
|
}
|
|
251
244
|
],
|
|
252
245
|
"metadata": {
|
|
@@ -265,7 +258,7 @@
|
|
|
265
258
|
"name": "python",
|
|
266
259
|
"nbconvert_exporter": "python",
|
|
267
260
|
"pygments_lexer": "ipython3",
|
|
268
|
-
"version": "3.11.
|
|
261
|
+
"version": "3.11.14"
|
|
269
262
|
}
|
|
270
263
|
},
|
|
271
264
|
"nbformat": 4,
|
|
@@ -39,7 +39,7 @@ dependencies = [
|
|
|
39
39
|
"zarr>3",
|
|
40
40
|
"anndata",
|
|
41
41
|
"pydantic",
|
|
42
|
-
"pandas>=1.2.0",
|
|
42
|
+
"pandas>=1.2.0,<3.0.0",
|
|
43
43
|
"requests",
|
|
44
44
|
"aiohttp",
|
|
45
45
|
"dask[array]<2025.11.0",
|
|
@@ -82,6 +82,7 @@ dev = [
|
|
|
82
82
|
] # add anything else you like to have in your dev environment here
|
|
83
83
|
|
|
84
84
|
docs = [
|
|
85
|
+
"ruff",
|
|
85
86
|
"mkdocs",
|
|
86
87
|
"mkdocs-include-markdown-plugin",
|
|
87
88
|
"mkdocs-material",
|
|
@@ -99,7 +99,14 @@ def compute_slices(segmentation: np.ndarray) -> dict[int, tuple[slice, ...]]:
|
|
|
99
99
|
|
|
100
100
|
|
|
101
101
|
def lazy_compute_slices(segmentation: da.Array) -> dict[int, tuple[slice, ...]]:
|
|
102
|
-
"""Compute slices for each label in a segmentation.
|
|
102
|
+
"""Compute slices for each label in a segmentation using lazy evaluation.
|
|
103
|
+
|
|
104
|
+
Args:
|
|
105
|
+
segmentation: The dask segmentation array.
|
|
106
|
+
|
|
107
|
+
Returns:
|
|
108
|
+
A dictionary mapping label IDs to their bounding box slices.
|
|
109
|
+
"""
|
|
103
110
|
global_offsets = _compute_offsets(segmentation.chunks)
|
|
104
111
|
delayed_chunks = segmentation.to_delayed() # type: ignore
|
|
105
112
|
|
|
@@ -120,12 +127,18 @@ def compute_masking_roi(
|
|
|
120
127
|
pixel_size: PixelSize,
|
|
121
128
|
axes_order: Sequence[str],
|
|
122
129
|
) -> list[Roi]:
|
|
123
|
-
"""Compute
|
|
130
|
+
"""Compute ROIs for each label in a segmentation.
|
|
131
|
+
|
|
132
|
+
This function expects a 2D, 3D, or 4D segmentation array.
|
|
133
|
+
The axes order should match the segmentation dimensions.
|
|
124
134
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
135
|
+
Args:
|
|
136
|
+
segmentation: The segmentation array (2D, 3D, or 4D).
|
|
137
|
+
pixel_size: The pixel size metadata for coordinate conversion.
|
|
138
|
+
axes_order: The order of axes in the segmentation (e.g., 'zyx' or 'yx').
|
|
128
139
|
|
|
140
|
+
Returns:
|
|
141
|
+
A list of Roi objects, one for each unique label in the segmentation.
|
|
129
142
|
"""
|
|
130
143
|
if segmentation.ndim not in [2, 3, 4]:
|
|
131
144
|
raise NgioValueError("Only 2D, 3D, and 4D segmentations are supported.")
|