---
title: "2026-09-18 NanoVirDx Histo component architecture review"
description: "Reviewed which Histo 0.0.127 boundaries should become path-backed NanoVirDx predictors."
image: "https://docs.virdx.dev/img/virdx-social-card.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.virdx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-09-18 NanoVirDx Histo component architecture review

## 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.

Source: https://docs.virdx.dev/knowledge/inbox/2026-09-18-histo-nanovirdx-component-architecture-review/index.mdx
