{"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/equipocket-an-e-3-equivariant-geometric-graph","title":"EquiPocket: an E(3)-Equivariant Geometric Graph Neural Network for Ligand Binding Site Prediction","arxiv_id":"2302.12177","date":"2023-02-23","proceeding":null,"authors":["Yang Zhang","Zhewei Wei","Ye Yuan","Chongxuan Li","Wenbing Huang"],"abstract":"Predicting the binding sites of target proteins plays a fundamental role in drug discovery. Most existing deep-learning methods consider a protein as a 3D image by spatially clustering its atoms into voxels and then feed the voxelized protein into a 3D CNN for prediction. However, the CNN-based methods encounter several critical issues: 1) defective in representing irregular protein structures; 2) sensitive to rotations; 3) insufficient to characterize the protein surface; 4) unaware of protein size shift. To address the above issues, this work proposes EquiPocket, an E(3)-equivariant Graph Neural Network (GNN) for binding site prediction, which comprises three modules: the first one to extract local geometric information for each surface atom, the second one to model both the chemical and spatial structure of protein and the last one to capture the geometry of the surface via equivariant message passing over the surface atoms. We further propose a dense attention output layer to alleviate the effect incurred by variable protein size. Extensive experiments on several representative benchmarks demonstrate the superiority of our framework to the state-of-the-art methods.","url_abs":"https://arxiv.org/abs/2302.12177v3","url_pdf":"https://arxiv.org/pdf/2302.12177v3.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":"equipocket-an-e-3-equivariant-geometric-graph","repo_url":"https://github.com/fengyuewuya/equipocket","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"equipocket-an-e-3-equivariant-geometric-graph","repo_url":"https://github.com/ml-jku/vnegnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"drug-discovery","task_name":"Drug Discovery"},{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"}],"methods":[{"method_slug":"3d-cnn","method_name":"3D CNN"},{"method_slug":"graph-neural-network","method_name":"Graph Neural Network"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.12177","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.12177"}},"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":"deterministic:regex_extraction","url":"https://github.com/fengyuewuya/EquiPocket","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fengyuewuya/equipocket","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ml-jku/vnegnn","reach":null}],"summary":{"ran":5,"ran_draft_wrong":3,"unverified":3},"by_repo_kind":{"official":{"samples":6,"ran":5,"repositories":1},"listed":{"samples":5,"ran":3,"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":"ff0fdc7478be4958","entry":"Baseline_Models","repo":"fengyuewuya/equipocket","repo_kind":"official","path":"models/EquiPocket.py","file_url":"https://github.com/fengyuewuya/equipocket/blob/HEAD/models/EquiPocket.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ff0fdc7478be4958"}},{"code_sha256_prefix":"4d6eda2bb3017c97","entry":"embed_atom_chem","repo":"fengyuewuya/equipocket","repo_kind":"official","path":"models/EquiPocket.py","file_url":"https://github.com/fengyuewuya/equipocket/blob/HEAD/models/EquiPocket.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4d6eda2bb3017c97"}},{"code_sha256_prefix":"9c50b31d34f4d0e4","entry":"embed_atom_chem","repo":"ml-jku/vnegnn","repo_kind":"listed","path":"src/models/equipocket/equipocket.py","file_url":"https://github.com/ml-jku/vnegnn/blob/HEAD/src/models/equipocket/equipocket.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9c50b31d34f4d0e4"}},{"code_sha256_prefix":"504f6367c0d0675e","entry":"embed_bond_chem","repo":"fengyuewuya/equipocket","repo_kind":"official","path":"models/EquiPocket.py","file_url":"https://github.com/fengyuewuya/equipocket/blob/HEAD/models/EquiPocket.py","link_basis":"first_harvest_node","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":"504f6367c0d0675e"}},{"code_sha256_prefix":"c4bdd9d067583462","entry":"embed_bond_chem","repo":"ml-jku/vnegnn","repo_kind":"listed","path":"src/models/equipocket/equipocket.py","file_url":"https://github.com/ml-jku/vnegnn/blob/HEAD/src/models/equipocket/equipocket.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c4bdd9d067583462"}},{"code_sha256_prefix":"2cbaa0f8a2777675","entry":"get_cutoff_ratio","repo":"fengyuewuya/EquiPocket","repo_kind":"official","path":"models/EquiPocket.py","file_url":"https://github.com/fengyuewuya/EquiPocket/blob/HEAD/models/EquiPocket.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2cbaa0f8a2777675"}},{"code_sha256_prefix":"a8f5c8b4a0c25fb6","entry":"get_cutoff_ratio","repo":"ml-jku/vnegnn","repo_kind":"listed","path":"src/models/equipocket/equipocket.py","file_url":"https://github.com/ml-jku/vnegnn/blob/HEAD/src/models/equipocket/equipocket.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a8f5c8b4a0c25fb6"}},{"code_sha256_prefix":"054c05890392b77d","entry":"get_surface_feature","repo":"fengyuewuya/EquiPocket","repo_kind":"official","path":"protein_feature.py","file_url":"https://github.com/fengyuewuya/EquiPocket/blob/HEAD/protein_feature.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"054c05890392b77d"}},{"code_sha256_prefix":"e5bd90a5490beb9b","entry":"Baseline_Models","repo":"ml-jku/vnegnn","repo_kind":"listed","path":"src/models/equipocket/equipocket.py","file_url":"https://github.com/ml-jku/vnegnn/blob/HEAD/src/models/equipocket/equipocket.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":"e5bd90a5490beb9b"}},{"code_sha256_prefix":"99ebb0c6e745f5ec","entry":"EquiPocket","repo":"fengyuewuya/equipocket","repo_kind":"official","path":"models/EquiPocket.py","file_url":"https://github.com/fengyuewuya/equipocket/blob/HEAD/models/EquiPocket.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":"99ebb0c6e745f5ec"}},{"code_sha256_prefix":"59f89ee880a6f3a9","entry":"EquiPocket","repo":"ml-jku/vnegnn","repo_kind":"listed","path":"src/models/equipocket/equipocket.py","file_url":"https://github.com/ml-jku/vnegnn/blob/HEAD/src/models/equipocket/equipocket.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":"59f89ee880a6f3a9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}