机器学习加速药物发现,基于 GNN 的分子表征对比学习

简介: 机器学习加速药物发现,基于 GNN 的分子表征对比学习

快速准确地预测分子特性,对于推进从材料科学到制药等领域的科学发现和应用具有重要意义。由于探索潜在选择的实验和模拟既耗时又昂贵,科学家们开始使用机器学习 (ML) 方法来帮助计算化学研究。但是,大多数 ML 模型只能利用已知或标记的数据。这使得准确预测新化合物的性质几乎是不可能的。虽然标记的分子数据数量有限,但可行但未标记的数据数量正在迅速增长。卡内基梅隆大学的研究人员思考他们是否可以利用这大量的未标记分子来建立ML模型,这种模型在属性预测方面比其他模型表现更好。他们最终开发了一个名为 MolCLR(Molecular Contrastive Learning of Representations with GNN) 的自我监督学习框架。MolCLR 通过利用大约 1000 万个未标记的分子数据,显著提高了 ML 模型的性能。该研究结果以「Molecular contrastive learning of representations via graph neural networks」为题,于 2022 年 3 月 3 日发表在《Nature Machine Intelligence》上。分子表征在新型化合物的设计中是基础和必不可少的。由于可能的稳定化合物的数量巨大,开发一种信息表示以概括整个化学空间可能具有挑战性。传统的分子表示,例如扩展连接指纹(ECFP),已成为计算化学中的标准工具。近年来,随着机器学习方法的发展,数据驱动的分子表示学习及其应用,包括化学性质预测、化学建模和分子设计,越来越受到关注。然而,学习这样的表示可能很困难。首先,分子信息很难完整地表示出来。其次,化学空间的大小是巨大的,这使任何分子表示都很难在可能的化合物中泛化。第三,分子学习任务的标记数据昂贵且远远不够。因此,大多数分子学习基准中的标签数量远远不够。在如此有限的数据上训练的机器学习模型很容易过度拟合,并且在与训练集不同的分子上表现不佳。受益于可用分子数据的增长,自我监督/预训练的分子表示学习也得到了研究。在这里,研究人员提出了 MolCLR(通过图神经网络进行表征的分子对比学习)来解决上述所有挑战。这是一种利用大量未标记数据(约 1000 万个独特分子)的自我监督学习框架。

MolCLR 框架

MolCLR 模型是在对比学习框架的基础上开发的。来自正增强分子图对的潜在表示与来自负对的表示形成对比。整个管道由四个部分组成:数据处理和增强、基于 GNN 的特征提取器、非线性投影头和归一化温度标度交叉熵(NT-Xent)对比损失。

图示:MolCLR 概述。(来源:论文)

MolCLR 预训练的 GNN 模型针对分子特性预测进行了微调。与预训练模型类似,预测模型由 GNN 主干和 MLP 头组成,其中前者与预训练的特征提取器共享相同的模型,后者将特征映射到预测的分子属性中。微调模型中的 GNN 主干网络通过预训练模型的参数共享进行初始化,而 MLP 头则随机初始化。然后在目标分子特性数据库上以监督学习的方式训练整个微调模型。三种分子图增强策略在 MolCLR 预训练中,构建分子图并开发图神经网络编码器来学习可微表征。提出了三种分子图增强策略:原子掩蔽、键删除和子图删除。在原子掩蔽中,消除了有关分子的一条信息。在键删除中,原子之间的化学键被擦除。两种增强的组合导致子图删除。通过这三种类型的变化,MolCLR 被迫学习内在信息并进行关联。分子性质预测为了证明 MolCLR 的有效性,研究人员对来自 MoleculeNet 的多个具有挑战性的分类和回归任务的性能进行了基准测试。表 1:不同模型在七种分类基准上的测试性能。(来源:论文)

研究得出:(1)与其他自监督学习或预训练策略相比,MolCLR 框架在 7 个基准测试中有 5 个实现了最佳性能,平均提高了 4.0%。这种改进说明 MolCLR 是一种强大的自我监督学习策略,它很容易实现,并且对特定领域的复杂性要求很少。(2)与表现最好的监督学习基线相比,MolCLR 也表现出可匹敌的性能。在一些基准测试(例如,ClinTox、BACE、MUV)中,MolCLR 甚至超过了 SOTA 监督学习方法。(3)值得注意的是,MolCLR 在分子数量有限的数据集上表现非常出色,例如 ClinTox、BACE 和 SIDER。该性能验证了 MolCLR 学习了可以在不同数据集之间传输的信息表示。MolCLR 表征的研究研究人员使用 t-SNE 嵌入检查由预训练的 MolCLR 学习的表示。t-SNE 算法将紧密的分子表示映射到 2D 中的相邻点。MolCLR 学习了具有相似拓扑结构和官能团的分子的紧密表示。例如,顶部显示的三个分子具有与芳基连接的羰基。左下角显示的两个分子具有相似的结构,其中一个卤素原子(氟或氯)与苯相连。这说明即使没有标签,该模型也会学习分子之间的内在联系,因为具有相似特性的分子具有相似的特征。图示:MolCLR 通过 t-SNE 学习的分子表征的可视化。(来源:论文)为了进一步评估 MolCLR,研究人员将 MolCLR 学习的表示与传统的分子 FP(例如 ECFP5 和 RDKFP)进行了比较。

图示:使用查询分子 (PubChem ID 42953211) 比较 MolCLR 学习表示和传统 FP。(来源:论文)

研究表明:通过对大量未标记数据的对比学习,MolCLR 自动将分子嵌入到代表性特征中,并以化学上合理的方式区分化合物。「我们已经证明 MolCLR 有望实现高效的分子设计,」通讯作者、机械工程助理教授 Amir Barati Farimani 说。「它可以应用于多种应用,包括药物发现、能源储存和环境保护。」作为未来的工作,有许多值得研究的方向。例如,GNN 主干的改进(例如,基于 Transformer 的 GNN 架构)可以帮助提取更好的分子表示。此外,自我监督学习表示的可视化和解释也很有趣。这样的研究可以帮助研究人员更好地了解化合物,有利于药物发现。

论文链接:https://www.nature.com/articles/s42256-022-00447-x

参考内容:https://techxplore.com/news/2022-03-machine-smarter-drug-discovery.html


相关文章
|
机器学习/深度学习 数据采集 搜索推荐
多模型DCA曲线:如何展现和解读乳腺癌风险评估模型的多样性和鲁棒性?
多模型DCA曲线:如何展现和解读乳腺癌风险评估模型的多样性和鲁棒性?
497 1
|
缓存 架构师 Java
入职阿里巴巴,成为年薪百万阿里P7高级架构师需要必备哪些技术栈
大家都知道,阿里P7高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标。达到 年入百万的P7 Java高级架构师级别,不仅要具备优秀的编程能力和系统设计能力,在技术视野和业务洞察力方面,也要有很深的积淀。
|
7月前
|
人工智能 自然语言处理 安全
基于LlamaIndex实现CodeAct Agent:代码执行工作流的技术架构与原理
CodeAct是一种先进的AI辅助系统范式,深度融合自然语言处理与代码执行能力。通过自定义代码执行代理,开发者可精准控制代码生成、执行及管理流程。本文基于LlamaIndex框架构建CodeAct Agent,解析其技术架构,包括代码执行环境、工作流定义系统、提示工程机制和状态管理系统。同时探讨安全性考量及应用场景,如软件开发、数据科学和教育领域。未来发展方向涵盖更精细的代码生成、多语言支持及更强的安全隔离机制,推动AI辅助编程边界拓展。
404 3
基于LlamaIndex实现CodeAct Agent:代码执行工作流的技术架构与原理
|
存储 算法 机器人
Threejs路径规划_基于A*算法案例V2
这篇文章详细介绍了如何在Three.js中使用A*算法进行高效的路径规划,并通过三维物理电路的实例演示了路径计算和优化的过程。
441 0
|
SQL 关系型数据库 数据库连接
ClickHouse(20)ClickHouse集成PostgreSQL表引擎详细解析
ClickHouse的PostgreSQL引擎允许直接查询和插入远程PostgreSQL服务器的数据。`CREATE TABLE`语句示例展示了如何定义这样的表,包括服务器信息和权限。查询在只读事务中执行,简单筛选在PostgreSQL端处理,复杂操作在ClickHouse端完成。`INSERT`通过`COPY`命令在PostgreSQL事务中进行。注意,数组类型的处理和Nullable列的行为。示例展示了如何从PostgreSQL到ClickHouse同步数据。一系列的文章详细解释了ClickHouse的各种特性和表引擎。
528 0
|
安全 UED 黑灰产治理
微信留言自动回复(Python实现)
本项目旨在使用Python与Windows GUI自动化工具来自动化微信的操作,作用为读取未读消息、根据关键词回复消息
783 0
|
机器学习/深度学习 算法 PyTorch
基于Pytorch用GAN生成手写数字实例(附代码)
基于Pytorch用GAN生成手写数字实例(附代码)
401 0
|
机器学习/深度学习 人工智能 算法
一文读懂强化学习:RL全面解析与Pytorch实战
一文读懂强化学习:RL全面解析与Pytorch实战
801 0
|
Kubernetes Java 网络安全
GitLab CI构建SpringBoot-2.3应用
SpringBoot应用提交到GitLab后,会自动构建成docker镜像,甚至自动部署在K8S环境
352 0
GitLab CI构建SpringBoot-2.3应用
|
存储 搜索推荐 Java
ElasticSearch第一讲:ElasticSearch从入门到精通(上)
ElasticSearch第一讲:ElasticSearch从入门到精通
1466 0