renkin 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -331,6 +331,7 @@ for full matching/validation semantics.
331
331
  | **Constraint DSL** | `--constraints constraints.json` — JSON-driven synthesis planning: element filters, step limits, confidence thresholds, preferred reaction families; enables LLM → RENKIN pipeline |
332
332
  | **Output formats** | `--format json` · `tree` · `mermaid` · `explain` (human-readable per-route analysis) · `compare` (side-by-side table) · `compare-json` · `pareto` |
333
333
  | **Failure diagnostics** | Zero-route JSON output includes `diagnostics` block with `likely_causes` and `suggestions` |
334
+ | **Standalone forward prediction** | `renkin-forward predict --reactants <SMILES>...` enumerates and ranks forward reaction product candidates from reversed SMIRKS templates, independent of route search — see the [Forward Prediction guide](docs/guides/forward-prediction.md) |
334
335
  | **Forward validation** | `renkin-forward validate` verifies each step by applying templates forward; accepts `--route-json` or stdin |
335
336
  | **Plausibility report** | `renkin-bench --plausibility` — forward-validates best routes and reports composite plausibility score |
336
337
  | **PaRoutes benchmark** | `renkin-bench --input-format paroutes` for multi-step ground-truth evaluation with `depth_delta` and `route_diversity` |
@@ -363,6 +364,9 @@ for full matching/validation semantics.
363
364
  # Route cost scoring with commercial prices
364
365
  renkin -t "Cc1ccc(-c2ccccc2)cc1" --bb-prices data/prices.csv --format json
365
366
 
367
+ # Standalone forward prediction — no route search involved
368
+ renkin-forward predict --reactants "Oc1ccccc1C(=O)O" "CCO" --report --max-results 5
369
+
366
370
  # Forward validation — pipe find_routes output directly
367
371
  renkin -t "CC(=O)Oc1ccccc1C(=O)O" --format json | renkin-forward validate
368
372
 
@@ -564,6 +568,8 @@ renkin/ ← Cargo workspace root
564
568
  │ ├── score.rs # SA Score heuristic + step cost
565
569
  │ ├── search.rs # A* / AND-OR tree engine + beam pruning
566
570
  │ ├── scorer.rs # Phase B: tract-onnx NN template scorer
571
+ │ ├── candidate.rs # one-step candidate proposal (offline reranking foundation, not wired into search)
572
+ │ ├── pool_export.rs # candidate-pool JSONL + reproducibility-manifest export
567
573
  │ ├── python.rs # PyO3 bindings (--features python)
568
574
  │ └── wasm.rs # wasm-bindgen bindings (cfg = wasm32)
569
575
  ├── crates/ ← sibling crates
@@ -576,7 +582,9 @@ renkin/ ← Cargo workspace root
576
582
  │ └── bench_chunks/ # USPTO-50k per-chunk results
577
583
  ├── scripts/
578
584
  │ ├── extract_templates.py # rdchiral template extraction pipeline
579
- └── run_benchmark_chunks.sh # resumable chunked benchmark runner
585
+ ├── run_benchmark_chunks.sh # resumable chunked benchmark runner
586
+ │ ├── train_reranker.py # candidate reranker training/evaluation (dev tool, offline only — see docs/guides/reranker-candidate-pools.md)
587
+ │ └── tests/ # unittest suite for train_reranker.py
580
588
  ├── docs/ # MkDocs source → kent-tokyo.github.io/renkin/
581
589
  └── mkdocs.yml
582
590
  ```
@@ -587,6 +595,8 @@ renkin/ ← Cargo workspace root
587
595
 
588
596
  ### Recently shipped
589
597
 
598
+ - [x] `renkin-forward` CLI hardening — versioned `ForwardPredictionReport`, deterministic candidate IDs/merge/provenance, reactant-order-independent matching (up to 3 reactants), strict CLI/route-JSON validation
599
+ - [x] RETROSPECT-inspired offline candidate-reranking foundation — candidate proposal/selection separation, feature schema v1, manifest v2, leakage-safe train/val/test splitting, 7 deterministic baseline arms + trained-ranker arm, paired bootstrap + offline gate tooling ([#59](https://github.com/kent-tokyo/renkin/pull/59); **foundation only — no trained model or accuracy result yet, not wired into route search**)
590
600
  - [x] Stable `template_id` (`rule:<name>` / `smirks-sha256:<hex>`) + `--template-metadata` evidence sidecar + `renkin template ids` ([#41](https://github.com/kent-tokyo/renkin/issues/41) phase 1)
591
601
  - [x] Substrate-specific `examples` (`schema_version: 2`) — per-step exact-substrate vs. same-template-different-substrate resolution, surfaced in `--format explain` and as `match_kind` in JSON ([#41](https://github.com/kent-tokyo/renkin/issues/41) phase 2)
592
602
  - [x] `renkin-bench cascade` — multi-stage search (fast defaults → hard cases re-run deeper); only unsolved targets propagate to later stages. **78.0% → 95.9%** on USPTO-50k
@@ -650,18 +660,10 @@ renkin/ ← Cargo workspace root
650
660
 
651
661
  ## Citation
652
662
 
653
- If you use RENKIN in academic work, please cite:
654
-
655
- ```bibtex
656
- @software{renkin2026,
657
- author = {kent-tokyo},
658
- title = {{RENKIN}: Retrosynthesis Engine for Knowledge-Informed Navigation},
659
- year = {2026},
660
- url = {https://github.com/kent-tokyo/renkin/releases/tag/v0.18.0},
661
- version = {0.18.0},
662
- license = {MIT}
663
- }
664
- ```
663
+ If you use RENKIN in academic work, please cite it — see [`CITATION.cff`](CITATION.cff)
664
+ for the canonical, version-tracked citation record. GitHub's "Cite this
665
+ repository" button (top of the repo page) reads it directly and can export
666
+ APA or BibTeX on demand.
665
667
 
666
668
  ---
667
669
 
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "kent-tokyo <kent-tokyo@users.noreply.github.com>"
6
6
  ],
7
7
  "description": "Ultra-fast retrosynthesis engine for computer-aided synthesis planning (CASP) — pure Rust, WASM-ready, Python bindings via PyO3",
8
- "version": "0.18.0",
8
+ "version": "0.19.0",
9
9
  "license": "MIT",
10
10
  "repository": {
11
11
  "type": "git",
package/renkin_bg.wasm CHANGED
Binary file