Connor Coley, Runzhong Wang, Wenhao Gao, Kevin Yu, Jihye Roh, Ziang Li
We lifted 1 functions out of this paper's own repositories and ran 1 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| coleygroup/desp | canonical | 1 of 1 |
| Function | Status | Where it lives |
|---|---|---|
| zero | Ran | coleygroup/desp/desp/DESP.py code served (permissive licence) · get_code("3c00e9e173caa15b") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
Computer-aided synthesis planning (CASP) algorithms have demonstrated expertlevel abilities in planning retrosynthetic routes to molecules of low to moderate complexity. However, current search methods assume the sufficiency of reaching arbitrary building blocks, failing to address the common real-world constraint where using specific molecules is desired. To this end, we present a formulation of synthesis planning with starting material constraints. Under this formulation, we propose Double-Ended Synthesis Planning (DESP), a novel CASP algorithm under a bidirectional graph search scheme that interleaves expansions from the target and from the goal starting materials to ensure constraint satisfiability. The search algorithm is guided by a goal-conditioned cost network learned offline from a partially observed hypergraph of valid chemical reactions. We demonstrate the utility of DESP in improving solve rates and reducing the number of search expansions by biasing synthesis planning towards expert goals on multiple new benchmarks. DESP can make use of existing one-step retrosynthesis models, and we anticipate its performance to scale as these one-step model capabilities improve. 38th Conference on Neural Information Processing Systems (NeurIPS 2024).
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2407.06334")
get_code_for_paper("2407.06334")
have("2407.06334")
Connect an agent — have() is free.