{"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/diffpack-a-torsional-diffusion-model-for","title":"DiffPack: A Torsional Diffusion Model for Autoregressive Protein Side-Chain Packing","arxiv_id":"2306.01794","date":"2023-06-01","proceeding":"NeurIPS 2023 11","authors":["Yangtian Zhang","Zuobai Zhang","Bozitao Zhong","Sanchit Misra","Jian Tang"],"abstract":"Proteins play a critical role in carrying out biological functions, and their 3D structures are essential in determining their functions. Accurately predicting the conformation of protein side-chains given their backbones is important for applications in protein structure prediction, design and protein-protein interactions. Traditional methods are computationally intensive and have limited accuracy, while existing machine learning methods treat the problem as a regression task and overlook the restrictions imposed by the constant covalent bond lengths and angles. In this work, we present DiffPack, a torsional diffusion model that learns the joint distribution of side-chain torsional angles, the only degrees of freedom in side-chain packing, by diffusing and denoising on the torsional space. To avoid issues arising from simultaneous perturbation of all four torsional angles, we propose autoregressively generating the four torsional angles from $\\chi_1$ to $\\chi_4$ and training diffusion models for each torsional angle. We evaluate the method on several benchmarks for protein side-chain packing and show that our method achieves improvements of $11.9\\%$ and $13.5\\%$ in angle accuracy on CASP13 and CASP14, respectively, with a significantly smaller model size ($60\\times$ fewer parameters). Additionally, we show the effectiveness of our method in enhancing side-chain predictions in the AlphaFold2 model. Code is available at https://github.com/DeepGraphLearning/DiffPack.","url_abs":"https://arxiv.org/abs/2306.01794v2","url_pdf":"https://arxiv.org/pdf/2306.01794v2.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":"diffpack-a-torsional-diffusion-model-for","repo_url":"https://github.com/deepgraphlearning/diffpack","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"protein-structure-prediction","task_name":"Protein Structure Prediction"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.01794","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.01794"}},"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/DeepGraphLearning/DiffPack","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/deepgraphlearning/diffpack","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":11},"by_repo_kind":{"official":{"samples":11,"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":"eab8b6a6ced6d93e","entry":"detect_variables","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"util.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/util.py","link_basis":"plan_row","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":"eab8b6a6ced6d93e"}},{"code_sha256_prefix":"507fc705ebe0f858","entry":"get_chi_mask","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/rotamer.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/rotamer.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":"507fc705ebe0f858"}},{"code_sha256_prefix":"452679e8812f1da1","entry":"get_chis","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/rotamer.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/rotamer.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":"452679e8812f1da1"}},{"code_sha256_prefix":"846c9f3728edafd3","entry":"get_dihedral","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/rotamer.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/rotamer.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":"846c9f3728edafd3"}},{"code_sha256_prefix":"70a68fd646c6e4a7","entry":"get_root_logger","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"util.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/util.py","link_basis":"plan_row","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":"70a68fd646c6e4a7"}},{"code_sha256_prefix":"779851964961dfac","entry":"get_root_logger","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/util.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/util.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":"779851964961dfac"}},{"code_sha256_prefix":"593e40089c2c2510","entry":"get_timestep_embedding","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/layer.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/layer.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":"593e40089c2c2510"}},{"code_sha256_prefix":"35d120ffc51b9534","entry":"grad","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/schedule.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/schedule.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":"35d120ffc51b9534"}},{"code_sha256_prefix":"d6210a4a40bfd88d","entry":"load_config","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/util.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/util.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":"d6210a4a40bfd88d"}},{"code_sha256_prefix":"48fa7b4051a1867a","entry":"p","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/schedule.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/schedule.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":"48fa7b4051a1867a"}},{"code_sha256_prefix":"17e317fb95547359","entry":"sample","repo":"DeepGraphLearning/DiffPack","repo_kind":"official","path":"diffpack/schedule.py","file_url":"https://github.com/DeepGraphLearning/DiffPack/blob/HEAD/diffpack/schedule.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":"17e317fb95547359"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}