{"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/multi-scale-representation-learning-for","title":"Multi-Scale Representation Learning for Protein Fitness Prediction","arxiv_id":"2412.01108","date":"2024-12-02","proceeding":null,"authors":["Zuobai Zhang","Pascal Notin","Yining Huang","Aurélie Lozano","Vijil Chenthamarakshan","Debora Marks","Payel Das","Jian Tang"],"abstract":"Designing novel functional proteins crucially depends on accurately modeling their fitness landscape. Given the limited availability of functional annotations from wet-lab experiments, previous methods have primarily relied on self-supervised models trained on vast, unlabeled protein sequence or structure datasets. While initial protein representation learning studies solely focused on either sequence or structural features, recent hybrid architectures have sought to merge these modalities to harness their respective strengths. However, these sequence-structure models have so far achieved only incremental improvements when compared to the leading sequence-only approaches, highlighting unresolved challenges effectively leveraging these modalities together. Moreover, the function of certain proteins is highly dependent on the granular aspects of their surface topology, which have been overlooked by prior models. To address these limitations, we introduce the Sequence-Structure-Surface Fitness (S3F) model - a novel multimodal representation learning framework that integrates protein features across several scales. Our approach combines sequence representations from a protein language model with Geometric Vector Perceptron networks encoding protein backbone and detailed surface topology. The proposed method achieves state-of-the-art fitness prediction on the ProteinGym benchmark encompassing 217 substitution deep mutational scanning assays, and provides insights into the determinants of protein function. Our code is at https://github.com/DeepGraphLearning/S3F.","url_abs":"https://arxiv.org/abs/2412.01108v1","url_pdf":"https://arxiv.org/pdf/2412.01108v1.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":"multi-scale-representation-learning-for","repo_url":"https://github.com/deepgraphlearning/s3f","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-language-model","task_name":"Protein Language Model"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2412.01108","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2412.01108"}},"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/deepgraphlearning/s3f","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"official":{"samples":9,"ran":1,"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":"38735f4bca7f8220","entry":"tuple_index","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"s3f/gvp_layer.py","file_url":"https://github.com/deepgraphlearning/s3f/blob/HEAD/s3f/gvp_layer.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"38735f4bca7f8220"}},{"code_sha256_prefix":"eab8b6a6ced6d93e","entry":"detect_variables","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"util.py","file_url":"https://github.com/deepgraphlearning/s3f/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":"b4481eda77d0f687","entry":"diagonal_ranges","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"s3f/surface.py","file_url":"https://github.com/deepgraphlearning/s3f/blob/HEAD/s3f/surface.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":"b4481eda77d0f687"}},{"code_sha256_prefix":"30d699e7720e53e8","entry":"get_optimal_window","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"script/evaluate.py","file_url":"https://github.com/deepgraphlearning/s3f/blob/HEAD/script/evaluate.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":"30d699e7720e53e8"}},{"code_sha256_prefix":"70a68fd646c6e4a7","entry":"get_root_logger","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"util.py","file_url":"https://github.com/deepgraphlearning/s3f/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":"28e463a04d36b65d","entry":"randn","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"s3f/gvp_layer.py","file_url":"https://github.com/deepgraphlearning/s3f/blob/HEAD/s3f/gvp_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":"28e463a04d36b65d"}},{"code_sha256_prefix":"3a537d44f15de4a9","entry":"ranges_slices","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"s3f/surface.py","file_url":"https://github.com/deepgraphlearning/s3f/blob/HEAD/s3f/surface.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":"3a537d44f15de4a9"}},{"code_sha256_prefix":"8e7a01ca88c9959f","entry":"rbf","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"s3f/gvp.py","file_url":"https://github.com/deepgraphlearning/s3f/blob/HEAD/s3f/gvp.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":"8e7a01ca88c9959f"}},{"code_sha256_prefix":"4437a10c67d7e3b8","entry":"train_and_validate","repo":"deepgraphlearning/s3f","repo_kind":"official","path":"script/pretrain.py","file_url":"https://github.com/deepgraphlearning/s3f/blob/HEAD/script/pretrain.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":"4437a10c67d7e3b8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}