2022-LCLR-DIFFDOCK: DIFFUSION STEPS, TWISTS, AND TURNS FOR MOLECULAR DOCKING

news2024/11/18 0:18:56

2022-LCLR-DIFFDOCK: DIFFUSION STEPS, TWISTS, AND TURNS FOR MOLECULAR DOCKING


Paper: https://arxiv.org/abs/2210.01776
Code: https://github.com/gcorso/DiffDock

预测小分子配体与蛋白质的结合结构(称为分子对接)是药物设计的关键。最近的深度学习方法将对接视为一个回归问题,与传统的基于搜索的方法相比,它减少了运行时间,但在准确性方面还没有得到实质性的改进。相反,将分子对接构建为生成建模问题,并开发了DIFFDOCK,这是配体姿态的非欧几里得流形上的扩散生成模型。为此,将此流形映射到涉及对接的自由度(平移、旋转和扭转)的积空间,并在此空间上开发有效的扩散过程。举例来说,DIFFDOCK在PDB- Bind上获得了38%的top-1成功率(RMSD<2 a),显著优于之前最先进的传统对接(23%)和深度学习(20%)方法。此外,DIFFDOCK具有快速推断时间和提供高选择精度的置信度估计。

蛋白质的生物学功能可以通过与之结合的小分子配体(如药物)来调节。因此,计算药物设计中的一个关键任务是分子对接,预测配体与目标蛋白结合时的位置、方向和构象,从而推断配体的作用(如果有的话)。传统的对接方法[Trott & Olson, 2010;Halgren等人,2004]依赖于估计所提议结构或姿态正确性的评分函数,以及搜索评分函数的全局最大值的优化算法。然而,由于搜索空间很大,评分函数的范围很广,这些方法往往太慢,而且不准确,特别是对于高通量工作流。

近期作品[St ark et al., 2022;Lu等人,2022]开发了深度学习模型,一次性预测绑定姿势,将对接视为回归问题。虽然这些方法比传统的基于搜索的方法快得多,但它们还没有证明在准确性方面有显著提高。,这可能是因为基于回归的范式与分子对接的目标不完全对应,这反映在这样一个事实中,即标准精度指标类似于预测模型下数据的可能性,而不是回归损失。因此,将分子对接构建为给定配体和目标蛋白结构的生成建模问题,学习配体姿势的分布。

因此,作者开发了一种用于分子对接的配体空间上的扩散生成模型(DIFFDOCK)。定义了一个涉及到对接的自由度的扩散过程:配体相对于蛋白质的位置(定位结合袋),它在口袋中的方向,以及描述其构象的扭转角。DIFFDOCK样品姿态通过运行学习到的(反向)扩散过程,该过程迭代地将配体姿态上未知的、有噪声的先验分布转换为学习到的模型分布, r如下图所示
直观地说,这个过程可以被看作是通过更新它们的平移、旋转和扭转角度来逐步优化随机姿势。

虽然DGMs已经应用于分子机器学习中的其他问题,但现有的方法不适用于分子对接,其中配体的空间是一个(m+6)维的子流形 M ∈ R 3 n M \in R^{3n} MR3n,其中n和M分别是原子数和扭转角。为了开发DIFFDOCK,对接自由度将M定义为通过一组允许的配体位姿转换可访问的位姿空间。使用这种思想将M中的元素映射到与这些转换相对应的组的积空间,在其中可以有效地开发和训练DGMs。由于对接模型的应用通常只需要固定数量的预测和这些预测的置信度分数,训练一个置信度模型,为从DGM中采样的姿态提供置信度估计,并挑选出最有可能的样本。
这个两步过程可以被视为蛮力搜索和一次性预测之间的一种中间方法:保留了考虑和比较多个姿势的能力,而不会遇到高维搜索的困难。

根据经验,在标准盲对接基准PDBBind上,在配体均方根距离(RMSD)低于2 A的情况下,DIFFDOCK实现了38%的top-1预测,几乎是之前最先进的深度学习模型(20%)的两倍。DIFFDOCK的性能甚至超过了最先进的基于搜索的方法(23%),同时在GPU上仍然快3到12倍。此外,它提供了其预测的准确置信度评分,在其最自信的三分之一之前未见的复合体上获得83% RMSD<2 A。

综上所述,本工作的主要贡献是:

  • 将分子对接任务构建为一个生成问题,并强调了之前深度学习方法的问题。
  • 提出了一个新的扩散过程的配体姿态对应的自由度涉及分子对接
  • 在PDBBind盲对接基准上, R M S D < 2 A RMSD<2 A RMSD<2A,实现了最新的38%的top-1预测,大大超过了之前最好的基于搜索的方法(23%)和深度学习方法(20%)。

Molecular docking.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GB/T 20984-2022《信息安全技术 信息安全风险评估方法》解读

前言 近年来&#xff0c;信息安全风险评估工作逐步在国家基础信息网络及重要行业信息系统中普遍推行&#xff0c;信息安全风险评估是信息安全保障工作的基础和重要环节&#xff0c;日前&#xff0c; GB/T 20984-2022 《信息安全技术 信息安全风险评估方法》发布&#xff0c;将…

oracle学习篇(四)

oracle学习篇(四&#xff09; 1 PL/SQL异常处理 1.1 预定义异常 1.1.1 内容 oracle里面已经存在的异常 如果是自定义异常,一般写的编号是20000-20999之间1.1.2 处理异常语法 exceptionwhen 异常类型1 then输出异常类型信息1;when 异常信息2 then输出异常类型信息2;--以上都…

MR案例:学生排序(单字段排序、多字段排序)

文章目录一、提出任务二、完成任务&#xff08;一&#xff09;准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录&#xff08;二&#xff09;实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建学生实体类5、创建学生映射器类5、创建学生归并器类6…

JS中操作<select>标签选的值

JS中操作<select>标签选的值 <select>标签是一种表单控件&#xff0c;用来创建下拉列表。在<select> 标签内可用 <option> 标签定义下拉列表中的可用选项。下面给出一个基本下拉列表示例&#xff1a; <!DOCTYPE html> <html lang"zh&q…

Codeforces Round #838 (Div. 2)

A. Divide and Conquer 题目链接&#xff1a;Problem - A - Codeforces 样例输入&#xff1a; 4 4 1 1 1 1 2 7 4 3 1 2 4 1 15样例输出&#xff1a; 0 2 1 4题意&#xff1a;一个数组是好的当且仅当所有的元素和是一个偶数&#xff0c;现在给我们一个初始数组&#xff0c;我…

Android---组件化

1、单体应用 所有代码写在一个工程里。不同业务写到各自模块&#xff0c;以包名来区分。 弊端 1、无论包名做的再好&#xff0c;随着项目扩大&#xff0c;项目失去层次感&#xff0c;接受吃力。 2、报名作为约束&#xff0c;太弱了。一不注意就会出现不同业务之间之间相互调…

【算法数据结构专题】「限流算法专项」带你认识常用的限流算法的技术指南(分析篇)

限流 限流的目的是通过对并发访问/请求进行限速&#xff0c;或者对一个时间窗口内的请求进行限速来保护系统&#xff0c;一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理 限流一词常用于计算机网络之中&#xff0c;定义如下&#xff1a; In computer networks, rate l…

接口测试(七)—— 参数化、数据库操作类封、接口自动化框架

目录 一、接口自动化测试框架 1、目录结构 二、封装iHRM登录 1、普通方式实现 2、登录接口对象层 3、登录接口测试用例层 4、封装断言方法 三、参数化 1、回顾UnitTest参数化 1.1 原始案例 1.2 参数化实现 1.3 从json文件读取 2、登录接口参数化 2.1 组织数据文…

java8流操作之不常用但是很好用的隐藏api

前言 1、一些普通的方式就不再多说了&#xff0c;这里主要说一些不常用的&#xff0c;但是作用很大的api方式 2、如果想要细致了解可以参考 JAVA8的流操作&#xff0c;十分推荐 一、flatMap 1、这个api主要是用来推平流的&#xff0c;和map不一致&#xff0c;map是对象到对…

Python基础(十六):函数的初步认识

文章目录 函数的初步认识 一、函数的作用 二、函数的使用步骤 1、定义函数 2、调用函数 3、快速体验 三、函数的参数作用 四、函数的返回值作用 1、应用 五、函数的说明文档 1、语法 2、快速体验 3、函数嵌套调用 七、函数应用 1、打印图形 2、函数计算 八、总…

还在为多张Excel汇总统计发愁?Python 秒处理真香!

为什么越来越多的非程序员白领都开始学习 Python &#xff1f;他们可能并不是想要学习 Python 去爬取一些网站从而获得酷酷的成就感&#xff0c;而是工作中遇到好多数据分析处理的问题&#xff0c;用 Python 就可以简单高效地解决。本文就通过一个实际的例子来给大家展示一下 P…

新手传奇gm架设要学会的几个修改技巧

每个传奇gm对于架设一个服务器都有自己独立的看法和想法&#xff0c;一些人之所以会想着要架设一个传奇私服主要原因是自己在其他人的服力玩得不是那么舒心。所以想要按照自己的想法和思路打造一个适合自己的专属服务器进行游戏&#xff0c;其实这两者之间是有必然联系的&#…

毕业三年活得像个废物,转行网络安全,写给像我一样迷茫的人...

首先说说我吧&#xff0c;普通二本非科班商贸专业毕业&#xff0c;三年了&#xff0c;做过电商&#xff0c;做过新媒体&#xff0c;做过业务员&#xff0c;从躺平到摆烂&#xff0c;一开始还挺享受这样的生活的&#xff0c;毕竟每月4千工资&#xff0c;抛出吃住&#xff0c;剩个…

重学webpack系列(八) -- webpack的运行机制与工作原理

前面几个章节我们分别去探索了webpack的loader机制、plugin机制、devServer、sourceMap、HMR&#xff0c;但是你是否知道这些配置项是怎么去跟webpack本身执行机制挂钩的呢&#xff1f;这一章我们就来探索一下webpack的运行机制与工作原理吧。 webpack核心工作过程 我们打开w…

第十四章 文件操作

1.文件的基本操作 文件&#xff0c;对我们并不陌生&#xff0c;文件是数据源&#xff08;保存数据的地方&#xff09;的一种&#xff0c;比如大家经常使用的Word文档&#xff0c;TXT文件&#xff0c;excel文件…都是文件。文件最主要的作用就是保存数据&#xff0c;它既可以保…

用户虚拟地址空间管理-mm_struct

一、进程虚拟地址空间管理概览 二、mm_struct结构体的主要成员 atomic_t mm_users;共享同一个用户虚拟地址空间的进程的数量&#xff0c;也就是线程组包含的进程的数量atomic_t mm_count;内存描述符的引用计数struct vm_area_struct *mmap;虚拟内存区域链表struct rb_root mm_…

【java】课程设计--抽卡模拟器

文章目录工期安排自己实现菜单逻辑抽卡算法0.书写要求1.用户需求2.设计思想3.各个功能和算法描述4.系统调试中问题5.总结新知识怎么打开任务管理器改进&#xff08;进一步的设想&#xff09;交给她们实现1.注册登录2.读文件-显示查找内容暂时成功案例工期安排 1 自定义增加和删…

数据权限就该这么设计

在项目实际开发中我们不光要控制一个用户能访问哪些资源&#xff0c;还需要控制用户只能访问资源中的某部分数据。 控制一个用户能访问哪些资源我们有很成熟的权限管理模型即RBAC&#xff0c;但是控制用户只能访问某部分资源&#xff08;即我们常说的数据权限&#xff09;使用…

[附源码]Python计算机毕业设计红旗家具城管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

✿✿✿JavaScript --- 事件

目录 1.事件相关概念 2. js中注册监听&#xff08;事件绑定&#xff09;的方式 (1)在定义标签时&#xff0c;添加事件名称属性。属性值是js代码&#xff08;js代码会被自动封装到一个function函数的方法体中&#xff09; (2)通过js获取元素对象&#xff0c;再添加事件。 补…