{"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/psc-cpi-multi-scale-protein-sequence","title":"PSC-CPI: Multi-Scale Protein Sequence-Structure Contrasting for Efficient and Generalizable Compound-Protein Interaction Prediction","arxiv_id":"2402.08198","date":"2024-02-13","proceeding":null,"authors":["Lirong Wu","Yufei Huang","Cheng Tan","Zhangyang Gao","Bozhen Hu","Haitao Lin","Zicheng Liu","Stan Z. Li"],"abstract":"Compound-Protein Interaction (CPI) prediction aims to predict the pattern and strength of compound-protein interactions for rational drug discovery. Existing deep learning-based methods utilize only the single modality of protein sequences or structures and lack the co-modeling of the joint distribution of the two modalities, which may lead to significant performance drops in complex real-world scenarios due to various factors, e.g., modality missing and domain shifting. More importantly, these methods only model protein sequences and structures at a single fixed scale, neglecting more fine-grained multi-scale information, such as those embedded in key protein fragments. In this paper, we propose a novel multi-scale Protein Sequence-structure Contrasting framework for CPI prediction (PSC-CPI), which captures the dependencies between protein sequences and structures through both intra-modality and cross-modality contrasting. We further apply length-variable protein augmentation to allow contrasting to be performed at different scales, from the amino acid level to the sequence level. Finally, in order to more fairly evaluate the model generalizability, we split the test data into four settings based on whether compounds and proteins have been observed during the training stage. Extensive experiments have shown that PSC-CPI generalizes well in all four settings, particularly in the more challenging ``Unseen-Both\" setting, where neither compounds nor proteins have been observed during training. Furthermore, even when encountering a situation of modality missing, i.e., inference with only single-modality protein data, PSC-CPI still exhibits comparable or even better performance than previous approaches.","url_abs":"https://arxiv.org/abs/2402.08198v1","url_pdf":"https://arxiv.org/pdf/2402.08198v1.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":"psc-cpi-multi-scale-protein-sequence","repo_url":"https://github.com/lirongwu/psc-cpi","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"drug-discovery","task_name":"Drug Discovery"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.08198","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.08198"}},"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/lirongwu/psc-cpi","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/LirongWu/PSC-CPI","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":6},"by_repo_kind":{"official":{"samples":12,"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":"62050b71a90939d5","entry":"load_test_data","repo":"lirongwu/psc-cpi","repo_kind":"official","path":"code/dataset.py","file_url":"https://github.com/lirongwu/psc-cpi/blob/HEAD/code/dataset.py","link_basis":"first_harvest_node","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":"62050b71a90939d5"}},{"code_sha256_prefix":"8c6bf9fb947dc45b","entry":"load_train_data","repo":"lirongwu/psc-cpi","repo_kind":"official","path":"code/dataset.py","file_url":"https://github.com/lirongwu/psc-cpi/blob/HEAD/code/dataset.py","link_basis":"first_harvest_node","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":"8c6bf9fb947dc45b"}},{"code_sha256_prefix":"df364977b3dd312f","entry":"load_val_data","repo":"lirongwu/psc-cpi","repo_kind":"official","path":"code/dataset.py","file_url":"https://github.com/lirongwu/psc-cpi/blob/HEAD/code/dataset.py","link_basis":"first_harvest_node","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":"df364977b3dd312f"}},{"code_sha256_prefix":"a20bfac5c8f895fa","entry":"net_comp_gcn","repo":"LirongWu/PSC-CPI","repo_kind":"official","path":"code/model.py","file_url":"https://github.com/LirongWu/PSC-CPI/blob/HEAD/code/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a20bfac5c8f895fa"}},{"code_sha256_prefix":"d013c2038d58b73d","entry":"net_prot_gat","repo":"LirongWu/PSC-CPI","repo_kind":"official","path":"code/model.py","file_url":"https://github.com/LirongWu/PSC-CPI/blob/HEAD/code/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d013c2038d58b73d"}},{"code_sha256_prefix":"a9f813a5b779bf7b","entry":"net_prot_gcn","repo":"LirongWu/PSC-CPI","repo_kind":"official","path":"code/model.py","file_url":"https://github.com/LirongWu/PSC-CPI/blob/HEAD/code/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a9f813a5b779bf7b"}},{"code_sha256_prefix":"dea0d167bbce280d","entry":"ProteinEmbed_Model","repo":"LirongWu/PSC-CPI","repo_kind":"official","path":"code/model.py","file_url":"https://github.com/LirongWu/PSC-CPI/blob/HEAD/code/model.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":"dea0d167bbce280d"}},{"code_sha256_prefix":"772e096dc3151918","entry":"cal_affinity_torch","repo":"lirongwu/psc-cpi","repo_kind":"official","path":"code/utils.py","file_url":"https://github.com/lirongwu/psc-cpi/blob/HEAD/code/utils.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":"772e096dc3151918"}},{"code_sha256_prefix":"cc2cef35a651c681","entry":"cal_interaction_torch","repo":"lirongwu/psc-cpi","repo_kind":"official","path":"code/utils.py","file_url":"https://github.com/lirongwu/psc-cpi/blob/HEAD/code/utils.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":"cc2cef35a651c681"}},{"code_sha256_prefix":"129b91ead96554d8","entry":"crossInteraction","repo":"LirongWu/PSC-CPI","repo_kind":"official","path":"code/model.py","file_url":"https://github.com/LirongWu/PSC-CPI/blob/HEAD/code/model.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":"129b91ead96554d8"}},{"code_sha256_prefix":"4208189d0b4f5a46","entry":"get_root_logger","repo":"lirongwu/psc-cpi","repo_kind":"official","path":"code/utils.py","file_url":"https://github.com/lirongwu/psc-cpi/blob/HEAD/code/utils.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":"4208189d0b4f5a46"}},{"code_sha256_prefix":"38f5c9dd907c04bc","entry":"net_prot_sage","repo":"LirongWu/PSC-CPI","repo_kind":"official","path":"code/model.py","file_url":"https://github.com/LirongWu/PSC-CPI/blob/HEAD/code/model.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":"38f5c9dd907c04bc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}