{"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/madgen-mass-spec-attends-to-de-novo-molecular","title":"MADGEN: Mass-Spec attends to De Novo Molecular generation","arxiv_id":"2501.01950","date":"2025-01-03","proceeding":null,"authors":["Yinkai Wang","Xiaohui Chen","LiPing Liu","Soha Hassoun"],"abstract":"The annotation (assigning structural chemical identities) of MS/MS spectra remains a significant challenge due to the enormous molecular diversity in biological samples and the limited scope of reference databases. Currently, the vast majority of spectral measurements remain in the \"dark chemical space\" without structural annotations. To improve annotation, we propose MADGEN (Mass-spec Attends to De Novo Molecular GENeration), a scaffold-based method for de novo molecular structure generation guided by mass spectrometry data. MADGEN operates in two stages: scaffold retrieval and spectra-conditioned molecular generation starting with the scaffold. In the first stage, given an MS/MS spectrum, we formulate scaffold retrieval as a ranking problem and employ contrastive learning to align mass spectra with candidate molecular scaffolds. In the second stage, starting from the retrieved scaffold, we employ the MS/MS spectrum to guide an attention-based generative model to generate the final molecule. Our approach constrains the molecular generation search space, reducing its complexity and improving generation accuracy. We evaluate MADGEN on three datasets (NIST23, CANOPUS, and MassSpecGym) and evaluate MADGEN's performance with a predictive scaffold retriever and with an oracle retriever. We demonstrate the effectiveness of using attention to integrate spectral information throughout the generation process to achieve strong results with the oracle retriever.","url_abs":"https://arxiv.org/abs/2501.01950v3","url_pdf":"https://arxiv.org/pdf/2501.01950v3.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":"madgen-mass-spec-attends-to-de-novo-molecular","repo_url":"https://github.com/HassounLab/MADGEN","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"de-novo-molecule-generation-from-ms-ms","task_name":"De novo molecule generation from MS/MS spectrum"},{"task_slug":"de-novo-molecule-generation-from-ms-ms-1","task_name":"De novo molecule generation from MS/MS spectrum (bonus chemical formulae)"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/de-novo-molecule-generation-from-ms-ms-1","task":"De novo molecule generation from MS/MS spectrum (bonus chemical formulae)","dataset":"MassSpecGym","model":"Madgen","rank_in_archive_order":2,"of":9,"metrics":{"Top-1 Accuracy":"1.31","Top-1 MCES":"27.47","Top-1 Tanimoto":"0.20","Top-10 Accuracy":"1.54","Top-10 MCES":"16.84","Top-10 Tanimoto":"0.26"},"uses_additional_data":false},{"leaderboard":"/sota/de-novo-molecule-generation-from-ms-ms-1","task":"De novo molecule generation from MS/MS spectrum (bonus chemical formulae)","dataset":"MassSpecGym","model":"Spec2Mol","rank_in_archive_order":8,"of":9,"metrics":{"Top-1 Accuracy":"0.00","Top-1 MCES":"45.89","Top-1 Tanimoto":"0.19","Top-10 Accuracy":"0","Top-10 MCES":"32.6","Top-10 Tanimoto":"0.28"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2501.01950","atlas_url":"https://app.syntology.ai/?focus=2501.01950","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2501.01950"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":"deterministic:regex_extraction","url":"https://github.com/HassounLab/MADGEN","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":2,"ran":2,"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":"2558efdc87725e9f","entry":"calculate_mces","repo":"hassounlab/madgen","repo_kind":"official","path":"evaluation_generation.py","file_url":"https://github.com/hassounlab/madgen/blob/HEAD/evaluation_generation.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2558efdc87725e9f"}},{"code_sha256_prefix":"acdc95a0e3736a81","entry":"split_dataframe","repo":"hassounlab/madgen","repo_kind":"official","path":"evaluation_generation.py","file_url":"https://github.com/hassounlab/madgen/blob/HEAD/evaluation_generation.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"acdc95a0e3736a81"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}