{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/amortized-tree-generation-for-bottom-up-1","title":"Amortized Tree Generation for Bottom-up Synthesis Planning and Synthesizable Molecular Design","arxiv_id":"2110.06389","date":"2021-10-12","proceeding":"ICLR 2022 4","authors":["Wenhao Gao","Rocío Mercado","Connor W. Coley"],"abstract":"Molecular design and synthesis planning are two critical steps in the process of molecular discovery that we propose to formulate as a single shared task of conditional synthetic pathway generation. We report an amortized approach to generate synthetic pathways as a Markov decision process conditioned on a target molecular embedding. This approach allows us to conduct synthesis planning in a bottom-up manner and design synthesizable molecules by decoding from optimized conditional codes, demonstrating the potential to solve both problems of design and synthesis simultaneously. The approach leverages neural networks to probabilistically model the synthetic trees, one reaction step at a time, according to reactivity rules encoded in a discrete action space of reaction templates. We train these networks on hundreds of thousands of artificial pathways generated from a pool of purchasable compounds and a list of expert-curated templates. We validate our method with (a) the recovery of molecules using conditional generation, (b) the identification of synthesizable structural analogs, and (c) the optimization of molecular structures given oracle functions relevant to drug discovery.","url_abs":"https://arxiv.org/abs/2110.06389v2","url_pdf":"https://arxiv.org/pdf/2110.06389v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"amortized-tree-generation-for-bottom-up-1","repo_url":"https://github.com/wenhao-gao/SynNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"drug-discovery","task_name":"Drug Discovery"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2110.06389","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.06389"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wenhao-gao/SynNet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"unverified":4},"by_repo_kind":{"official":{"samples":6,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"54795f57f72823c2","entry":"ce_distance","repo":"wenhao-gao/SynNet","repo_kind":"official","path":"src/synnet/encoding/distances.py","file_url":"https://github.com/wenhao-gao/SynNet/blob/HEAD/src/synnet/encoding/distances.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"54795f57f72823c2"}},{"code_sha256_prefix":"c58727efada94825","entry":"cosine_distance","repo":"wenhao-gao/SynNet","repo_kind":"official","path":"src/synnet/encoding/distances.py","file_url":"https://github.com/wenhao-gao/SynNet/blob/HEAD/src/synnet/encoding/distances.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c58727efada94825"}},{"code_sha256_prefix":"dcbbbc1f73b794d8","entry":"find_best_model_ckpt","repo":"wenhao-gao/SynNet","repo_kind":"official","path":"src/synnet/models/common.py","file_url":"https://github.com/wenhao-gao/SynNet/blob/HEAD/src/synnet/models/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dcbbbc1f73b794d8"}},{"code_sha256_prefix":"80e791300f5c0636","entry":"nn_search_list","repo":"wenhao-gao/SynNet","repo_kind":"official","path":"src/synnet/models/mlp.py","file_url":"https://github.com/wenhao-gao/SynNet/blob/HEAD/src/synnet/models/mlp.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"80e791300f5c0636"}},{"code_sha256_prefix":"0b129c7a9fb74eb5","entry":"one_hot_encoder","repo":"wenhao-gao/SynNet","repo_kind":"official","path":"src/synnet/encoding/utils.py","file_url":"https://github.com/wenhao-gao/SynNet/blob/HEAD/src/synnet/encoding/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0b129c7a9fb74eb5"}},{"code_sha256_prefix":"1fb8d7ed7dc21600","entry":"xy_to_dataloader","repo":"wenhao-gao/SynNet","repo_kind":"official","path":"src/synnet/models/common.py","file_url":"https://github.com/wenhao-gao/SynNet/blob/HEAD/src/synnet/models/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1fb8d7ed7dc21600"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}