Skip to content

Latest commit

 

History

History
45 lines (26 loc) · 2.34 KB

architecture.md

File metadata and controls

45 lines (26 loc) · 2.34 KB

Architecture

retro-tree-visual keeps rendering separate from retrosynthesis engines.

The renderer consumes two standardized artifacts:

  1. RetroCast routes: dict[target_id, list[Route]]
  2. Search trace: retro_tree_visual.search_trace.v1

The search trace is required for real expansion playback. RetroCast routes are route-level results and do not preserve failed nodes, open frontier nodes, expansion order, visit counts, or rollout calls.

Trace Precision By Tool

SynPlanner:

  • Current tree pickles preserve final node IDs, parent links, depths, visits, winning routes, and stats.
  • They do not persist a separate expansion-event log.
  • Exported playback therefore uses node creation order, which is consistent with tree growth but cannot recover exact wall-clock expansion events after the run.

AiZynthFinder:

  • Serialized MCTS/AND-OR trees preserve final structure, action metadata, priors, values, and visitations.
  • The JSON serialization does not persist exact creation timestamps.
  • Exported playback uses serialized tree traversal order. For exact playback, AiZynthFinder should emit the neutral trace during search or persist created_at_iteration for every node.

Syntheseus:

  • Pickled search graphs preserve creation_time, depth, visit count, expansion state, and algorithm data on nodes.
  • This gives the strongest trace precision among the three sources.
  • Multi-parent graphs are represented as graph edges. The node parent_id field stores one display parent only; all true edges remain in the edge list.

Main Risks

Trace fidelity:

Real playback is only as accurate as the source artifact. If a tool only saves its final tree without timestamps, the exporter can reconstruct topology but not exact event timing.

Route-to-trace alignment:

RetroCast routes and search traces are separate artifacts. Highlighting winning routes works best when the trace includes explicit routes[].node_ids. SynPlanner can export this. AiZynthFinder and Syntheseus need route-node provenance if exact route highlighting is required.

Strategic bonds:

Strategic-bond clustering requires mapped reaction SMILES. Without atom maps, bonds cannot be assigned to target atoms reliably. Mixed forward/retro reaction direction is handled heuristically by matching the mapped reaction side to the route product, but malformed or partial mapping remains a chemistry-level risk.