{"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/chembo-bayesian-optimization-of-small-organic","title":"ChemBO: Bayesian Optimization of Small Organic Molecules with Synthesizable Recommendations","arxiv_id":"1908.01425","date":"2019-08-05","proceeding":null,"authors":["Ksenia Korovina","Sailun Xu","Kirthevasan Kandasamy","Willie Neiswanger","Barnabas Poczos","Jeff Schneider","Eric P. Xing"],"abstract":"In applications such as molecule design or drug discovery, it is desirable to have an algorithm which recommends new candidate molecules based on the results of past tests. These molecules first need to be synthesized and then tested for objective properties. We describe ChemBO, a Bayesian optimization framework for generating and optimizing organic molecules for desired molecular properties. While most existing data-driven methods for this problem do not account for sample efficiency or fail to enforce realistic constraints on synthesizability, our approach explores the synthesis graph in a sample-efficient way and produces synthesizable candidates. We implement ChemBO as a Gaussian process model and explore existing molecular kernels for it. Moreover, we propose a novel optimal-transport based distance and kernel that accounts for graphical information explicitly. In our experiments, we demonstrate the efficacy of the proposed approach on several molecular optimization problems.","url_abs":"https://arxiv.org/abs/1908.01425v2","url_pdf":"https://arxiv.org/pdf/1908.01425v2.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":"chembo-bayesian-optimization-of-small-organic","repo_url":"https://github.com/cyclone923/ChemBo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"bayesian-optimization","task_name":"Bayesian Optimization"},{"task_slug":"drug-discovery","task_name":"Drug Discovery"}],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1908.01425","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1908.01425"}},"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/cyclone923/ChemBo","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":6},"by_repo_kind":{"listed":{"samples":6,"ran":0,"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":"078a8c06e83fe6bb","entry":"get_chembl_prop","repo":"cyclone923/ChemBo","repo_kind":"listed","path":"datasets/loaders.py","file_url":"https://github.com/cyclone923/ChemBo/blob/HEAD/datasets/loaders.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":"078a8c06e83fe6bb"}},{"code_sha256_prefix":"7c53f35294810f40","entry":"get_list_from_file","repo":"cyclone923/ChemBo","repo_kind":"listed","path":"experiments/compute_experiment_stats.py","file_url":"https://github.com/cyclone923/ChemBo/blob/HEAD/experiments/compute_experiment_stats.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":"7c53f35294810f40"}},{"code_sha256_prefix":"ca948737e7b888e1","entry":"get_list_from_file","repo":"cyclone923/ChemBo","repo_kind":"listed","path":"experiments/compute_novelty.py","file_url":"https://github.com/cyclone923/ChemBo/blob/HEAD/experiments/compute_novelty.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":"ca948737e7b888e1"}},{"code_sha256_prefix":"cde312892921c496","entry":"get_smiles_list_from_file","repo":"cyclone923/ChemBo","repo_kind":"listed","path":"experiments/compute_experiment_stats.py","file_url":"https://github.com/cyclone923/ChemBo/blob/HEAD/experiments/compute_experiment_stats.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":"cde312892921c496"}},{"code_sha256_prefix":"16d7fecc2b1fd69c","entry":"get_worker_manager","repo":"cyclone923/ChemBo","repo_kind":"listed","path":"chemist_opt/chemist.py","file_url":"https://github.com/cyclone923/ChemBo/blob/HEAD/chemist_opt/chemist.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":"16d7fecc2b1fd69c"}},{"code_sha256_prefix":"f389610d35206a70","entry":"mol_maximise_acquisition","repo":"cyclone923/ChemBo","repo_kind":"listed","path":"chemist_opt/gp_bandit.py","file_url":"https://github.com/cyclone923/ChemBo/blob/HEAD/chemist_opt/gp_bandit.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":"f389610d35206a70"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}