{"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/score-based-generative-models-for-designing","title":"Score-Based Generative Models for Designing Binding Peptide Backbones","arxiv_id":"2310.07051","date":"2023-10-10","proceeding":null,"authors":["John D Boom","Matthew Greenig","Pietro Sormanni","Pietro Liò"],"abstract":"Score-based generative models (SGMs) have proven to be powerful tools for designing new proteins. Designing proteins that bind a pre-specified target is highly relevant to a range of medical and industrial applications. Despite the flurry of new SGMs in the last year, there has been little systematic exploration of the impact of design choices in SGMs for protein design. Here we present LoopGen, a flexible SGM framework for the design of short binding peptide structures. We apply our framework to design antibody binding loop structures conditional on a target epitope and evaluate a variety of modelling choices in SGM-based protein design. We demonstrate that modelling residue orientations in addition to positions improves not only the quality of the output structures but also their diversity. Additionally, we identify variance schedules that result in significant performance improvements and observe patterns that may motivate the development of better schedules for protein design. Finally, we develop three novel tests to evaluate whether the model generates structures that are appropriately conditioned on an epitope, demonstrating that LoopGen's generated structures are dependent on the structure, sequence, and position of the epitope. Our findings will help guide future development and evaluation of generative models for binding proteins.","url_abs":"https://arxiv.org/abs/2310.07051v3","url_pdf":"https://arxiv.org/pdf/2310.07051v3.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":"score-based-generative-models-for-designing","repo_url":"https://github.com/mgreenig/loopgen","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":"protein-design","task_name":"Protein Design"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.07051","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.07051"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mgreenig/loopgen","reach":{"status":"ok"}}],"summary":{"ran":4,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"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":5,"samples":[{"code_sha256_prefix":"00704e0462c8c10f","entry":"axis_angle_to_matrix","repo":"mgreenig/loopgen","repo_kind":"official","path":"loopgen/model/utils.py","file_url":"https://github.com/mgreenig/loopgen/blob/HEAD/loopgen/model/utils.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":"00704e0462c8c10f"}},{"code_sha256_prefix":"c54d647c051004d3","entry":"get_backbone_angle_features","repo":"mgreenig/loopgen","repo_kind":"official","path":"loopgen/graph.py","file_url":"https://github.com/mgreenig/loopgen/blob/HEAD/loopgen/graph.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":"c54d647c051004d3"}},{"code_sha256_prefix":"134fec1debf496d3","entry":"sinusoidal_encoding","repo":"mgreenig/loopgen","repo_kind":"official","path":"loopgen/model/utils.py","file_url":"https://github.com/mgreenig/loopgen/blob/HEAD/loopgen/model/utils.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":"134fec1debf496d3"}},{"code_sha256_prefix":"53fd147455b22a99","entry":"update_time_step_encoding","repo":"mgreenig/loopgen","repo_kind":"official","path":"loopgen/model/model.py","file_url":"https://github.com/mgreenig/loopgen/blob/HEAD/loopgen/model/model.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":"53fd147455b22a99"}},{"code_sha256_prefix":"a137feb16e408b5e","entry":"get_edge_index_calculator","repo":"mgreenig/loopgen","repo_kind":"official","path":"loopgen/graph.py","file_url":"https://github.com/mgreenig/loopgen/blob/HEAD/loopgen/graph.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":"a137feb16e408b5e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}