干货!GraphBP:生成与目标蛋白结合的3D分子

点击蓝字

5f761f187d61a0086ed583827b93c5a8.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

0639c95b5e09cb002ead25ec3a2ab61f.gif

e1ee46fff17106dd70da48da64ce491b.jpeg

刘猛:

德州农工大学博士生,师从Shuiwang Ji教授。主要研究方向为图深度学习,AI for Science,生成模型。主页:https://mengliu1998.github.io。

报告简介

设计与特定目标蛋白结合的分子是药物发现的一个重大研究课题。针对这个问题,我们提出基于机器学习的GraphBP方法。GraphBP通过将特定类型和位置的原子一个一个地放置到给定的结合位点来生成与给定蛋白质结合的 3D 分子。具体来说,GraphBP采用3D图神经网络来提取当前语义信息,然后通过自回归流模型依次生成原子。同时,GraphBP在生成分子的过程中考虑了3D空间中的旋转平移等边性。实验表明,GraphBP可以有效的生成具有与目标蛋白结合能力的分子。代码链接:https://github.com/divelab/GraphBP。

Structure-Based Drug Design

给定一个具有3D结构的特定蛋白质,我们生成一个3D空间中的分子。我们希望这个分子和给定的蛋白质具有结合的能力,这也是药物发现过程中的重要问题。最近几年,都有大的给定蛋白质和分子组合的数据集。

我们觉得如果用深度学习来解决这个问题是比较合适的,因为有足够多的数据以供我们训练模型在给定蛋白质的情况下来生成一个3D分子。

a6df443943e514b6aee8b673e13e9cf6.png

Challenges

我们把这个问题的挑战总结如下:

(1)Complicated conditional information复杂的条件信息

  • 3D geometric structure:当我们考虑分子和蛋白质是否能够结合的时候,3D空间中的形状是一个非常重要的因素。

  • Chemical interaction:之间的化学反应也很重要,例如带正电的分子和带负电的氨基酸会更容易结合。

(2)Challenging search space

  • Enormous chemical space:生成分子所占据的巨大化学空间

  • Continuous 3D space:我们还需要考虑分子在3D空间中的位置和给定蛋白质的位置。

(3)Equivariance property:因为我们这个问题是一个条件化生成的问题,如果我们的条件——蛋白质在3D空间中旋转或平移,我们希望我们生成模型生成的分子可以一起平移或旋转,也被称作空间中的等变性。

The Proposed GraphBP: Overview

在此工作中,我们提出了一个生成模型。这个生成模型可以把上面我们提到的问题考虑到模型之中。给定一个蛋白,我们在3D空间中将分子和蛋白质结合。从概括的角度来说,我们的模型是一个序列化的生成模型。我们先生成许多原子,接下来将根据生成的许多原子在空间中的位置来建立其在空间中的化学键连接,以推断3D分子最终的结构。所以,这个模型是一个序列化的生成模型。

我们接下来会简单介绍一下每一步是如何生成新的原子的。同时,我们根据每一步已有的条件信息去生成新的原子,包括原子的类型和相对已有条件信息的位置。

f7c42e49f3259d3197cc12a15f6d0cdb.png

Notations

我们先简单介绍一下数学表述,将3D空间中的分子表示为一个集合,集合中的每一个元素是一个原子。我们再对每一个原子用a和r来表示。

fadd124874027800a53d3266271ae682.png

我们同时把蛋白质结合位点的信息表示成原子的数据,生成模型要做的就是建模条件概率——在给定蛋白质的情况下生成3D分子。

Sequential Generation

我们的生成模型整体上是一个序列化的生成模型,所以我们每一次生成一个原子的时候考虑当前已有的条件信息,得到如下公式:

Context at the step t = the binding site + atoms placed in the previous t-1 steps

f3c695a05cdf15e35653f929b0741bfb.png

我们根据现在这个条件信息生成一个原子,在生成原子的时候还要生成其原子类型和它在空间中的相对坐标。

581ecfe184ccd18340aabd90bf459ea5.png

我们根据最后生成的条件信息加入到下一步来生成新的原子,也是一个循环。接下来,我们将讲解一下是如何实现上述几步的。

Encoding the Context

我们的条件信息是空间中的一些原子,根据这些原子的距离可以构建一个空间中的图。比如说当两个原子之间的距离小于某个阈值就将他们相连,最终得到一个具有空间信息的图,即其中每个节点都有一个三维坐标。

我们想去编码这个条件信息,所以采用了一个3D的GNN去编码这个3D graph。

942269ba14ea31730813e653591e25ab.png

这个GNN第一层就是embedding layer,我们为了区分蛋白质之中的原子和分子之中的原子而采用了不同的embedding来编码蛋白质和分子之中的原子。这两种不同事物之中的原子的初始embedding是不同的。

afce4cd033408dc8e521112f2a279a76.png

我们考虑到neighbour和aggregate之间node的距离信息,将其用一个Radial Basis Functions变成高维的向量。这样我们就可以编码到message之中,最后得到的每一个node相对于当前的context都是具有不变性的。无论是旋转还是平移了context的各种信息,我们得到的每个node的representation都是不变的,和不做刚体变换得到的结果一样的。

Selecting A Local Reference Atom

第二步是我们想要生成原子类型和在空间中的位置,同时希望在旋转条件信息的情况下生成的原子类型是不变的。但是,希望原子的位置可以跟随条件信息的旋转而旋转,即位置可以具有等变性。

5e25ab2abc71466de21a937edd7fa788.png

因为我们刚刚得到的3D representation是具有不变性的,所以我们用具有不变性的representation生成原子类型就很直接。但是,等变得生成坐标就比较困难,因为representation是不变的。我们建造一个local的坐标系,同时希望这个坐标系跟着context是等变得旋转或平移。有了这个坐标系之后,我们只需生成相对这个坐标系的位置,但是需要去保证这些生成的d,θ等是不变的。

7ec74945cf82c97e76e8f36ef47b9b53.png

因为坐标系也在随着context旋转,我们只需保证生成的d,θ等相对坐标系是不变的。这样一来,生成原子的位置相对context就会是等变的。

Selecting A Local Reference Atom

be80c7aae580b209eb794f362007f196.png

接下来,我们就要考虑如何建造一个坐标系。我们需要先去选择坐标系的原点,所以用了以下两个辅助的分类器:

(1)Contact atom classifier (t = 1) over protein atoms

(2)Focal atom classifier (t ≥ 2) over previously generated ligand atoms

我们主要在第一步采用分类器(1),而在第一步之后采用分类器(2)。在第二步时,我们已经生成了许多分子中的原子,从中选择一个坐标原点。

要建立一个坐标系,我们需要空间中的三个点。我们已经有了分类器输出的一个点,之后再考虑另外选择两个点来定义这个坐标系。我们定义了一个规则rule,离我们之前在从context中选出原点最近和第二近的点就是我们要选择的点。这样,我们就有了建立坐标系所需要的三个点。

bd02013b13ef05efba9cf704311d6c48.png

如上图所示,f点就是我们选出的坐标原点,c点和e点为另外两个点,我们由此建立起坐标系。这个坐标系很明显是随着context在旋转,context也包含这三个点。

为了生成新的atom,即图中的氮原子,我们只需要去生成d,θ等参数,并保证他们是invariant生成的即可。

Placing A New Atom

我们需要很多参数在过程中保持不变,因此直接采用3D GNN出来的embedding或representation来生成这些变量。但是这几个变量并不是完全独立的,比如说不同的原子类型相对于坐标原点的距离distribution也是不一样的;同样距离生成的原子相对于坐标系的角度分布distribution也是不一样的。所以,这几个变量并不是独立的,我们也因此想去序列化的生成这几个变量来将他们背后的依赖关系也纳入考虑。

5663e90bf0e99f7449b000505ddaa5a1.png

我们采取如上顺序先后生成4个变量。

Flow model可以理解为在训练的时候将这些变量map到latent变量之中,由于map可逆,因此也能够在生成的时候将map返回,最终得到我们想要的d,θ等变量。

Training

我们在训练的时候需要用到序列化的生成模型,因此我们把分子变成一个序列化的步骤,并在每一步放一个原子。因为我们希望新的原子可以放到我们参考的坐标原点附近的小范围区域内,所以我们用Prim’s algorithm这一贪婪算法去决定分子中每个原子的顺序。每次我们都取离当前原子最近的那个原子作为下一步要生成的原子,第一步就是选择好要生成的原子之后,可以看到loss有以下三种:

(1)Atom placement loss

第一个就是flow model需要生成的4个变量,也被称作placement loss。

(2)Contact atom classifier loss

分类器1选出来的是离分子最近的原子,所以在训练的时候将其作为正样本,其余作为负样本进行实验。

(3)Focal atom classifier loss

这里指的是如果和一个原子连接的原子都已经生成完,这个focal atom获得的就是一个negative的label;不然,我们就给其一个positive 的label

又因为上述三种是同时训练的,所以我们最终的loss就是这三种loss之和。

Experimental Setup

7d90934e0fbe72459c598f9c6627be8e.png

根据我们的结果,我们的效果相比之前取得了明显提升。

Better predicted binding affinity

cd82b4fa0fdb672d67675cd4f14e474c.png

Not simply memorizing or modifying known molecules

b9eb0fdf24afe94261fe2b0f2f5acb84.png

由上图可以看出,我们生成的分子还是比较diverse和normal的。

Ablation Study

我们针对变量的独立程度dependencies做了几个消融实验。发现考虑这些变量的独立程度可以更好的fit我们的训练数据,其测试表现也会更好。

e4aeaf88c573ca6810bedb08bd33712f.png

整理:林  则

作者:刘  猛

往期精彩文章推荐

93fe2d3250672b8632cc1e76ce0641ca.jpeg

记得关注我们呀!每天都有新知识!

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了800多位海内外讲者,举办了逾400场活动,超400万人次观看

2cd1c318aed6716c82bf2d368065df2a.png

我知道你

在看

~

a1879d88ac8af830bf1fd1ba80546e41.gif

点击 阅读原文 查看回放!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值