{"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/eigenfold-generative-protein-structure","title":"EigenFold: Generative Protein Structure Prediction with Diffusion Models","arxiv_id":"2304.02198","date":"2023-04-05","proceeding":null,"authors":["Bowen Jing","Ezra Erives","Peter Pao-Huang","Gabriele Corso","Bonnie Berger","Tommi Jaakkola"],"abstract":"Protein structure prediction has reached revolutionary levels of accuracy on single structures, yet distributional modeling paradigms are needed to capture the conformational ensembles and flexibility that underlie biological function. Towards this goal, we develop EigenFold, a diffusion generative modeling framework for sampling a distribution of structures from a given protein sequence. We define a diffusion process that models the structure as a system of harmonic oscillators and which naturally induces a cascading-resolution generative process along the eigenmodes of the system. On recent CAMEO targets, EigenFold achieves a median TMScore of 0.84, while providing a more comprehensive picture of model uncertainty via the ensemble of sampled structures relative to existing methods. We then assess EigenFold's ability to model and predict conformational heterogeneity for fold-switching proteins and ligand-induced conformational change. Code is available at https://github.com/bjing2016/EigenFold.","url_abs":"https://arxiv.org/abs/2304.02198v1","url_pdf":"https://arxiv.org/pdf/2304.02198v1.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":"eigenfold-generative-protein-structure","repo_url":"https://github.com/bjing2016/eigenfold","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"prediction","task_name":"Prediction"},{"task_slug":"protein-structure-prediction","task_name":"Protein Structure Prediction"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2304.02198","atlas_url":"https://app.syntology.ai/?focus=2304.02198","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2304.02198"}},"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/bjing2016/EigenFold","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bjing2016/eigenfold","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":2},"by_repo_kind":{"official":{"samples":8,"ran":6,"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":"a7494421173fbc41","entry":"get_args_suffix","repo":"bjing2016/EigenFold","repo_kind":"official","path":"make_embeddings.py","file_url":"https://github.com/bjing2016/EigenFold/blob/HEAD/make_embeddings.py","link_basis":"harvester_set","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":"a7494421173fbc41"}},{"code_sha256_prefix":"7c5f8c9622efee41","entry":"get_dense_edges","repo":"bjing2016/EigenFold","repo_kind":"official","path":"utils/dataset.py","file_url":"https://github.com/bjing2016/EigenFold/blob/HEAD/utils/dataset.py","link_basis":"harvester_set","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":"7c5f8c9622efee41"}},{"code_sha256_prefix":"0df91f35231085f8","entry":"get_logger","repo":"bjing2016/EigenFold","repo_kind":"official","path":"utils/logging.py","file_url":"https://github.com/bjing2016/EigenFold/blob/HEAD/utils/logging.py","link_basis":"harvester_set","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":"0df91f35231085f8"}},{"code_sha256_prefix":"bb9ab87b96e532ca","entry":"get_score_fn","repo":"bjing2016/EigenFold","repo_kind":"official","path":"utils/inference.py","file_url":"https://github.com/bjing2016/EigenFold/blob/HEAD/utils/inference.py","link_basis":"harvester_set","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":"bb9ab87b96e532ca"}},{"code_sha256_prefix":"beaa7b5b126512d3","entry":"get_timestep_embedding","repo":"bjing2016/EigenFold","repo_kind":"official","path":"model/utils.py","file_url":"https://github.com/bjing2016/EigenFold/blob/HEAD/model/utils.py","link_basis":"harvester_set","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":"beaa7b5b126512d3"}},{"code_sha256_prefix":"5a6ee1c70d1350c4","entry":"sinusoidal_embedding","repo":"bjing2016/EigenFold","repo_kind":"official","path":"model/utils.py","file_url":"https://github.com/bjing2016/EigenFold/blob/HEAD/model/utils.py","link_basis":"harvester_set","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":"5a6ee1c70d1350c4"}},{"code_sha256_prefix":"b6047193301bb1af","entry":"logp","repo":"bjing2016/EigenFold","repo_kind":"official","path":"diffusion/sampling.py","file_url":"https://github.com/bjing2016/EigenFold/blob/HEAD/diffusion/sampling.py","link_basis":"harvester_set","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":"b6047193301bb1af"}},{"code_sha256_prefix":"e82cac0ee735eef1","entry":"reverse_sample","repo":"bjing2016/EigenFold","repo_kind":"official","path":"diffusion/sampling.py","file_url":"https://github.com/bjing2016/EigenFold/blob/HEAD/diffusion/sampling.py","link_basis":"harvester_set","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":"e82cac0ee735eef1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}