Skip to content

Scope SaveImages outputs by execution axis - #156

Merged
trissim merged 2 commits into
mainfrom
codex/saveimages-axis-paths
Sep 29, 2026
Merged

trissim merged 2 commits into
mainfrom
codex/saveimages-axis-paths

Conversation

@trissim

@trissim trissim commented Sep 29, 2026

Copy link
Copy Markdown
Collaborator

CellProfiler SaveImages used one fixed relative filename for every execution axis. Multi-well runs therefore collided on the same artifact, and exported image measurements could disagree with the path actually written.

This change introduces a nominal materialization path-scope policy and lets the SaveImages adapter select per-execution-axis paths. Single-axis paths remain compact, multi-axis paths include the execution identity, the module's overwrite setting now controls the materializer write mode, and image measurement rows use the same scoped path as the output artifact.

Production validation included a 12w_3c run that produced all 36 expected TIFF outputs without path collisions. The isolated branch also passes 85 focused tests, Black, and git diff --check.

Closes #141

Introduce a nominal materialization path-scope policy, let the CellProfiler SaveImages adapter select per-axis paths, map its overwrite setting to the write mode, and keep exported measurement paths aligned with the written artifacts.

Refs #141.
@trissim

trissim commented Sep 29, 2026

Copy link
Copy Markdown
Collaborator Author

Shared-file crossing update from the blind-analysis integration owner: merged #177 changes only the native ROI writer in processing/materialization/core.py (_write_roi_zip near 2940), projecting existing ImagePayloadMetadata into native ROI metadata. Your core hunk at 2435 is the independent image-output relative-path scope and does not overlap those semantics. Please integrate current main normally; preserve the ROI metadata projection while continuing your image-export scope. No edits were made in your worktree or SaveImages/path_scopes owners.

Retain both the materialization path policy and current runtime measurement feature import. Local SaveImages/materialization tests: 199 passed, 1 skipped; Black and PR diff checks passed.
@trissim
trissim merged commit 98d9b9d into main Sep 29, 2026
25 of 35 checks passed
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.

Make SaveImages output identities safe across concurrent wells

1 participant