AI绑定
AI-Bind 是一个深度学习管道,可为前所未见的蛋白质和配体提供可解释的结合预测。 AI-Bind 能够快速筛选大型化学库,并通过优先考虑蛋白质-配体对进行验证来指导计算成本高昂的自动对接模拟。该管道需要输入简单的化学特征,例如蛋白质的氨基酸序列和配体的异构 SMILE,这有助于克服与缺乏可用 3D 蛋白质结构相关的限制。
预印本可在:https://arxiv.org/abs/2112.13168
为什么选择AI绑定?
现有机器学习模型在预测蛋白质-配体结合方面的缺点
我们对预测前所未见的蛋白质和配体的结合的兴趣促使我们将现有机器学习模型(例如 DeepPurpose)的测试性能分为三个部分:
(a) 转导测试:当测试数据集中的蛋白质和配体都存在于训练数据中时,
(b) 半感应测试:当训练数据中仅存在测试数据集中的配体时,并且
(c) 归纳测试:当训练数据中不存在测试数据集中的蛋白质和配体时。
我们了解到,只有归纳测试性能才是评估机器学习模型从蛋白质和配体的结构特征中学习结合程度的可靠指标。我们注意到,大多数模型主要呈现转导测试性能,这与预测训练中使用的蛋白质-配体相互作用网络中看不见的链接有关。我们探索机器学习模型如何实现与更简单的算法(即网络配置模型)相当的转导性能,后者完全忽略分子结构并使用程度信息进行结合预测。
AI-Bind 提供什么?
AI-Bind 管道通过在训练数据中包含网络衍生的负样本并引入分子嵌入的无监督预训练,最大限度地提高归纳测试性能。该流程通过三种不同的神经架构进行验证:VecNet、VAENet 和 Siamese 模型。 AI-Bind 中性能最好的架构是 VecNet,它分别使用 Mol2vec 和 ProtVec 嵌入蛋白质和配体。这些嵌入被输入解码器(多层感知器),预测结合概率。
AI-Bind 的可解释性和识别活性结合位点
我们对蛋白质结构的某些构建块(氨基酸三元组)进行突变,以识别对结合预测影响最大的区域,并将它们识别为潜在的结合位点。下面,我们通过可视化自动对接模拟的结果并将预测位点映射到配体结合的氨基酸残基来验证 AI-Bind 预测的人类蛋白 TRIM59 上的活性结合位点。 AI-Bind预测的结合位点可以指导用户为自动对接模拟创建最佳网格,进一步减少模拟时间。
设置 AI-Bind 并预测蛋白质-配体结合(最终用户指南)
AI-Bind 的硬件设置
我们通过 Google 云平台上配备 Intel Broadwell CPU 和 NVIDIA Tesla T4 GPU 的服务器训练和测试了所有模型。 AI-Bind使用的Python版本是3.6.6。使用的CUDA版本是9.0。
使用 Docker
请使用此 docker 运行 AI-Bind:https://hub.docker.com/r/omairs/foodome2
使用需求文件
这里列出了 AI-Bind 所需的所有 Python 模块和相应版本:requirements.txt
使用 pip install -rrequirements.txt 安装相关包。
AI-Bind中使用的rdkit版本:'2017.09.1'(安装请查看文档:https://www.rdkit.org/docs/Install.html,命令:conda install -c rdkit rdkit)
确保 VecNet-User-Frontend.ipynb 笔记本和 AIBind 文件夹中的三个文件(AIBind.py、 init.py和 import_modules.py)位于同一文件夹中。
下载数据文件并将其保存在/data下。下载链接:https://zenodo.org/record/7226641
使用 Docker 的替代安装
- 下载名为“Predictions.dockerfile”的 docker 文件。
- 在终端上,移至包含 dockerfile 的目录并运行: docker build -t aibindpred -f ./Predictions.dockerfile ./
- 要将映像作为容器运行: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 aibindpred 您可以在容器内克隆 git 存储库,或在运行容器时附加本地卷: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 -v ./local_directory:/home艾宾德普雷德
- 要在容器内执行其他 shell,请运行: docker exec -it aibindpredcontainer /bin/bash
- 要在容器内运行 Jupyter Notebook 实例,请运行: jupyter Notebook --ip=0.0.0.0 --port=8888 --allow-root 上述步骤将安装所有必要的包并创建环境以使用 AI 运行绑定预测绑定。
从前端运行预测
- 使用列“InChiKey”、“SMILE”和“target_aa_code”以数据帧格式组织数据文件。将此数据框保存在 .csv 文件中。
- 运行名为 VecNet-User-Frontend.ipynb 的笔记本以进行结合预测。预测的结合概率将在列标题“平均预测”下提供。
代码和数据
数据文件
所有数据文件均可在此处获取:https://zenodo.org/record/7226641
- /data/sars-busters-consolidated/Database 文件:包含来自 DrugBank、BindingDB 和 DTC(Drug Target Commons)的蛋白质配体结合数据。
- /data/sars-busters-consolidated/chemicals:包含用于训练和测试带有嵌入的 AI-Bind 的配体。
- /data/sars-busters-consolidated/GitData/DeepPurpose 和配置模型:与 Transformer-CNN (DeepPurpose) 和双工配置模型的 5 倍交叉验证相关的训练测试数据。
- /data/sars-busters-consolidated/GitData/interactions:包含用于训练 AI-Bind 神经网络的网络派生负数数据集。
- /data/sars-busters-consolidated/GitData:包含训练有素的 VecNet 模型、与 COVID-19 相关的病毒和人类蛋白的结合预测,以及自动对接模拟结果的摘要。
- /data/sars-busters-consolidated/master_files:包含用于测试 AI-Bind 的绝对阴性(非结合)蛋白质配体对。
- /data/sars-busters-consolidated/targets:包含用于训练和测试 AI-Bind 以及相关嵌入的蛋白质。
- /data/sars-busters-consolidated/interactions:包含来自 DrugBank、NCFD(食品数据库中的天然化合物)、BindingDB 和 DTC 的阳性(结合)蛋白质-配体对。
- /data/sars-busters-consolidated/Auto Docking:包含 AI-Bind 对 COVID-19 相关病毒和人类蛋白进行验证的所有文件和结果。
- /data/sars-busters-consolidated/结合概率图验证:包含从自动焦化模拟中可视化活性结合位点的文件。
- /data/sars-busters/Mol2vec:此处提供预训练的 Mol2vec 和 ProtVec 模型。
- /data/sars-busters-consolidated/s4pred:包含预测 TRIM59 二级结构的代码和文件。
代码
在这里,我们描述了 AI-Bind 中使用的 Jupyter Notebook、Python 模块和 MATLAB 脚本。
人工智能绑定
- AIBind.py:包含 AI-Bind 的 Python 类。包括所有神经架构:VecNet、VAENet 和 Siamese 模型。
- import_modules.py:包含运行 AI-Bind 所需的所有 Python 模块。
配置型号5倍
- 配置模型 - Cross-Validation.ipynb:计算 DeepPurpose 中使用的 BindingDB 数据上 Duplex 配置模型的 5 倍交叉验证性能。
- configuration_bipartite.m:包含双工配置模型的 MATLAB 实现。
- runscriptposneg.m:使用配体和蛋白质的程度序列运行双链体配置模型。输出文件 summat10.csv 和 summat01.csv 用于计算配置模型的性能。
DeepPurpose-5 倍
- Deep Purpose - 最终数据集 - Unseen Targets.ipynb:我们使用网络派生的负数在 DeepPurpose 上对看不见的目标(半感应测试)执行 5 倍交叉验证。
- Deep Purpose - 最终数据集 - Unseen Nodes.ipynb:我们使用网络派生的负数在 DeepPurpose 上对看不见的节点(归纳测试)执行 5 倍交叉验证。
摩尔运输公司
- example_induction_AI_Bind_data.py:我们使用用于训练 AI-Bind 的网络派生负样本在 MolTrans 上运行归纳测试。
- example_induction_BindingDB.py:我们使用 MolTrans 论文中使用的 BindingDB 数据对 MolTrans 进行归纳测试。
- example_semi_inducing.py:此脚本可用于在 MolTrans 上运行半感应测试。
- example_transitive.py:此脚本可用于在 MolTrans 上运行转导测试。
深层目的和配置模型
- DeepPurpose Rerun - Transformer CNN.ipynb:我们使用基准 BindingDB 数据训练测试 DeepPurpose。这里对 DeepPurpose 进行了多项实验,包括随机改组化学结构和 DeepPurpose 性能的程度分析。
- DeepPurpose data.ipynb 上的配置模型:我们探索 DeepPurpose 中使用的 BindingDB 数据集上的双工配置模型的性能。
特征辐条
- Eigen Spokes Analysis.ipynb - 我们在组合邻接矩阵(行和列中都有配体和目标的方形邻接矩阵)上运行 EigenSpokes 分析。
捷径的出现
- without_and_with_constant_fluctuations_p_bind=0.16.ipynb:基于 BindingDB 中的蛋白质样本在玩具单部分网络上创建并运行配置模型。在这里,我们探讨了与度和解离常数之间的关联相关的两种场景——解离常数值没有任何波动和持续波动。
- With_variing_fluctuations.ipynb:基于 BindingDB 中的蛋白质样本在玩具单部分网络上创建并运行配置模型,其中解离常数值的波动遵循与 BindingDB 数据中类似的趋势。
工程特性
- 了解工程特征.ipynb:我们探索工程特征(代表配体和蛋白质分子的简单特征)的可解释性。
- VecNet 工程特征 - Mol2vec 和 Protvec 重要维度.ipynb:根据蛋白质配体结合确定 Mol2vec 和 ProtVec 嵌入中最重要的维度。
- VecNet Engineered Features Concat Original Features.ipynb:探索连接原始蛋白质和配体嵌入后 VecNet 的性能。
- VecNet Engineered Features.ipynb:用 VecNet 架构中的简单工程特征替换 Mol2vec 和 ProtVec 嵌入,并探索其性能。
识别活性结合位点
- VecNet-Protein-Trigrams-Study-GitHub.ipynb:我们对蛋白质上的氨基酸三元组进行突变,并观察 VecNet 预测的波动。这个过程帮助我们识别氨基酸序列上潜在的活性结合位点。
随机输入测试
- VecNet-Unseen_Nodes-RANDOM.ipynb:在看不见的节点上运行 VecNet(归纳测试),其中配体和蛋白质嵌入被高斯随机输入替换。
- VecNet-Unseen_Nodes-T-RANDOM-Only.ipynb:在看不见的节点上运行 VecNet(归纳测试),其中蛋白质嵌入被高斯随机输入替换。
- VecNet-Unseen_Targets-RANDOM.ipynb:在看不见的目标上运行 VecNet(半感应测试),其中配体和蛋白质嵌入被高斯随机输入替换。
- VecNet-Unseen_Targets-T-RANDOM-Only.ipynb:在看不见的目标上运行 VecNet(半感应测试),其中蛋白质嵌入被高斯随机输入替换。
暹罗
- Siamese_Unseen_Nodes.ipynb:我们创建网络派生的负数数据集,并在此处对未见过的节点执行 5 倍交叉验证(归纳测试)。
- Siamese_Unseen_Targets.ipynb:我们在这里对看不见的目标执行 5 倍交叉验证(半感应测试)。
VAE网络
- VAENet-Unseen_Nodes.ipynb:我们创建网络派生的负例,并在此处对未见过的节点执行 5 倍交叉验证(归纳测试)。
- VAENet-Unseen_Targets.ipynb:我们在这里对看不见的目标执行 5 倍交叉验证(半感应测试)。
验证
- SARS-CoV-2 预测分析 VecNet.ipynb:VecNet 对 SARS-CoV-2 病毒蛋白和与 COVID-19 相关的人类蛋白做出的前 100 个预测的自动对接验证。
- Binding_Probability_Profile_Golden_Standar_Validation.py:使用金标准蛋白质结合数据验证 AI-Bind 派生的结合位置。
向量网
- VecNet-Unseen_Nodes.ipynb:我们创建网络衍生的负例,对未见过的节点执行 5 倍交叉验证(归纳测试),并对 SARS-CoV-2 病毒蛋白和与 COVID-19 相关的人类蛋白进行预测。
- VecNet-Unseen_Targets.ipynb:我们在这里对看不见的目标执行 5 倍交叉验证(半感应测试)。
外部资源
- 使用 Autodock Vina 学习自动对接:https://www.youtube.com/watch?v=BLbXkhqbebs
- 学习使用 PyMOL 可视化活性结合位点:https://www.youtube.com/watch?v=mBlMI82JRfI
引用 AI-Bind
如果您发现 AI-Bind 对您的研究有用,请添加以下引用:
@article{Chatterjee2023,
doi = {10.1038/s41467-023-37572-z},
url = {https://doi.org/10.1038/s41467-023-37572-z},
year = {2023},
month = apr,
publisher = {Springer Science and Business Media {LLC}},
volume = {14},
number = {1},
author = {Ayan Chatterjee and Robin Walters and Zohair Shafi and Omair Shafi Ahmed and Michael Sebek and Deisy Gysi and Rose Yu and Tina Eliassi-Rad and Albert-L{'{a}}szl{'{o}} Barab{'{a}}si and Giulia Menichetti},
title = {Improving the generalizability of protein-ligand binding predictions with {AI}-Bind},
journal = {Nature Communications}
}