ViSNet:用于分子性质预测和动力学模拟的通用分子结构建模网络

编者按:尽管几何深度学习已经彻底颠覆了分子建模领域,但最先进的算法在实际应用中仍然面临着几何信息利用不足和高昂计算成本的阻碍。为此,微软研究院科学智能中心(Microsoft Research AI4Science)的研究员们提出了通用分子结构建模网络 ViSNet。在多个分子动力学基准测试中,ViSNet 均表现优异。


分子几何建模在理解生物活性机制、化学性质预测、药物设计和蛋白质工程方面发挥着关键作用。然而,虽然几何深度学习(geometric deep learning)是一种低成本、高精度且可以被广泛使用的计算方法,在过去十年取得了巨大进展,但这种技术仍然存在一些有待解决的问题和局限性:

  • 分子可解释性不足:深层神经网络尽管可以进行预测,但缺乏对分子的深入洞察;
  • 随着分子尺寸的增加,计算成本迅速增加:一些目前最先进的方法中采用的高阶 Clebsch-Gordan 系数计算是计算密集型的,因此阻碍了其在大分子中的应用;
  • 需要实际应用中的盲目测试和评估:模型总是在基准测试上进行测试,同时也需要仔细评估在实际应用中的有效性。

为了解决这些难题,微软研究院科学智能中心的研究员们将研究重点聚焦在了如何提高分子可解释性、降低计算成本以及评估实际应用几个方面,并创新性地提出了通用分子结构建模网络 ViSNet (Vector-Scalar interactive graph neural Network)。相关文章“Enhancing geometric representations for molecules with equivariant vector-scalar interactive message passing”已发表在《自然-通讯》(Nature Communications)杂志上,并同时入选了“AI and machine learning”和“Biotechnology and method”两个领域的编辑精选文章。

ViSNet论文链接:https://www.nature.com/articles/s41467-023-43720-2

“AI and machine learning”领域编辑精选文章链接:https://www.nature.com/collections/ceiajcdbeb

“Biotechnology and method”领域编辑精选文章链接:https://www.nature.com/collections/idhhgedgig

有效提升分子几何表示

研究员们最初计划通过有效且充分地利用分子结构的领域知识来设计模型。由于经典分子动力学(molecular dynamics, MD)通过明确描述势能函数中的键长、键角和二面角来模拟分子运动,所以受经典 MD 模拟的启发,研究员们将这些项目转换并扩展,从而构建了 ViSNet 独特的模型设计。

与通过简单的特征工程过程直接采用角度或二面体信息不同,研究员们提出了“方向单元”这个概念作为节点的向量化表示,即从中心节点到其任何第一个相邻节点的所有归一化向量的总和,作为中心节点的矢量化表示。再以此将键长、键角和二面角计算扩展到二体、三体和四体相互作用。然后,通过设计运行时几何计算(runtime geometry calculation, RGC)模块来描述模型操作等多体交互。

更重要的是,三体和四体相互作用的 RGC 计算都只有线性时间复杂度。因此,研究员们又进一步提出了向量标量交互式消息传递机制(ViS-MP),其中方向单元会通过构建块由节点和边的标量表示迭代更新,反过来,标量表示由方向单元同时更新 RGC 模块。RGC 和 ViS-MP 的独特设计显著增强了几何编码能力并加速了分子图神经网络中的消息传递过程。

图1:ViSNet 网络结构示意图

图1:ViSNet 网络结构示意图

ViSNet在分子建模和性质预测实际应用中的表现

研究员们首先将 ViSNet 在广泛使用的分子化学性质预测基准上进行了评估。在 MD17、修订版 MD17 、 MD22、QM9 以及 Molecule3D 数据集上显示出卓越的性能,证明了分子几何表示的强大能力。然后,研究员们还在自已开发的 DFT(密度函数理论)精度的蛋白质数据集 AIMD-Chig 数据集上训练了 ViSNet,并对蛋白质 Chignolin 进行了 MD 模拟。

ViSNet 取得了比经验力场和现代机器学习力场更好的性能及令人满意的结果。ViSNet 的模拟结果与在 DFT 水平上获得的结果非常接近,这表明 ViSNet 在数据效率和模拟保真度方面具有潜力。

研究员们用 ViSNet 参加了全球首届 AI 药物研发算法大赛。该大赛旨在根据小分子的序列信息(即SMILES)预测针对新冠病毒 SARS-CoV-2 主要蛋白酶的抑制剂。共有来自全球878支团队的1105名参赛者参与了此次比赛。最终,研究员们凭借 ViSNet 获得了比赛的总冠军,也展现了 ViSNet 优异的预测准确性。

如何获取ViSNet模型?

为了促进更广泛的应用和便捷的使用,ViSNet 已被微软纳入 Pytorch Geometry 库,作为分子建模和属性预测领域的基本模型。ViSNet 的定期维护和更新版本也可在 GitHub上 获取。

图2:ViSNet 在 Pytorch Geometry 中作为基础模型

Pytorch Geometry 库链接:https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.ViSNet.html

GitHub 链接:https://github.com/microsoft/AI2BMD/tree/ViSNet

此外,考虑到图神经网络随着模型变得越来越大、越来越深,可能会遇到“过度平滑”的风险,研究员们还进一步设计了 ViSNet 的 Transformer 版本,可以将 RGC 模块转移到 Transformer 注意力计算中,并提出了一种新颖的原子间位置编码(IPE),命名为 Geoformer(Geometric Transformer的缩写)。作为 ViSNet 的 Transformer 变体,Geoformer 可通过堆叠数百个注意力块来进行大模型训练。相关研究论文发表于 NeuraIPS 2023。

分子动力学模拟的未来:兼具人工智能与从头计算精度的能力

作为人工智能(AI)驱动的从头算分子动力学(AI2BMD)项目的重要组成部分,ViSNet 致力于实现加速分子动力学模拟的目标,使大型分子系统的模拟精度接近从头算法。

图3:AI2BMD 整体流程

图3:AI2BMD 整体流程

ViSNet 可以让 AI2BMD 实现对包含超过10,000个原子的蛋白质的能量和力计算达到接近从头算法的精度。利用 ViSNet 进行蛋白质动力学模拟还可提高自由能估计的准确性,提供有关蛋白质折叠热力学的深入预测,并有助于表征蛋白质的特性,从而潜在地增强实验研究。

相关链接:

ViSNet论文:https://www.nature.com/articles/s41467-023-43720-2

AIMD-Chig 数据集:https://www.nature.com/articles/s41597-023-02465-9

首届AI药物研发算法大赛官方网页:https://aistudio.baidu.com/competition/detail/1012/0/leaderboard

ViSNet-Pytorch Geometry 库:https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.ViSNet.html

ViSNet-GitHub:https://github.com/microsoft/AI2BMD/tree/ViSNet

Geoformer:https://github.com/microsoft/AI2BMD/blob/Geoformer/Geoformer.pdf/

AI2BMD:https://microsoft.github.io/AI2BMD/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/528016.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OCR常用识别算法综述

参考:https://aistudio.baidu.com/education/lessonvideo/3279888 语种:常用字符36与常用汉字6623,区别。 标注:文本型位置/单字符位置,后者标注成本大 挑战:场景文字识别:字符大小、颜色、字体…

【经典算法】LCR187:破冰游戏(约瑟夫问题,Java/C/Python3/JavaScript实现含注释说明,Easy)

目录 题目思路及实现方式一:迭代模拟(用链表模拟这个游戏)思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二:数学迭代思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式三:递归思路代码实现Java版…

C语言 函数——函数的定义、调用和参数传递

目录 模块化编程(Modular Programming) 函数的分类 函数的定义 使用函数编程的好处 函数调用的基本方式 函数调用时的数据传递 函数调用的过程 main函数的特殊性 大话三国 分而治之 如果将main()函数比作诸葛亮&#xff…

并行超算云计算使用步骤完整流程详情

本文目录 一、将项目传入并运云。二、创建项目的虚拟环境三、编辑run.sh脚本四、提交作业五、查看作业输出六、查看提交的作业号七、结束作业 一、将项目传入并运云。 二、创建项目的虚拟环境 打开终端 使用conda创建:conda create -n 环境名 python3.8查看conda下…

消息队列MQ的介绍和docker安装MQ

一、什么是mq? MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信,解耦。 二、常见的mq产品 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq RabbitMQ: One broker …

LINUX 下IPTABLES配置详解

-t<表>&#xff1a;指定要操纵的表&#xff1b; -A&#xff1a;向规则链中添加条目&#xff1b; -D&#xff1a;从规则链中删除条目&#xff1b; -i&#xff1a;向规则链中插入条目&#xff1b; -R&#xff1a;替换规则链中的条目&#xff1b; -L&#xff1a;显示规则链中…

【算法详解】二分查找

1. 二分查找算法介绍 「二分查找算法&#xff08;Binary Search Algorithm&#xff09;」&#xff1a;也叫做 「折半查找算法」、「对数查找算法」。是一种在有序数组中查找某一特定元素的搜索算法。 基本算法思想&#xff1a;先确定待查找元素所在的区间范围&#xff0c;在逐步…

界面组件DevExpress WinForms v23.2 - 功能区、富文本编辑器功能升级

DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜…

软考 系统架构设计师系列知识点之云原生架构设计理论与实践(16)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之云原生架构设计理论与实践&#xff08;15&#xff09; 所属章节&#xff1a; 第14章. 云原生架构设计理论与实践 第3节 云原生架构相关技术 14.3.3 无服务器技术 1. 技术特点 2. 技术关注点 &#xff08;1&#xff…

四川一体化污水处理设备厂家如何挑选

如果您想寻找一家可靠的四川地区的污水处理设备厂家&#xff0c;以下是一些挑选的关键要素可以考虑&#xff1a; 1. 信誉和口碑&#xff1a;了解该厂家在业界的声誉和客户的评价&#xff0c;可以通过查阅相关的评论和建议&#xff0c;或者咨询其他业内人士来了解。 2. 技术实力…

数据生成 | Matlab实现基于SNN浅层神经网络的数据生成

数据生成 | Matlab实现基于SNN浅层神经网络的数据生成 目录 数据生成 | Matlab实现基于SNN浅层神经网络的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.Matlab实现基于SNN浅层神经网络的数据生成&#xff0c;运行环境Matlab2021b及以上&#xff1b; …

【接口自动化】参数化替换

在做接口测试时&#xff0c;除了测单个接口&#xff0c;还需要进行业务链路间的接口测试 比如[注册-登陆]需要token鉴权的业务流 当我们用使用postman/jmeter等工具时&#xff0c;将注册接口的一些响应信息提取出来&#xff0c;放到登陆接口的请求中&#xff0c;来完成某个业务…

紫叶写作能用吗 #微信#知识分享

紫叶写作是一款非常好用、靠谱的论文写作工具&#xff0c;它旨在帮助用户快速高效地完成论文写作任务&#xff0c;并提供查重降重的功能。它不仅操作简单方便&#xff0c;而且功能强大&#xff0c;能够有效提高论文写作的效率和质量。 首先&#xff0c;紫叶写作提供了丰富的模板…

CKA 基础操作教程(五)

Kubernetes Ingress 理论学习 Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源所定义的规则来控制。 Ingress 资源示例&#xff1a; apiVersion: networking.k8s.io/v1 # 指定 Kubernetes 中使用的 API 版本 kind: Ingress # 指定对象…

matlab使用教程(38)—傅里叶变换

1基本概念 傅里叶变换是一个数学公式&#xff0c;用于将按时间或空间采样的信号变换为按时序或空间频率采样的相同信号。 在信号处理中&#xff0c;傅里叶变换可以揭示信号的重要特征&#xff08;即其频率分量&#xff09;。 对于包含 n 个均匀采样点的向量 x &#xff0c;其…

为说阿拉伯语的国家进行游戏本地化

阿拉伯语是由超过4亿人使用的语言&#xff0c;并且是二十多个国家的官方语言。进入这些国家的市场并非易事——虽然他们共享一种通用语言&#xff0c;但每个国家都有自己独特的文化&#xff0c;有自己的禁忌和对审查的处理方式。这就是为什么视频游戏公司长期以来都远离阿拉伯语…

mac-m1pro芯片编译java项目慢且发热严重问题

目录 一、背景二、排查三、解决四、效果以及结果展示五、总结 一、背景 使用idea编译项目等操作&#xff0c;经常性发热严重&#xff0c;并且时间慢。直到昨天编译一个项目用时30分钟&#xff0c;电脑温度很高&#xff0c;并且有烧灼的味道&#xff0c;于是有了此篇文章。 二、…

Linux应用开发(3):Linux时间操作(time、mktime、localtime等)

1. 简述 在Linux系统中&#xff0c;时间操作函数是编程中经常使用的一部分&#xff0c;它们允许程序获取和设置系统时间&#xff0c;以及对时间进行各种处理。以下是一些常用的时间操作函数的详细介绍。 2. 时间操作 &#xff08;1&#xff09;time(): 获取1970年1月1日以来的…

TalkingData——Unity应用开发中集成统计分析工具

第一步:帐号注册 官方网站:TalkingData-移动.数据.价值 第二步:创建应用查看 appid 可以进入网站注册,注册好以后就可以创建应用 创建好应用后,点击 应用管理-》基本信息就可以查看自己的 AppID 第三步:申请对应平台的sdk 接下来就是申请sdk 这里是申请sdk的网站…

Unity MySql安装部署与Unity连接 上篇

1.前言 最近项目用到MySql&#xff0c;记录一下安装部署过程。 数据量过大或者需要管理用户数据的时候用mysql的话数据结构比较清晰明了&#xff0c;便于管理。 2.安装MySql Unity版本&#xff1a;2019.4.16 MySql版本&#xff1a;8.2.0 下载地址&#xff1a;MySql 下载…