Skip to content

Commit 018f00b

Browse files
Fix derive label (#117)
* fix #114 * add pillow fix #115 * update change long
1 parent 59d759a commit 018f00b

File tree

6 files changed

+48
-3
lines changed

6 files changed

+48
-3
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## [v0.4.3]
4+
5+
### Bug Fixes
6+
7+
- Fix bug in deriving labels and image from OME-Zarr with non standard path names.
8+
- Add missing pillow dependency.
9+
- Update pixi workspace config.
10+
311
## [v0.4.2]
412

513
### API Changes

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ dependencies = [
4848
"pooch",
4949
"polars",
5050
"pyarrow",
51+
"pillow",
5152
]
5253

5354
# https://peps.python.org/pep-0621/#dependencies-optional-dependencies
@@ -186,7 +187,7 @@ source = ["ngio"]
186187
[tool.check-manifest]
187188
ignore = [".pre-commit-config.yaml", ".ruff_cache/**/*", "tests/**/*"]
188189

189-
[tool.pixi.project]
190+
[tool.pixi.workspace]
190191
channels = ["conda-forge"]
191192
platforms = ["osx-arm64", "linux-64", "win-64"]
192193

src/ngio/images/_image.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,7 @@ def derive_image_container(
801801
pixelsize=pixel_size.x,
802802
z_spacing=pixel_size.z,
803803
time_spacing=pixel_size.t,
804-
levels=ref_meta.levels,
804+
levels=ref_meta.paths,
805805
yx_scaling_factor=ref_meta.yx_scaling(),
806806
z_scaling_factor=ref_meta.z_scaling(),
807807
time_unit=pixel_size.time_unit,

src/ngio/images/_label.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ def derive_label(
318318
pixelsize=ref_image.pixel_size.x,
319319
z_spacing=ref_image.pixel_size.z,
320320
time_spacing=ref_image.pixel_size.t,
321-
levels=ref_meta.levels,
321+
levels=ref_meta.paths,
322322
yx_scaling_factor=ref_meta.yx_scaling(),
323323
z_scaling_factor=ref_meta.z_scaling(),
324324
time_unit=ref_image.pixel_size.time_unit,

tests/unit/images/test_images.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,3 +220,24 @@ def test_zoom_virtual_axes(
220220
# Roi data should match exactly except for virtual axis
221221
assert img1_data.shape[1:] == img2_roi_data.shape[1:]
222222
img2.set_roi(roi=roi, patch=img2_roi_data, transforms=[zoom], axes_order="czyx")
223+
224+
225+
def test_derive_image_consistency(
226+
tmp_path: Path,
227+
):
228+
path1 = tmp_path / "image1.zarr"
229+
ome_zarr = create_empty_ome_zarr(
230+
store=path1,
231+
shape=(3, 16, 16, 16),
232+
axes_names="czyx",
233+
xy_pixelsize=1.0,
234+
levels=["s0", "s1", "s2"],
235+
)
236+
ome_zarr_der = ome_zarr.derive_image(tmp_path / "derived_image.zarr")
237+
assert ome_zarr.channel_labels == ome_zarr_der.channel_labels
238+
assert ome_zarr.levels_paths == ome_zarr_der.levels_paths
239+
assert ome_zarr.space_unit == ome_zarr_der.space_unit
240+
assert ome_zarr.time_unit == ome_zarr_der.time_unit
241+
242+
label = ome_zarr.derive_label("derived_label")
243+
assert label.path == "s0"

tests/unit/images/test_omezarr_container.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,3 +296,18 @@ def test_get_and_squeeze(tmp_path: Path):
296296
image.get_as_dask(
297297
channel_selection=ChannelSelectionModel(identifier="0", mode="index")
298298
)
299+
300+
301+
def test_derive_image_and_labels(tmp_path: Path):
302+
# Testing for #116
303+
store = tmp_path / "ome_zarr.zarr"
304+
ome_zarr = create_empty_ome_zarr(
305+
store,
306+
shape=(3, 20, 30),
307+
xy_pixelsize=0.5,
308+
levels=1,
309+
axes_names=["c", "y", "x"],
310+
dtype="uint8",
311+
)
312+
derived_ome_zarr = ome_zarr.derive_image(tmp_path / "derived.zarr")
313+
_ = derived_ome_zarr.derive_label("derived_label")

0 commit comments

Comments
 (0)