ICLR 2024 | MolGen: 化学反馈引导的预训练分子生成

2024-02-03 20:44

本文主要是介绍ICLR 2024 | MolGen: 化学反馈引导的预训练分子生成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MolGen: 化学反馈引导的预训练分子生成

英文题目:Domain-Agnostic Molecular Generation with Chemical Feedback

发表会议:ICLR 2024

论文链接:https://arxiv.org/abs/2301.11259

代码链接:https://github.com/zjunlp/MolGen

目录

引言

MolGen的训练框架

实验分析

总结


引言

药物发现的核心环节之一是合成和设计具有理想化学特性的分子。随着语言模型展现出在解析复杂分子分布方面的潜力,研究人员开始尝试将分子的SMILES描述符与预训练语言模型相结合。然而,SMILES描述符的语法特质并不总能保障所生成化学结构的有效性,经常导致生成化学上无意义的字符串。除此之外,虽然分子语言模型在预训练过程中学习了大量的分子结构信息,它们仍难以准确捕捉到现实世界中化学与生物特性的复杂关系。这使得它们常常陷入“分子幻觉”,生成在结构上看似正确,但缺乏理想化学属性的分子。 为了应对上述挑战,本文提出了新的分子生成框架MolGen。MolGen通过双阶段预训练深入学习分子的结构与语法特征,并采用化学反馈机制优化分子生成过程,使其产生的分子既化学有效又具备预期属性。

图1

MolGen的训练框架

MolGen的预训练包含两个关键阶段:

  • 首先,基于Seq2seq的模型架构,MolGen在超过一亿的分子序列上执行掩码操作,通过重构原始序列深度挖掘分子的结构本质,同时采用SELFIES作为分子描述符,确保生成的分子序列的100%有效性。

  • 其次,引入一种通用的分子前缀策略,提升模型跨不同领域的适用性和灵活性。

在预训练阶段之后,尽管模型已经掌握了分子的基本语法规则,但它还需要学习如何根据实际化学需求优化分子结构。因此,MolGen引入了一种化学反馈机制,引导模型优先考虑那些更优候选分子,进而学习评估并纠正自己的生成过程,以实现与优化目标的一致性。这种方法确保了MolGen不仅能生成化学上有效的分子,而且这些分子具备所需的预期特性,适应实际的应用场景。

图2

实验分析

本文通过一系列实验分析验证了MolGen模型的有效性和实用性。 实验结果表明,MolGen能够生成反映现实世界分子分布的多样化且真实的分子,适用于构建虚拟分子库。

表1

通过优化实验,MolGen证明了其能够有效地生成与特定目标蛋白质高度亲和的分子。结合亲和力量化了分子与目标蛋白质之间的相互作用力。如图(a)所示,MolGen专门针对初始结合亲和力较低的1000个分子进行优化,成功提升了这些分子的亲和力。其中亲和力通过解离常数(K_D)来体现,K_D值越低表示亲和力越强。图(b)则进一步展示了在两种不同目标蛋白质上,通过MolGen优化后分子结合亲和力的显著提高,从而突显了MolGen在药物设计和分子优化领域的应用潜力。

图3

此外,MolGen也能够优化相对简单的化学性质,如p-logP和QED值。在天然产物与合成分子两种设定下,不同配置的模型生成的分子化学性质发生了明显的变化。在未应用化学反馈机制的情况下,预训练模型倾向于生成与输入分子化学性质相似的分子。然而,当引入化学反馈后,化学性质得分显著提升,这表明通过化学反馈机制,模型能够将其生成过程与化学上的实际偏好相对齐,从而有效地评估并调整其生成的分子,确保这些分子具备应用中所需的化学特性。

图4

本文将MolGen得到的分子表示空间与基于深度图生成的模型、基于变分自编码器的模型以及基于SMILES的语言模型进行比较。总体而言,预训练语言模型,尤其是MolGen,在维持生成分子多样性的同时,成功捕获了训练集中分子的化学特性和结构特征,展现了其在精确模拟分子化学空间方面的优势。

图5

进一步地,本文还探讨了使用不同分子语言(SMILES和SELFIES)进行预训练的模型在感知分子结构方面的能力。下图可视化了模型最后一个自注意力层的注意力权重。基于SMILES的预训练模型可能会将注意力分配给缺乏内在化学意义的符号或数字,相比之下,MolGen在识别和理解具有化学意义的子结构方面表现出更高的有效性。

图6

总结

本文介绍了一种新的分子生成框架MolGen。实验分析表明,MolGen能够有效生成符合化学偏好的分子,规避了“分子幻觉”问题。未来的研究方向包括将MolGen应用于逆合成、化学反应预测等生成任务,探索多模态预训练技术,或融合更广泛的知识资源。此外,为了进一步满足从头分子设计的需求,作者推出了最新的MolGen-7B版本。该版本基于LLaMA架构,无需依赖现有分子结构即可设计出多样化的新分子,开拓了更为广阔的化学探索空间。

这篇关于ICLR 2024 | MolGen: 化学反馈引导的预训练分子生成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675346

相关文章

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码