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.