{"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/evaluating-protein-transfer-learning-with","title":"Evaluating Protein Transfer Learning with TAPE","arxiv_id":"1906.08230","date":"2019-06-19","proceeding":"NeurIPS 2019 12","authors":["Roshan Rao","Nicholas Bhattacharya","Neil Thomas","Yan Duan","Xi Chen","John Canny","Pieter Abbeel","Yun S. Song"],"abstract":"Protein modeling is an increasingly popular area of machine learning research. Semi-supervised learning has emerged as an important paradigm in protein modeling due to the high cost of acquiring supervised protein labels, but the current literature is fragmented when it comes to datasets and standardized evaluation techniques. To facilitate progress in this field, we introduce the Tasks Assessing Protein Embeddings (TAPE), a set of five biologically relevant semi-supervised learning tasks spread across different domains of protein biology. We curate tasks into specific training, validation, and test splits to ensure that each task tests biologically relevant generalization that transfers to real-life scenarios. We benchmark a range of approaches to semi-supervised protein representation learning, which span recent work as well as canonical sequence learning techniques. We find that self-supervised pretraining is helpful for almost all models on all tasks, more than doubling performance in some cases. Despite this increase, in several cases features learned by self-supervised pretraining still lag behind features extracted by state-of-the-art non-neural techniques. This gap in performance suggests a huge opportunity for innovative architecture design and improved modeling paradigms that better capture the signal in biological sequences. TAPE will help the machine learning community focus effort on scientifically relevant problems. Toward this end, all data and code used to run these experiments are available at https://github.com/songlab-cal/tape.","url_abs":"https://arxiv.org/abs/1906.08230v1","url_pdf":"https://arxiv.org/pdf/1906.08230v1.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":"evaluating-protein-transfer-learning-with","repo_url":"https://github.com/songlab-cal/tape","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"evaluating-protein-transfer-learning-with","repo_url":"https://github.com/THUDM/ProteinLM","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"evaluating-protein-transfer-learning-with","repo_url":"https://github.com/googleinterns/protein-embedding-retrieval","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"evaluating-protein-transfer-learning-with","repo_url":"https://github.com/songlab-cal/tape-neurips2019","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"evaluating-protein-transfer-learning-with","repo_url":"https://github.com/statisticalbiotechnology/tape","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1906.08230","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1906.08230"}},"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/googleinterns/protein-embedding-retrieval","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/songlab-cal/tape","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/songlab-cal/tape-neurips2019","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/THUDM/ProteinLM","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/statisticalbiotechnology/tape","reach":null}],"summary":{"ran_draft_wrong":4,"unverified":14},"by_repo_kind":{"official":{"samples":6,"ran":2,"repositories":1},"listed":{"samples":12,"ran":2,"repositories":3}},"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":"03beff488122d034","entry":"filter_text","repo":"songlab-cal/tape-neurips2019","repo_kind":"listed","path":"tape/__main__.py","file_url":"https://github.com/songlab-cal/tape-neurips2019/blob/HEAD/tape/__main__.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"03beff488122d034"}},{"code_sha256_prefix":"d30d6c3098df2c42","entry":"prune_linear_layer","repo":"songlab-cal/tape","repo_kind":"official","path":"tape/models/modeling_utils.py","file_url":"https://github.com/songlab-cal/tape/blob/HEAD/tape/models/modeling_utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d30d6c3098df2c42"}},{"code_sha256_prefix":"ae2d936644fd0314","entry":"pythonify","repo":"statisticalbiotechnology/tape","repo_kind":"listed","path":"scripts/tfrecord_to_lmdb.py","file_url":"https://github.com/statisticalbiotechnology/tape/blob/HEAD/scripts/tfrecord_to_lmdb.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"ae2d936644fd0314"}},{"code_sha256_prefix":"5eff22fa0a651276","entry":"url_to_filename","repo":"songlab-cal/tape","repo_kind":"official","path":"tape/models/file_utils.py","file_url":"https://github.com/songlab-cal/tape/blob/HEAD/tape/models/file_utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5eff22fa0a651276"}},{"code_sha256_prefix":"fcba2b0e1052ebf4","entry":"accuracy","repo":"songlab-cal/tape","repo_kind":"official","path":"tape/models/modeling_utils.py","file_url":"https://github.com/songlab-cal/tape/blob/HEAD/tape/models/modeling_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"fcba2b0e1052ebf4"}},{"code_sha256_prefix":"e90485a45ea78dba","entry":"create_data_iterator","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"contextual_lenses/train_utils.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/contextual_lenses/train_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e90485a45ea78dba"}},{"code_sha256_prefix":"4884f9783a5e94c1","entry":"create_params","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"generate_params.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/generate_params.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4884f9783a5e94c1"}},{"code_sha256_prefix":"af86e14bcdd0eee9","entry":"cross_entropy_loss","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"contextual_lenses/loss_fns.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/contextual_lenses/loss_fns.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"af86e14bcdd0eee9"}},{"code_sha256_prefix":"5f49c78bf7533113","entry":"gelu","repo":"songlab-cal/tape","repo_kind":"official","path":"tape/models/modeling_utils.py","file_url":"https://github.com/songlab-cal/tape/blob/HEAD/tape/models/modeling_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5f49c78bf7533113"}},{"code_sha256_prefix":"a646bd4aa40ada48","entry":"get_etag","repo":"songlab-cal/tape","repo_kind":"official","path":"tape/models/file_utils.py","file_url":"https://github.com/songlab-cal/tape/blob/HEAD/tape/models/file_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"a646bd4aa40ada48"}},{"code_sha256_prefix":"e572cb38b1df143b","entry":"max_pool","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"contextual_lenses/contextual_lenses.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/contextual_lenses/contextual_lenses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e572cb38b1df143b"}},{"code_sha256_prefix":"3ac8c389a631fc4b","entry":"mean_pool","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"contextual_lenses/contextual_lenses.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/contextual_lenses/contextual_lenses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3ac8c389a631fc4b"}},{"code_sha256_prefix":"c7f103c56b719278","entry":"mod_family_accession","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"contextual_lenses/pfam_utils.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/contextual_lenses/pfam_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c7f103c56b719278"}},{"code_sha256_prefix":"eafa5a8ead83133c","entry":"mse_loss","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"contextual_lenses/loss_fns.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/contextual_lenses/loss_fns.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"eafa5a8ead83133c"}},{"code_sha256_prefix":"b10d1d06cd24b15f","entry":"one_hot_encoder","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"contextual_lenses/encoders.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/contextual_lenses/encoders.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b10d1d06cd24b15f"}},{"code_sha256_prefix":"8062e9b3b5efa7dd","entry":"pad_sequences","repo":"songlab-cal/tape","repo_kind":"official","path":"tape/datasets.py","file_url":"https://github.com/songlab-cal/tape/blob/HEAD/tape/datasets.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"8062e9b3b5efa7dd"}},{"code_sha256_prefix":"72ec4c60f133c8a3","entry":"path_inclusion_filter_fn","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"contextual_lenses/train_utils.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/contextual_lenses/train_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"72ec4c60f133c8a3"}},{"code_sha256_prefix":"d3eb70af2cd44569","entry":"set_model_parameters","repo":"googleinterns/protein-embedding-retrieval","repo_kind":"listed","path":"pfam_experiment.py","file_url":"https://github.com/googleinterns/protein-embedding-retrieval/blob/HEAD/pfam_experiment.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d3eb70af2cd44569"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}