Skip to content

Expose primary-segmentation intermediates through typed diagnostic artifacts #214

Closed

Description

@trissim

Observed missing contract

Blind development review can inspect final primary-object labels and threshold
measurement rows, but cannot retrieve threshold support, peak-finding response
and marker positions from the same IdentifyPrimaryObjects execution through the
ordinary artifact/result/viewer path. A missing object cannot reliably be
attributed to thresholding, marker suppression or later filtering from the final
mask alone. The current reviewer has had to make further parameter hypotheses
without seeing those intermediate pixels.

At OpenHCS main a0263e82a1b3296f34f8c5cdd50ffae5c33ef7dd,
openhcs/processing/backends/cellprofiler/primary_objects.py already computes
threshold.mask, initial components, maxima_image, maxima, markers and
pre/post-filter variants. Its public output contract exposes original image,
threshold measurements and ObjectLabelPayload; performance fixture capture is
not an ordinary typed diagnostic artifact. ObjectLabelPayload already owns
unedited/small-removed variants: reuse that authority rather than reconstructing
rejections or inventing a second segmentation implementation.

Ownership and acceptance

Backend/diagnostic implementation owner: Singer, coordinated by the OpenHCS
blind-analysis coordinator. Source work can proceed while the shared live slot
is in use; do not change the pinned running installation.

  • Reproduce with a small synthetic close-pair/faint-object field using the real
    registered callable and normal compiled runtime, not private benchmark answers.
  • Expose necessary threshold/response/seed and filtering evidence from the same
    execution through existing declaration-owned artifact mechanisms. Keep source,
    producer, coordinates and stage identity exact and outputs bounded. Do not
    rerun an approximation as if it were the original execution's evidence.
  • Preserve ordinary primary labels, measurements, filtering and secondary-seed
    semantics. Cover no foreground, unclumping disabled and active unclumping.
  • Verify fresh MCP discovery, persisted result review and same-coordinate raw /
    intermediate / result viewer inspection on an isolated display. No X input.
  • Distinguish metadata/technical tests from biological QA; this feature must not
    return an automatic biological acceptance judgement.

Reuse current nominal artifact/CellProfiler owners and applicable NRA/refactor
patterns. No debug bypass, manual MCP registry, raw parameter bag, duplicate
store, legacy alias or undeclared alternate execution path.

Activity

  1. trissim commented on Sep 30, 2026

    @trissim
    CollaboratorAuthor

    Parent owns the remaining PR215 integration. Installed MCP acceptance reproduced an additional defect after the separately named TIFF fix: early-step diagnostic images persist under results/, but their typed source projections are absent from openhcs_metadata.json. The early step writes main flow to memory, so the existing metadata target selection omits its persistent runtime artifacts. Later secondary output metadata contains only its own labels; reopening a diagnostic through openhcs_stream_plate_files_to_viewer returns StorageResolutionError while raw streaming succeeds. Exact terminal and synthetic artifacts are preserved under /home/ts/wt/openhcs-issue-batch-20260929/primary-diagnostics-viewer-live-20260930 and primary-diagnostics-installed-fixture-retry1-20260930. Acceptance: early persistent artifacts must retain source address/geometry and survive subsequent steps/final reconciliation; ordinary installed MCP must reopen raw, intermediate, and final views. Fix stays on existing PR215, extending the existing metadata target owner rather than inventing filename-derived provenance or a second store.

  2. added a commit that references this issue on Sep 30, 2026
  3. trissim commented on Oct 1, 2026

    @trissim
    CollaboratorAuthor

    Closing the original same-run primary diagnostic delivery scope after checking its actual installed acceptance, not merely the merged PR reference.

    PR #215 supplies threshold support, components, declump response/maxima/markers, and canonical filtering variants from the same registered IdentifyPrimaryObjects execution through the existing typed artifact owners. The native synthetic compile/execute/persist journey checked all seven distinct TIFFs against projected runtime pixels and retained primary-to-secondary seed identity. Live acceptance reopened persisted diagnostics through exposed MCP and personally inspected matched raw-only, result-only, combined and diagnostic-only captures. After merge, fresh installed MCP again reopened raw and a different persisted seed-marker result; exact owned cleanup completed.

    Evidence: original live delivery, merged-main installed confirmation. The persistent confirmation is /home/ts/wt/openhcs-issue-batch-20260929/primary-diagnostics-main-live-20260930/ACCEPTANCE.rst. It explicitly retains two unchanged-main failures rather than counting them as passes; all new native diagnostic journey cases passed.

    This closes technical diagnostic delivery, not biological segmentation acceptance. The separately reproduced neurite checkpoint reopening gap (#398 / PR #399) concerns a different persisted route lacking a historical viewer-state receipt and remains actively owned; it does not erase this completed primary-diagnostic acceptance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions