Skip to content

2026-09-18 NanoVirDx Histo component architecture review

Reviewed which Histo 0.0.127 boundaries should become path-backed NanoVirDx predictors.

Work Done

  • Reviewed Histo histo-v0.0.127 domain-representation public APIs and its per-super-window data flow.
  • Confirmed histo.domain_representation.process_scan is the correct thin whole-WSI integration boundary.
  • Determined that embedding, tissue, cell, nuclei, and structure-tensor stages should not become separate NanoVirDx predictors because Histo shares in-memory feature grids and owns window planning and merging.
  • Recommended a standalone Gleason predictor only after Histo provides a whole-slide path-in/path-out API; otherwise callers should use the Gleason map in DomainRepresentationSample.
  • Identified that the current direct process_scan use does not preserve Histo’s cross-window/cross-scan watershed and host-buffer lifecycle optimizations.

Lessons Learned: Pitfalls

  • Histo’s head-level functions look independently callable, but their inputs are box-local in-memory feature grids, not stable persisted whole-slide artifacts.
  • cell_lut is stored inside cell_seg.zarr; it is not a missing sixth output path.
  • The legacy Gleason SemanticSegPredictor.predict_wsi is a different strip/pixel inference route and should not be confused with the optimized shared-embedding domain-representation route.

Lessons Learned: Improvements

  • Document Histo’s recommended external integration boundary and explicitly mark box/head APIs as internal composition points.
  • Add a Histo-owned local multi-scan runner or resource context that returns output paths while retaining watershed pools and reserved buffers.
  • Package the domain-representation settings with Histo so downstream adapters do not vendor a matching YAML.
Navigation

Type to search…

↑↓ navigate↵ selectEsc close