{"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/graph-convolutional-policy-network-for-goal","title":"Graph Convolutional Policy Network for Goal-Directed Molecular Graph Generation","arxiv_id":"1806.02473","date":"2018-06-07","proceeding":"NeurIPS 2018 12","authors":["Jiaxuan You","Bowen Liu","Rex Ying","Vijay Pande","Jure Leskovec"],"abstract":"Generating novel graph structures that optimize given objectives while\nobeying some given underlying rules is fundamental for chemistry, biology and\nsocial science research. This is especially important in the task of molecular\ngraph generation, whose goal is to discover novel molecules with desired\nproperties such as drug-likeness and synthetic accessibility, while obeying\nphysical laws such as chemical valency. However, designing models to find\nmolecules that optimize desired properties while incorporating highly complex\nand non-differentiable rules remains to be a challenging task. Here we propose\nGraph Convolutional Policy Network (GCPN), a general graph convolutional\nnetwork based model for goal-directed graph generation through reinforcement\nlearning. The model is trained to optimize domain-specific rewards and\nadversarial loss through policy gradient, and acts in an environment that\nincorporates domain-specific rules. Experimental results show that GCPN can\nachieve 61% improvement on chemical property optimization over state-of-the-art\nbaselines while resembling known molecules, and achieve 184% improvement on the\nconstrained property optimization task.","url_abs":"http://arxiv.org/abs/1806.02473v3","url_pdf":"http://arxiv.org/pdf/1806.02473v3.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":"graph-convolutional-policy-network-for-goal","repo_url":"https://github.com/bowenliu16/rl_graph_generation","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"graph-convolutional-policy-network-for-goal","repo_url":"https://github.com/dbkgroup/prop_gen","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"graph-generation","task_name":"Graph Generation"},{"task_slug":"molecular-graph-generation","task_name":"Molecular Graph Generation"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1806.02473","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1806.02473"}},"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/dbkgroup/prop_gen","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bowenliu16/rl_graph_generation","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"ran":1,"unverified":12},"by_repo_kind":{"official":{"samples":13,"ran":1,"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":"98948fae5be7e92e","entry":"profile","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/logger.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/logger.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"98948fae5be7e92e"}},{"code_sha256_prefix":"0f6bbf3f67ac6f9c","entry":"absolute_scope_name","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/deepq/build_graph.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/deepq/build_graph.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"0f6bbf3f67ac6f9c"}},{"code_sha256_prefix":"f61361cc85373aec","entry":"caveman_special","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"gym-molecule/gym_molecule/envs/molecule.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/gym-molecule/gym_molecule/envs/molecule.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"f61361cc85373aec"}},{"code_sha256_prefix":"041445ccac645fab","entry":"default_param_noise_filter","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/deepq/build_graph.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/deepq/build_graph.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"041445ccac645fab"}},{"code_sha256_prefix":"4292cd3970e0a394","entry":"load_conditional","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"gym-molecule/gym_molecule/envs/molecule.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/gym-molecule/gym_molecule/envs/molecule.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"4292cd3970e0a394"}},{"code_sha256_prefix":"0df79be4c30a901d","entry":"load_dataset","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"gym-molecule/gym_molecule/dataset/dataset_utils.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/gym-molecule/gym_molecule/dataset/dataset_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"0df79be4c30a901d"}},{"code_sha256_prefix":"5eee517402b390d5","entry":"make_output_format","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/logger.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/logger.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5eee517402b390d5"}},{"code_sha256_prefix":"ee21db72b70a21df","entry":"mol_to_nx","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"gym-molecule/gym_molecule/dataset/dataset_utils.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/gym-molecule/gym_molecule/dataset/dataset_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"ee21db72b70a21df"}},{"code_sha256_prefix":"88ef5a17fc986d9a","entry":"read_json","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/logger.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/logger.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"88ef5a17fc986d9a"}},{"code_sha256_prefix":"895ca4b776fb6d6d","entry":"rolling_window","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/results_plotter.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/results_plotter.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"895ca4b776fb6d6d"}},{"code_sha256_prefix":"476db850211b5da9","entry":"scope_vars","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/deepq/build_graph.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/deepq/build_graph.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"476db850211b5da9"}},{"code_sha256_prefix":"8c5b970d902942f8","entry":"ts2xy","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/results_plotter.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/results_plotter.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"8c5b970d902942f8"}},{"code_sha256_prefix":"43741b9339bd80da","entry":"window_func","repo":"bowenliu16/rl_graph_generation","repo_kind":"official","path":"rl-baselines/baselines/results_plotter.py","file_url":"https://github.com/bowenliu16/rl_graph_generation/blob/HEAD/rl-baselines/baselines/results_plotter.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"43741b9339bd80da"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}