{"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/spatial-graph-attention-and-curiosity-driven","title":"Spatial Graph Attention and Curiosity-driven Policy for Antiviral Drug Discovery","arxiv_id":"2106.02190","date":"2021-06-04","proceeding":"ICLR 2022 4","authors":["Yulun Wu","Mikaela Cashman","Nicholas Choma","Érica T. Prates","Verónica G. Melesse Vergara","Manesh Shah","Andrew Chen","Austin Clyde","Thomas S. Brettin","Wibe A. de Jong","Neeraj Kumar","Martha S. Head","Rick L. Stevens","Peter Nugent","Daniel A. Jacobson","James B. Brown"],"abstract":"We developed Distilled Graph Attention Policy Network (DGAPN), a reinforcement learning model to generate novel graph-structured chemical representations that optimize user-defined objectives by efficiently navigating a physically constrained domain. The framework is examined on the task of generating molecules that are designed to bind, noncovalently, to functional sites of SARS-CoV-2 proteins. We present a spatial Graph Attention (sGAT) mechanism that leverages self-attention over both node and edge attributes as well as encoding the spatial structure -- this capability is of considerable interest in synthetic biology and drug discovery. An attentional policy network is introduced to learn the decision rules for a dynamic, fragment-based chemical environment, and state-of-the-art policy gradient techniques are employed to train the network with stability. Exploration is driven by the stochasticity of the action space design and the innovation reward bonuses learned and proposed by random network distillation. In experiments, our framework achieved outstanding results compared to state-of-the-art algorithms, while reducing the complexity of paths to chemical synthesis.","url_abs":"https://arxiv.org/abs/2106.02190v6","url_pdf":"https://arxiv.org/pdf/2106.02190v6.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":"spatial-graph-attention-and-curiosity-driven","repo_url":"https://github.com/njchoma/DGAPN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"spatial-graph-attention-and-curiosity-driven","repo_url":"https://github.com/yulun-rayn/dgapn","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"spatial-graph-attention-and-curiosity-driven","repo_url":"https://github.com/yulun-rayn/SGAnCP4ADD","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"spatial-graph-attention-and-curiosity-driven","repo_url":"https://github.com/njchoma/exaLearnMol","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"drug-discovery","task_name":"Drug Discovery"},{"task_slug":"graph-attention","task_name":"Graph Attention"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2106.02190","atlas_url":"https://app.syntology.ai/?focus=2106.02190","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.02190"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/yulun-rayn/dgapn","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yulun-rayn/SGAnCP4ADD","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/njchoma/DGAPN","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/njchoma/exaLearnMol","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":14},"by_repo_kind":{"official":{"samples":14,"ran":0,"repositories":2}},"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":"4e566ed17e45c6b6","entry":"batched_expand","repo":"njchoma/DGAPN","repo_kind":"official","path":"src/dgapn/gapn_policy.py","file_url":"https://github.com/njchoma/DGAPN/blob/HEAD/src/dgapn/gapn_policy.py","link_basis":"first_harvest_node","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":"4e566ed17e45c6b6"}},{"code_sha256_prefix":"9e6703e2b65561b1","entry":"batched_expand","repo":"yulun-rayn/dgapn","repo_kind":"official","path":"dgapn/model/gapn_policy.py","file_url":"https://github.com/yulun-rayn/dgapn/blob/HEAD/dgapn/model/gapn_policy.py","link_basis":"first_harvest_node","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":"9e6703e2b65561b1"}},{"code_sha256_prefix":"1a487a9d169c71fa","entry":"batched_sample","repo":"njchoma/DGAPN","repo_kind":"official","path":"src/dgapn/gapn_policy.py","file_url":"https://github.com/njchoma/DGAPN/blob/HEAD/src/dgapn/gapn_policy.py","link_basis":"first_harvest_node","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":"1a487a9d169c71fa"}},{"code_sha256_prefix":"c5018328336db254","entry":"batched_sample","repo":"yulun-rayn/dgapn","repo_kind":"official","path":"dgapn/model/gapn_policy.py","file_url":"https://github.com/yulun-rayn/dgapn/blob/HEAD/dgapn/model/gapn_policy.py","link_basis":"first_harvest_node","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":"c5018328336db254"}},{"code_sha256_prefix":"feafdd257791f6d0","entry":"batched_softmax","repo":"njchoma/DGAPN","repo_kind":"official","path":"src/dgapn/gapn_policy.py","file_url":"https://github.com/njchoma/DGAPN/blob/HEAD/src/dgapn/gapn_policy.py","link_basis":"first_harvest_node","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":"feafdd257791f6d0"}},{"code_sha256_prefix":"1f76293ee65bdb43","entry":"batched_softmax","repo":"yulun-rayn/dgapn","repo_kind":"official","path":"dgapn/model/gapn_policy.py","file_url":"https://github.com/yulun-rayn/dgapn/blob/HEAD/dgapn/model/gapn_policy.py","link_basis":"first_harvest_node","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":"1f76293ee65bdb43"}},{"code_sha256_prefix":"4291ed1c781509d8","entry":"get_largest_ring_size","repo":"yulun-rayn/dgapn","repo_kind":"official","path":"dgapn/reward/logp/get_score.py","file_url":"https://github.com/yulun-rayn/dgapn/blob/HEAD/dgapn/reward/logp/get_score.py","link_basis":"first_harvest_node","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":"4291ed1c781509d8"}},{"code_sha256_prefix":"afb1971c85947f64","entry":"get_main_reward","repo":"njchoma/DGAPN","repo_kind":"official","path":"src/reward/get_main_reward.py","file_url":"https://github.com/njchoma/DGAPN/blob/HEAD/src/reward/get_main_reward.py","link_basis":"first_harvest_node","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":"afb1971c85947f64"}},{"code_sha256_prefix":"d7caa82df22437b8","entry":"get_reward","repo":"yulun-rayn/dgapn","repo_kind":"official","path":"dgapn/reward/get_reward.py","file_url":"https://github.com/yulun-rayn/dgapn/blob/HEAD/dgapn/reward/get_reward.py","link_basis":"first_harvest_node","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":"d7caa82df22437b8"}},{"code_sha256_prefix":"f050755aee6bf591","entry":"main","repo":"njchoma/DGAPN","repo_kind":"official","path":"src/dataset/preprocess.py","file_url":"https://github.com/njchoma/DGAPN/blob/HEAD/src/dataset/preprocess.py","link_basis":"first_harvest_node","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":"f050755aee6bf591"}},{"code_sha256_prefix":"cf327c9b704f12fd","entry":"read_2col","repo":"njchoma/DGAPN","repo_kind":"official","path":"src/dataset/preprocess.py","file_url":"https://github.com/njchoma/DGAPN/blob/HEAD/src/dataset/preprocess.py","link_basis":"first_harvest_node","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":"cf327c9b704f12fd"}},{"code_sha256_prefix":"ff8edfb59d13caa6","entry":"read_4col","repo":"njchoma/DGAPN","repo_kind":"official","path":"src/dataset/preprocess.py","file_url":"https://github.com/njchoma/DGAPN/blob/HEAD/src/dataset/preprocess.py","link_basis":"first_harvest_node","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":"ff8edfb59d13caa6"}},{"code_sha256_prefix":"c38a474680f6cdd6","entry":"read_data","repo":"yulun-rayn/dgapn","repo_kind":"official","path":"dgapn/dataset/preprocess.py","file_url":"https://github.com/yulun-rayn/dgapn/blob/HEAD/dgapn/dataset/preprocess.py","link_basis":"first_harvest_node","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":"c38a474680f6cdd6"}},{"code_sha256_prefix":"2a4bfb02209e2e2f","entry":"unpack_dataset","repo":"njchoma/DGAPN","repo_kind":"official","path":"src/dataset/get_dataset.py","file_url":"https://github.com/njchoma/DGAPN/blob/HEAD/src/dataset/get_dataset.py","link_basis":"first_harvest_node","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":"2a4bfb02209e2e2f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}