{"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/full-atom-protein-pocket-design-via-iterative","title":"Full-Atom Protein Pocket Design via Iterative Refinement","arxiv_id":"2310.02553","date":"2023-10-04","proceeding":"NeurIPS 2023 11","authors":["Zaixi Zhang","Zepu Lu","Zhongkai Hao","Marinka Zitnik","Qi Liu"],"abstract":"The design of \\emph{de novo} functional proteins that bind specific ligand molecules is paramount in therapeutics and bio-engineering. A critical yet formidable task in this endeavor is the design of the protein pocket, which is the cavity region of the protein where the ligand binds. Current methods are plagued by inefficient generation, inadequate context modeling of the ligand molecule, and the inability to generate side-chain atoms. Here, we present the Full-Atom Iterative Refinement (FAIR) method, designed to address these challenges by facilitating the co-design of protein pocket sequences, specifically residue types, and their corresponding 3D structures. FAIR operates in two steps, proceeding in a coarse-to-fine manner (transitioning from protein backbone to atoms, including side chains) for a full-atom generation. In each iteration, all residue types and structures are simultaneously updated, a process termed full-shot refinement. In the initial stage, the residue types and backbone coordinates are refined using a hierarchical context encoder, complemented by two structure refinement modules that capture both inter-residue and pocket-ligand interactions. The subsequent stage delves deeper, modeling the side-chain atoms of the pockets and updating residue types to ensure sequence-structure congruence. Concurrently, the structure of the binding ligand is refined across iterations to accommodate its inherent flexibility. Comprehensive experiments show that FAIR surpasses existing methods in designing superior pocket sequences and structures, producing average improvement exceeding 10\\% in AAR and RMSD metrics. FAIR is available at \\url{https://github.com/zaixizhang/FAIR}.","url_abs":"https://arxiv.org/abs/2310.02553v2","url_pdf":"https://arxiv.org/pdf/2310.02553v2.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":"full-atom-protein-pocket-design-via-iterative","repo_url":"https://github.com/zaixizhang/fair","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2310.02553","atlas_url":"https://app.syntology.ai/?focus=2310.02553","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.02553"}},"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":"deterministic:regex_extraction","url":"https://github.com/zaixizhang/FAIR","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zaixizhang/fair","reach":{"status":"ok"}}],"summary":{"ran":11,"ran_draft_wrong":2,"unverified":2},"by_repo_kind":{"official":{"samples":15,"ran":13,"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":15,"samples":[{"code_sha256_prefix":"df31129a23c08c37","entry":"batch_from_data_list","repo":"zaixizhang/FAIR","repo_kind":"official","path":"utils/data.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/utils/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"df31129a23c08c37"}},{"code_sha256_prefix":"b45191024f7c9733","entry":"concat_tensors_to_batch","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/common.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/common.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b45191024f7c9733"}},{"code_sha256_prefix":"27330a1feb3342e2","entry":"featurize","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/data.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"27330a1feb3342e2"}},{"code_sha256_prefix":"6b320ffe0eb4ba30","entry":"get_random_id","repo":"zaixizhang/FAIR","repo_kind":"official","path":"utils/docking.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/utils/docking.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6b320ffe0eb4ba30"}},{"code_sha256_prefix":"319853eb7b37c351","entry":"interpolation_init","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/PD.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/PD.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"319853eb7b37c351"}},{"code_sha256_prefix":"1ec895ec487c7540","entry":"list_filter","repo":"zaixizhang/FAIR","repo_kind":"official","path":"utils/chemutils.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/utils/chemutils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1ec895ec487c7540"}},{"code_sha256_prefix":"8ebca60d602eff21","entry":"load_pdb","repo":"zaixizhang/FAIR","repo_kind":"official","path":"utils/docking.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/utils/docking.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8ebca60d602eff21"}},{"code_sha256_prefix":"f8c753580565a015","entry":"make_batch","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/data.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f8c753580565a015"}},{"code_sha256_prefix":"0aed9a3588f94229","entry":"make_batch_from_seq","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/data.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0aed9a3588f94229"}},{"code_sha256_prefix":"2fea2bfa9e8a5401","entry":"nearest","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/PD.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/PD.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2fea2bfa9e8a5401"}},{"code_sha256_prefix":"2d5b2cf8f31eaa02","entry":"rand_rotate","repo":"zaixizhang/FAIR","repo_kind":"official","path":"utils/chemutils.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/utils/chemutils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2d5b2cf8f31eaa02"}},{"code_sha256_prefix":"c8e6ed243dd0c66b","entry":"split_tensor_by_batch","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/common.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/common.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c8e6ed243dd0c66b"}},{"code_sha256_prefix":"7c93fe70a4d7126a","entry":"split_tensor_to_segments","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/common.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/common.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7c93fe70a4d7126a"}},{"code_sha256_prefix":"e55ae4b7e12cd470","entry":"random_mask","repo":"zaixizhang/FAIR","repo_kind":"official","path":"models/PD.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/models/PD.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e55ae4b7e12cd470"}},{"code_sha256_prefix":"5f7183207256b0a3","entry":"torchify_dict","repo":"zaixizhang/FAIR","repo_kind":"official","path":"utils/data.py","file_url":"https://github.com/zaixizhang/FAIR/blob/HEAD/utils/data.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5f7183207256b0a3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}