{"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/learning-molecular-representation-in-a-cell","title":"Learning Molecular Representation in a Cell","arxiv_id":"2406.12056","date":"2024-06-17","proceeding":null,"authors":["Gang Liu","Srijit Seal","John Arevalo","Zhenwen Liang","Anne E. Carpenter","Meng Jiang","Shantanu Singh"],"abstract":"Predicting drug efficacy and safety in vivo requires information on biological responses (e.g., cell morphology and gene expression) to small molecule perturbations. However, current molecular representation learning methods do not provide a comprehensive view of cell states under these perturbations and struggle to remove noise, hindering model generalization. We introduce the Information Alignment (InfoAlign) approach to learn molecular representations through the information bottleneck method in cells. We integrate molecules and cellular response data as nodes into a context graph, connecting them with weighted edges based on chemical, biological, and computational criteria. For each molecule in a training batch, InfoAlign optimizes the encoder's latent representation with a minimality objective to discard redundant structural information. A sufficiency objective decodes the representation to align with different feature spaces from the molecule's neighborhood in the context graph. We demonstrate that the proposed sufficiency objective for alignment is tighter than existing encoder-based contrastive methods. Empirically, we validate representations from InfoAlign in two downstream applications: molecular property prediction against up to 27 baseline methods across four datasets, plus zero-shot molecule-morphology matching.","url_abs":"https://arxiv.org/abs/2406.12056v3","url_pdf":"https://arxiv.org/pdf/2406.12056v3.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":"learning-molecular-representation-in-a-cell","repo_url":"https://github.com/liugangcode/InfoAlign","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"molecular-property-prediction","task_name":"Molecular Property Prediction"},{"task_slug":"property-prediction","task_name":"Property Prediction"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"molecular-representation","task_name":"molecular representation"}],"methods":[{"method_slug":"align","method_name":"ALIGN"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.12056","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.12056"}},"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/liugangcode/InfoAlign","reach":{"status":"ok"}}],"summary":{"ran":4,"unverified":2},"by_repo_kind":{"official":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"85fd85b51cd44d73","entry":"eval_func","repo":"liugangcode/InfoAlign","repo_kind":"official","path":"utils/misc.py","file_url":"https://github.com/liugangcode/InfoAlign/blob/HEAD/utils/misc.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":"85fd85b51cd44d73"}},{"code_sha256_prefix":"6562b7d3dc508176","entry":"from_networkx","repo":"liugangcode/InfoAlign","repo_kind":"official","path":"dataset/context_graph.py","file_url":"https://github.com/liugangcode/InfoAlign/blob/HEAD/dataset/context_graph.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":"6562b7d3dc508176"}},{"code_sha256_prefix":"a1da5ba1f0820e07","entry":"log_base","repo":"liugangcode/InfoAlign","repo_kind":"official","path":"utils/misc.py","file_url":"https://github.com/liugangcode/InfoAlign/blob/HEAD/utils/misc.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":"a1da5ba1f0820e07"}},{"code_sha256_prefix":"3fb1eda357de9534","entry":"validate","repo":"liugangcode/InfoAlign","repo_kind":"official","path":"utils/misc.py","file_url":"https://github.com/liugangcode/InfoAlign/blob/HEAD/utils/misc.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":"3fb1eda357de9534"}},{"code_sha256_prefix":"c2824ffd163b5c77","entry":"get_data","repo":"liugangcode/InfoAlign","repo_kind":"official","path":"dataset/create_datasets.py","file_url":"https://github.com/liugangcode/InfoAlign/blob/HEAD/dataset/create_datasets.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":"c2824ffd163b5c77"}},{"code_sha256_prefix":"9508954972e75890","entry":"load_arguments_from_yaml","repo":"liugangcode/InfoAlign","repo_kind":"official","path":"configures/arguments.py","file_url":"https://github.com/liugangcode/InfoAlign/blob/HEAD/configures/arguments.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":"9508954972e75890"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}