论文笔记|百度AI制药大赛冠军背后的技术(ViSNet)

2023-11-10 07:20

本文主要是介绍论文笔记|百度AI制药大赛冠军背后的技术(ViSNet),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

         在首届全球AI药物研发大赛中,微软研究院王童研究员带领的ViSNet-Drug团队,凭借其团队自主开发的AI2BMD高精度动力学模拟系统、ViSNet三维分子结构建模图神经网络和蛋白质全构象数据集AIMD-Chig在三轮比赛中均排名第一并获得总冠军。王童研究员团队提出全新的新冠小分子药物解决方案:通过AI2BMD高精度的分子动力学模拟有效区分正负样本小分子与主蛋白酶靶点之间的结合自由能,利用AIMD-Chig蛋白全构象数据集对ViSNet模型进行预训练,最终通过对预训练的ViSNet网络进行fine tuning,得到高准确度的预测结果。为了了解这份成果背后的技术,我开始阅读了相关的论文,首先阅读的是ViSNet,论文标题为

ViSNet: a scalable and accurate geometric deep learning potential for molecular dynamics simulation

论文:https://arxiv.org/abs/2210.16518

源码:没找到直接的源码,找到了相关另一篇文章的源码。内容大致相同。GitHub - microsoft/ViSNet at OGB-LSC@NIPS2022

背景介绍

        分子动力学模拟(MD)描述了分子系统的动力学和热力学性质。它广泛应用于物理、化学、生物和制药领域。过去主要采用以下两种模拟方法:

  1. 从头算分子动力学模拟,例如由密度泛函理论 (DFT) 驱动的模拟。其优点是可以精确计算能量和力,但计算成本高昂,限制了其在大型分子系统和长时间模拟中的应用。
  2. 采用经验力场的经典 MD 可以进行快速且合适的模拟,因为它们适用于大型系统,但电子运动引起的量子效应无法捕获,力场参数通常不可转移。

        近年来随着机器学习(ML)和深度学习(DL)的发展,由于其强大的特征提取能力和表示能力,得到越来越多的关注。特别是对数据依赖度更低的几何深度学习方法(GDL),GDL通过纳入分子的几何信息使模型对数据保持旋转平移不变性。尽管神经网络模型的预测精度已经接近传统的模拟方法,但任然存在几何信息利用不足和高计算成本的问题,这阻碍了它们在分子动力学模拟中的应用。为了缓解上上面的问题,文章作者提出了一种名为 ViSNet 的可扩展且高精度的分子动力学图深度学习模型。在ViSNet中,作者提出了一种运行时几何计算(RGC)策略,以线性计算复杂度提取和编码角度和二面体信息,显着加速模型训练和推理并减少内存消耗。然后,设计了一种新颖有效的矢量-标量交互式等变消息传递机制,称为 ViS-MP,通过将矢量表示与标量表示交互来充分利用几何信息。通过合并这两个模块,结合了两种类型 EGNN 各自的优点,使计算效率更高且几何信息也得到了更充分利用。在一些基准上进行综合评估时,ViSNet 在 MD17 数据集上的所有分子上均优于所有最先进的算法,并且在 QM9 数据集上表现出优越的性能,表明分子几何表示的强大能力。

模型架构

概述

        如图 1(a)所示,ViSNet模型由一个embedding块和多个堆叠的 ViSNet 块组成,后面加上一个输出块。首先,embedding块把分子中各原子信息和化学键信息嵌入成向量,然后混合分子中的几何信息一起输入ViSNet块中聚合和更新。更新后的分子表示就包含了几何信息,然后这样的分子表示就可以在不同的输出块下进行各种下游任务了。其中每个ViSNet块由Message Block和Message Block组成,连续的两个ViSNet块之间有残差链接。

嵌入快

它首先嵌入原子,并通过径向基函数(RBF)计算其距离在截止范围内的边缘表示。然后将原子 i 的初始嵌入、其 1 跳邻居 j 和边 eij 融合在一起,作为初始节点嵌入 和边嵌入 。嵌入块表示式:

        表示节点i的1跳邻居节点集合,j是其邻居之一。初始向量嵌入 设置为 。向量嵌入 通过投影到嵌入空间中。

Message Block

分子表示聚合:如下面参考图左边表示,从上一模块得到的分子表示通过函数 φ s m 聚合更新,表示式如下:

其中是块的索引,是节点i在第l层的嵌入向量,表示在第l层节点i和节点j之间的边特征。

几何信息聚合:几何信息的聚合同分子表示聚合类似,如下面参考图右边所示,表示式如下:

其中表示聚合j特征的i节点的特征表示。表示节点 i 到其相邻节点 j 的方向向量。 是节点i的“方向单元”,保留了节点i的几何信息,是从节点 i 到其所有相邻节点 j 的所有单位向量的总和,表示式如下:

的单位向量。

参考图:

Message Block

更新节点的嵌入向量:完整的分子表示除了需要融合周围邻居点的特征 之外,还需融合原子周围的空间信息。融合的方法如下面展示图左侧,表示式如下式(7),通过聚合函数 融合原子的原始特征和聚合特征,还有原子的方向单位向量的内积。

另外,结合上面方程式(1)计算节点i的方向单位向量的内积,可以满足下式:

即,方向单位向量的内积等于节点i与其任意两个相邻节点所形成的所有角度的余弦值之和。其中表示节点i到其所有邻居节点的单位向量内积之和。

更新边的嵌入向量:和节点特征更新一样,边的特征更新也需要融合空间信息。融合的方法如上图右侧,表示式如下式(8)。

其中fij是边的原始特征,表示节点i的方向单元向量在节点 i 到其相邻节点 j 的方向向量的投影。按照几何的运算规则,可以满足下式(3,4)

在上面等式1中定义,是 的单位向量。表示m,I,j,n四个节点形成的二面角。可以参考图C进行理解。

更新节点的“方向单元”向量:节点方向单元向量的更新需要聚合原始方向单元向量,聚合周边节点特征后的节点特征和聚合几何信息后的方向单元向量。表示式如下式(9):

这篇关于论文笔记|百度AI制药大赛冠军背后的技术(ViSNet)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/2303_79001442/article/details/132896535
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/381187

相关文章

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应