{"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/inverse-molecular-design-with-multi","title":"Graph Diffusion Transformers for Multi-Conditional Molecular Generation","arxiv_id":"2401.13858","date":"2024-01-24","proceeding":null,"authors":["Gang Liu","Jiaxin Xu","Tengfei Luo","Meng Jiang"],"abstract":"Inverse molecular design with diffusion models holds great potential for advancements in material and drug discovery. Despite success in unconditional molecular generation, integrating multiple properties such as synthetic score and gas permeability as condition constraints into diffusion models remains unexplored. We present the Graph Diffusion Transformer (Graph DiT) for multi-conditional molecular generation. Graph DiT integrates an encoder to learn numerical and categorical property representations with the Transformer-based denoiser. Unlike previous graph diffusion models that add noise separately on the atoms and bonds in the forward diffusion process, Graph DiT is trained with a novel graph-dependent noise model for accurate estimation of graph-related noise in molecules. We extensively validate Graph DiT for multi-conditional polymer and small molecule generation. Results demonstrate the superiority of Graph DiT across nine metrics from distribution learning to condition control for molecular properties. A polymer inverse design task for gas separation with feedback from domain experts further demonstrates its practical utility.","url_abs":"https://arxiv.org/abs/2401.13858v3","url_pdf":"https://arxiv.org/pdf/2401.13858v3.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":"inverse-molecular-design-with-multi","repo_url":"https://github.com/liugangcode/MCD","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"drug-discovery","task_name":"Drug Discovery"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"focus","method_name":"Focus"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2401.13858","atlas_url":"https://app.syntology.ai/?focus=2401.13858","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2401.13858"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/liugangcode/MCD","reach":{"status":"ok"}}],"summary":{"ran_honours":1,"ran":5,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"official":{"samples":8,"ran":7,"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":8,"samples":[{"code_sha256_prefix":"caf6309512a76304","entry":"cosine_beta_schedule_discrete","repo":"liugangcode/MCD","repo_kind":"official","path":"graph_dit/diffusion/diffusion_utils.py","file_url":"https://github.com/liugangcode/MCD/blob/HEAD/graph_dit/diffusion/diffusion_utils.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"caf6309512a76304"}},{"code_sha256_prefix":"c898f7c765bc248f","entry":"custom_beta_schedule_discrete","repo":"liugangcode/MCD","repo_kind":"official","path":"graph_dit/diffusion/diffusion_utils.py","file_url":"https://github.com/liugangcode/MCD/blob/HEAD/graph_dit/diffusion/diffusion_utils.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":"c898f7c765bc248f"}},{"code_sha256_prefix":"03310bba324ae4fb","entry":"modulate","repo":"liugangcode/MCD","repo_kind":"official","path":"graph_dit/models/transformer.py","file_url":"https://github.com/liugangcode/MCD/blob/HEAD/graph_dit/models/transformer.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":"03310bba324ae4fb"}},{"code_sha256_prefix":"56753adc90ff4258","entry":"normalize","repo":"liugangcode/MCD","repo_kind":"official","path":"graph_dit/utils.py","file_url":"https://github.com/liugangcode/MCD/blob/HEAD/graph_dit/utils.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":"56753adc90ff4258"}},{"code_sha256_prefix":"2cee3f8f2583fd9d","entry":"sum_except_batch","repo":"liugangcode/MCD","repo_kind":"official","path":"graph_dit/diffusion/diffusion_utils.py","file_url":"https://github.com/liugangcode/MCD/blob/HEAD/graph_dit/diffusion/diffusion_utils.py","link_basis":"harvester_set","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":"2cee3f8f2583fd9d"}},{"code_sha256_prefix":"ea35dc496409db0f","entry":"to_dense","repo":"liugangcode/MCD","repo_kind":"official","path":"graph_dit/utils.py","file_url":"https://github.com/liugangcode/MCD/blob/HEAD/graph_dit/utils.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":"ea35dc496409db0f"}},{"code_sha256_prefix":"bb865ea3fa367417","entry":"unnormalize","repo":"liugangcode/MCD","repo_kind":"official","path":"graph_dit/utils.py","file_url":"https://github.com/liugangcode/MCD/blob/HEAD/graph_dit/utils.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":"bb865ea3fa367417"}},{"code_sha256_prefix":"3a8cc416490be506","entry":"selectivity_evaluation","repo":"liugangcode/MCD","repo_kind":"official","path":"graph_dit/analysis/rdkit_functions.py","file_url":"https://github.com/liugangcode/MCD/blob/HEAD/graph_dit/analysis/rdkit_functions.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":"3a8cc416490be506"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}