{"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/text-guided-molecule-generation-with","title":"Text-Guided Molecule Generation with Diffusion Language Model","arxiv_id":"2402.13040","date":"2024-02-20","proceeding":null,"authors":["Haisong Gong","Qiang Liu","Shu Wu","Liang Wang"],"abstract":"Text-guided molecule generation is a task where molecules are generated to match specific textual descriptions. Recently, most existing SMILES-based molecule generation methods rely on an autoregressive architecture. In this work, we propose the Text-Guided Molecule Generation with Diffusion Language Model (TGM-DLM), a novel approach that leverages diffusion models to address the limitations of autoregressive methods. TGM-DLM updates token embeddings within the SMILES string collectively and iteratively, using a two-phase diffusion generation process. The first phase optimizes embeddings from random noise, guided by the text description, while the second phase corrects invalid SMILES strings to form valid molecular representations. We demonstrate that TGM-DLM outperforms MolT5-Base, an autoregressive model, without the need for additional data resources. Our findings underscore the remarkable effectiveness of TGM-DLM in generating coherent and precise molecules with specific properties, opening new avenues in drug discovery and related scientific domains. Code will be released at: https://github.com/Deno-V/tgm-dlm.","url_abs":"https://arxiv.org/abs/2402.13040v1","url_pdf":"https://arxiv.org/pdf/2402.13040v1.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":"text-guided-molecule-generation-with","repo_url":"https://github.com/deno-v/tgm-dlm","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok"}}],"tasks":[{"task_slug":"drug-discovery","task_name":"Drug Discovery"},{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"text-based-de-novo-molecule-generation","task_name":"Text-based de novo Molecule Generation"},{"task_slug":"model","task_name":"model"},{"task_slug":null,"task_name":"valid"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/text-based-de-novo-molecule-generation-on","task":"Text-based de novo Molecule Generation","dataset":"ChEBI-20","model":"TGM-DLM w/o corr","rank_in_archive_order":8,"of":20,"metrics":{"BLEU":"82.8","Exact Match":"24.2","Frechet ChemNet Distance (FCD)":"0.89","Levenshtein":"16.897","MACCS FTS":"87.4","Morgan FTS":"72.2","Parameter Count":"180000000","RDK FTS":"77.1","Text2Mol":"58.9","Validity":"78.9"},"uses_additional_data":false},{"leaderboard":"/sota/text-based-de-novo-molecule-generation-on","task":"Text-based de novo Molecule Generation","dataset":"ChEBI-20","model":"TGM-DLM","rank_in_archive_order":9,"of":20,"metrics":{"BLEU":"82.6","Exact Match":"24.2","Frechet ChemNet Distance (FCD)":"0.77","Levenshtein":"17.003","MACCS FTS":"85.4","Morgan FTS":"68.8","Parameter Count":"180000000","RDK FTS":"73.9","Text2Mol":"58.1","Validity":"87.1"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.13040","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.13040"}},"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/deno-v/tgm-dlm","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/Deno-V/tgm-dlm","reach":{"status":"ok"}}],"summary":{"ran":8,"ran_draft_wrong":5,"ran_honours":1,"unverified":7},"by_repo_kind":{"official":{"samples":21,"ran":14,"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":21,"samples":[{"code_sha256_prefix":"b628485b4544176e","entry":"BertSelfOutput","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b628485b4544176e"}},{"code_sha256_prefix":"14e6a43c9ced2404","entry":"Upsample","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.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":"14e6a43c9ced2404"}},{"code_sha256_prefix":"cfd76fd0d89574a4","entry":"approx_standard_normal_cdf","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/losses.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/losses.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cfd76fd0d89574a4"}},{"code_sha256_prefix":"cd33283d615fb3d7","entry":"discretized_gaussian_log_likelihood","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/losses.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/losses.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cd33283d615fb3d7"}},{"code_sha256_prefix":"ffe4fa9032a930ff","entry":"find_pruneable_heads_and_indices","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ffe4fa9032a930ff"}},{"code_sha256_prefix":"bd70407415c5ed19","entry":"generate_samples","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/control_gen/baseline_control.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/control_gen/baseline_control.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":"bd70407415c5ed19"}},{"code_sha256_prefix":"8347681d84656d7d","entry":"layer_norm","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8347681d84656d7d"}},{"code_sha256_prefix":"ee1169ece28e0d9d","entry":"levenshteinDistance","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/control_gen/eval_control.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/control_gen/eval_control.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":"ee1169ece28e0d9d"}},{"code_sha256_prefix":"6690b1379e201b37","entry":"load_results_simple","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/anlg_infill/mbr_eval.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/anlg_infill/mbr_eval.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":"6690b1379e201b37"}},{"code_sha256_prefix":"23e6db3ffd64425a","entry":"mbr","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/anlg_infill/mbr_eval.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/anlg_infill/mbr_eval.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":"23e6db3ffd64425a"}},{"code_sha256_prefix":"cf2798b666b231ca","entry":"normal_kl","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/losses.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/losses.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cf2798b666b231ca"}},{"code_sha256_prefix":"63bf3ad9c297ab92","entry":"prune_linear_layer","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"63bf3ad9c297ab92"}},{"code_sha256_prefix":"8fc7161a00ae39b0","entry":"remove_leaves","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/control_gen/baseline_control.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/control_gen/baseline_control.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":"8fc7161a00ae39b0"}},{"code_sha256_prefix":"0fa17cc15d81b5a7","entry":"trans_nd","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.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":"0fa17cc15d81b5a7"}},{"code_sha256_prefix":"95d638062692e25c","entry":"BertAttention","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.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":"95d638062692e25c"}},{"code_sha256_prefix":"c52c56e6b503ff9a","entry":"BertSelfAttention","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.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":"c52c56e6b503ff9a"}},{"code_sha256_prefix":"6217144fde18c480","entry":"Downsample","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.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":"6217144fde18c480"}},{"code_sha256_prefix":"4aabdb4f1e27436a","entry":"TransUNetModel","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.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":"4aabdb4f1e27436a"}},{"code_sha256_prefix":"85f117cd2c476a03","entry":"TransformerBlock","repo":"Deno-V/tgm-dlm","repo_kind":"official","path":"improved-diffusion/improved_diffusion/transformer_model.py","file_url":"https://github.com/Deno-V/tgm-dlm/blob/HEAD/improved-diffusion/improved_diffusion/transformer_model.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":"85f117cd2c476a03"}},{"code_sha256_prefix":"cc6bf6f3b1388227","entry":"generate_samples_from_scratch","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"improved-diffusion/control_gen/baseline_control.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/improved-diffusion/control_gen/baseline_control.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":"cc6bf6f3b1388227"}},{"code_sha256_prefix":"9f87c93b00243392","entry":"get_smis","repo":"deno-v/tgm-dlm","repo_kind":"official","path":"ev.py","file_url":"https://github.com/deno-v/tgm-dlm/blob/HEAD/ev.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":"9f87c93b00243392"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}