文献总结|一种用于基于结构药物设计的 3D 生成模型

doi.org/10.48550/arXiv.2203.10446

本文介绍于 2021 年彭健课题组发表在 NeurIPS 2021 上的一篇文章,文章原标题为 A 3D Generative Model for Structure-Based Drug Design。

基于结构药物设计中的一个基本问题是针对指定的蛋白结合位点生成分子,目前解决这一问题的深度学习方法可以分为两类:基于字符序列与基于图的方法。但不论是基于字符序列的 1 维模型,还是基于图的 2 维模型,其本质上缺少蛋白质 3 维空间中的信息。为了获取空间信息,目前也出现了在 3D 空间中实现分子生成的模型,但这些模型只能生成较小的分子,无法有效生成类药的更大分子。

因此,文章提出了一种能够针对指定的蛋白生成药物分子的 3D 生成模型,在利用蛋白空间信息的情况下生成分子,实现基于结构的药物设计。

方法

模型

蛋白的结合位点可以定义为原子的集合 \(\mathcal{C}=\{(\boldsymbol{a}_i,\boldsymbol{r}_i)\}^{N_b}_{i=1}\),其中 \(N_b\) 是结合位点原子的数量,\(\boldsymbol{a}_i\) 是第 \(i\) 个原子的特征,\(\boldsymbol{r}_i\) 是其空间坐标。可以将在结合位点生成原子的任务视作为模拟结合位点中各位置 \(\boldsymbol{r}\) 上出现原子的概率,也就是模拟原子在结合位点上出现的概率密度 \(p(e|\boldsymbol{r},\mathcal{C})\),其中 \(e\in\mathcal{E}=\{\mathrm{H},\mathrm{C},\mathrm{O},\cdots\}\) 代表生成分子中的原子。

为了对 \(p(e|\boldsymbol{r},\mathcal{C})\) 建模,文章设计了两个模块:

  1. 上下文编码器(Context Encoder):使用图神经网络(graph neural networks, GNN)学习环境 \(\mathcal{C}\) 下各原子的表示;
  2. 空间分类器(Spatial Classifier):输入任意位置 \(\boldsymbol{r}\),集合该位置附近所有上下文原子的表示,输出预测结果 \(p(e|\boldsymbol{r},\mathcal{C})\)

上下文编码器

上下文编码器用于提取特征,获得各原子的表示,在该任务中,对原子表示有两个要求:

  1. 原子表示不应只具有本身的信息,还应具有环境中的信息;
  2. 在旋转和平移变换后,原子性质的性质不会发生改变,原子表示应具有旋转和平移不变性。

基于以上两点要求,文章使用了旋转平移不变的图神经网络。

首先,针对蛋白结合位点构建 k-近邻图,基于结合位点 \(\mathcal{C}\) 中各原子的距离得到图 \(\mathcal{G}=\langle\mathcal{C},\boldsymbol{A}\rangle\),其中 \(\boldsymbol{A}\) 为邻接矩阵,将 k-近邻中的第 \(i\) 个原子记作 \(N_k(\boldsymbol{r}_i)\)

接着,编码器将 \(\mathcal{G}\) 中所有结点原子的特征 \(\{\boldsymbol{a}_i\}\) 转化为嵌入表示 \(\{\boldsymbol{h}^{(0)}_i\}\),然后进入消息传递层。

一般的 GNN 消息传递过程定义为

$$ \boldsymbol{h}^{(\ell+1)}_i=\sigma\left(\boldsymbol{W}^\ell_\mathrm{self}\boldsymbol{h}^{(\ell)}_i+\boldsymbol{W}^\ell_\mathrm{nergh}\sum_{j\in\mathcal{N}}\boldsymbol{h}^{(\ell)}_j\right) $$

其中 \(\boldsymbol{W}\) 为模型需要训练的参数,\(\sigma\) 为激活函数。从上式中可以看出,GNN 的消息传递是在将 \(i\) 结点周围临近的 \(j\) 结点的信息按权重聚集起来。

在文章中所使用的消息传递过程为

$$ \boldsymbol{h}^{(\ell+1)}_i=\sigma\left(\boldsymbol{W}^\ell_0\boldsymbol{h}^{(\ell)}_i+\sum_{j\in N_k(\boldsymbol{r}_i)}\boldsymbol{W}^\ell_\mathrm{1}\boldsymbol{w}(d_{ij})\odot\boldsymbol{W}^\ell_2\boldsymbol{h}^{(\ell)}_j\right) $$

相比原式,文章在第 2 项中做了一些改动,\(\boldsymbol{w}(\cdot)\) 是一个权重网络,\(d_{ij}\)\(i\)\(j\) 两个结点间的距离。上述过程就是在聚集信息时,根据距离的远近分配权重,逐个原子计算后得到 \(\mathcal{C}\) 中所有原子的嵌入表示集合 \(\{\boldsymbol{h}^{(L)}_i\}\)

空间分类器

在空间中的任意位置 \(\boldsymbol{r}\) 上,空间分类器聚集由上下文编码器得到的原子的嵌入表示:

$$ \boldsymbol{v}=\sum_{j\in N_k(\boldsymbol{r})}\boldsymbol{W}_0\boldsymbol{w}_\mathrm{aggr}(||\boldsymbol{r}-\boldsymbol{r}_j||)\odot\boldsymbol{W}_i\boldsymbol{h}^{(L)}_j $$

其中 \(\boldsymbol{w}_\mathrm{aggr}(\cdot)\) 同样是一个权重网络。在这一步中,类似地根据任意位置 \(\boldsymbol{r}\) 与周围结点间的距离 \(||\boldsymbol{r}-\boldsymbol{r}_j||\) 分配权重,聚集该位置附近出现过原子的信息,得到特征 \(\boldsymbol{v}\)

最后通过多层感知机、归一化后得到所求概率分布:

$$ \boldsymbol{c}=\mathrm{MLP}(\boldsymbol{v})\\ p(e|\boldsymbol{r},\mathcal{C})=\frac{\exp(\boldsymbol{c}[e])}{1+\sum_{e'\in\mathcal{E}}\exp(\boldsymbol{c}[e'])} $$

取样

因为 \(p(e|\boldsymbol{r},\mathcal{C})\) 需要指定结合位点 \(\mathcal{C}\) 和位置 \(\boldsymbol{r}\) 得到预测的原子 \(e\),而分子生成需要根据 \(\mathcal{C}\) 自动分配各原子的位置,所以由 \(p(e|\boldsymbol{r},\mathcal{C})\) 导出

$$p(e,\boldsymbol{r}|\mathcal{C})=\frac{\exp(\boldsymbol{c}[e])}{Z}$$

其中 \(Z\) 为未定的归一化常数。

分子生成的过程为,在 \(t\) 步骤,使用结合位点(环境) \(\mathcal{C}_t\)\(p(e,\boldsymbol{r}|\mathcal{C}_t)\) 得到 \((e_{t+1},\boldsymbol{r}_{t+1})\),将 \((e_{t+1},\boldsymbol{r}_{t+1})\) 加入到环境 \(\mathcal{C}_t\) 得到 \(\mathcal{C_{t+1}}\),再用于预测下一个原子的种类和位置,即

$$ \begin{align} &(e_{t+1},\boldsymbol{r}_{t+1})\sim p(e,\boldsymbol{r}|\mathcal{C}_t)\\ &\mathcal{C}_{t+1}\leftarrow\mathcal{C}_t\cup\{(e_{t+1},\boldsymbol{r}_{t+1})\} \end{align} $$

再增加一个辅助的分类网络用于判断生成原子是否为末端原子,若为末端原子则结束分子生成过程。

n

数据

CrossDocked 数据集中有 2.25 千万条对接得到的蛋白-配体对数据,经数据清洗后,使用其中的 100000 条数据训练模型,100 条数据作为测试集。

结果

n

文章首先测试了模型根据蛋白结合位点生成分子的整体效果。结果如上图所示,模型生成分子的对接打分略差于参考分子,但要更好于同类模型 liGAN,生成分子的 QED 与 SA 甚至好过于参考分子,生成分子的所有指标均好于 liGAN。在各分子性质分布的对比中,相比另两个数据集,生成分子的 QED 向右偏移,具有更好的类药性。

n

以上结果也可以从生成分子的样例中看出,上图展示了模型针对两个蛋白生成的多个分子,生成分子的对接打分、QED 都要好于参考分子,同时许多生成分子还具有参考分子的类似结构。

n

最后,文章测试了模型在 linker 预测上的应用。模型不需要经过重新训练或都微调,只需将结合位点与片段作为初始的环境 \(\mathcal{C}_0\),模型就会根据环境补足片段间的 linker。测试结果如上图所示,与设计用于 linker 预测任务的 DeLinker 相比,文章中的模型在各方面都具有优势。

n

文章也列举了 linker 预测结果的样例,虽然模型不一定能预测并找回参考分子,但预测生成的分子中都包含了指定的片段,同时模型是根据蛋白的 3D 信息生成 linker,这在基于结构的药物设计上可以作为应用工具。

结论

文章使用 GNN 构建了一种用于基于结构药物设计的分子生成模型,该模型使用 GNN 通过设计用于蛋白 3D 信息的消息传递过程提取结合位点中的空间信息,根据配体各原子在结合位点中各位置出现的概率建立模型,从该概率中取样实现分子生成。模型生成的分子具有蛋白的空间信息,在各方面指标上都具有较好的表现。