Forward reaction prediction
renkin-forward applies the reversible template set to known reactants. It
is a deterministic, template-based check: it does not infer catalysts,
conditions, yield, or experimental success.
cargo run --release -p renkin-forward -- \
predict --reactants "Oc1ccccc1C(=O)O" "CCO" --report --max-results 5
Add --templates templates.smi to load extracted SMIRKS alongside the
embedded rules. Missing, unreadable, or empty template files fail before
prediction.
Choose an output
Without --report, predict returns a compact JSON array of
{template, products, weight}. Several templates can legitimately emit the
same products; weight only ranks template output and is not a probability.
With --report, it returns a versioned ForwardPredictionReport with merged
candidates, source template provenance, deterministic rank, bounds, and
warnings. Prefer this format when saving results or comparing runs.
Validate a route
renkin-forward validate \
--route-json '{"steps":[...]}' \
--templates templates.smi \
--max-results 5
Each supplied retrosynthetic step is replayed forward against the bounded template set. A matching product is a structural replay result, not a claim about reaction conditions or laboratory viability. A template with no usable forward representation remains explicitly not evaluable rather than passing.
Reproducible use
Pin the binary version, template file hash, input reactant order, and
--max-results. Preserve the report form for provenance. For route-level
audit, stock policy, and evidence receipts, use
renkin audit-route after the forward
check.
Related tools: bounded partner enumeration and partner-free retrieval hints.