从蛋白/小分子准备开始的Uni-Dock分子对接全流程介绍
©️ Copyright 2023 @ Authors
作者:
袁彦南 📨
日期:2023-07-10
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 docking-pipeline:v0.0.4.4镜像和任意GPU机型即可开始。
背景
分子对接是通过计算模拟快速评估候选分子与目标靶点的结合能力的技术,被广泛应用于药物设计的早期阶段虚拟筛选中,用来在大规模分子库中寻找潜在的活性分子[1]。
Uni-Dock[2]是深势科技发布的基于GPU加速的分子对接引擎,可以实现在NVIDIA V100 GPU上计算速度对比单核CPU超过1600倍的加速比的极致加速。
关于Uni-Dock的更具体的介绍可见文章:https://dptechnology.feishu.cn/docx/XJZ8dE43Uo4EJUxHdZmcmHHhnAg
Uni-Dock的基本使用方法已在之前的notebook中有所介绍:https://nb.bohrium.dp.tech/detail/1288
本教程将从最常用的PDB格式的蛋白文件和SDF格式的小分子文件出发,通过蛋白和配体准备对蛋白和小分子进行标准化并转化为Uni-Dock所需的输入形式,利用Uni-Dock的 SDF-IN-SDF-OUT 模式来对处理过的满足Uni-Dock格式需求的SDF输入文件进行分子对接,输出SDF格式的对接结果文件,并在之后进行后处理来修复小分子坐标并获取对接结果。
0. 准备
0-1. 环境
Docking流程使用的环境较为复杂,推荐在notebook中直接连接使用准备好的docking-pipeline:v0.0.1-f5镜像。
0-2. 数据
本流程可以使用任意PDB格式蛋白文件和SDF格式小分子文件,本教程提供了样例文件来使用,你也可以把下面的蛋白和小分子文件URL换成自己的文件URL来完成本流程。
--2023-08-02 18:03:01-- https://app.bohrium.dp.tech/download/artifacts/applications/uni-dock/artifacts/receptor.pdb Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.37, 10.255.254.7, 10.255.254.18 Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.37|:8118... connected. Proxy request sent, awaiting response... 200 OK Length: 88385 (86K) [application/vnd.palm] Saving to: ‘receptor.pdb’ receptor.pdb 100%[===================>] 86.31K --.-KB/s in 0.01s 2023-08-02 18:03:01 (7.16 MB/s) - ‘receptor.pdb’ saved [88385/88385] --2023-08-02 18:03:01-- https://app.bohrium.dp.tech/download/artifacts/applications/uni-dock/artifacts/actives_final.sdf Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.37, 10.255.254.18, 10.255.254.7 Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.37|:8118... connected. Proxy request sent, awaiting response... 200 OK Length: 783390 (765K) [application/vnd.Kinar] Saving to: ‘actives_final.sdf’ actives_final.sdf 100%[===================>] 765.03K --.-KB/s in 0.1s 2023-08-02 18:03:02 (5.90 MB/s) - ‘actives_final.sdf’ saved [783390/783390]
1. 蛋白准备
使用 MGLTools 包中的 prepare_receptor4.py 脚本将输入的PDB格式文件转为Uni-Dock输入需要的PDBQT格式文件,由于该脚本处理金属原子存在问题,需提前对蛋白文件中的金属进行手动处理。
PDB2PDBQT args: ['/opt/mamba/envs/mgltools/bin/pythonsh', '/opt/mamba/envs/mgltools/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_receptor4.py', '-r', '/tmp/b0246b50fb4e46dc88aaa1f09efd79cd_tmp.pdb', '-o', '/tmp/3519d8ca22ee45a98dd11c895ca1a5b0/receptor.pdbqt', '-U', 'nphs_lps_nonstdres'] Sorry, there are no Gasteiger parameters available for atom b0246b50fb4e46dc88aaa1f09efd79cd_tmp: :ZN4490:ZN
2. 配体准备
使用 Uni-LigandPrep 包对小分子进行修复,加氢,计算可旋转键/原子类型信息(用于作为Uni-Dock输入)操作,得到处理后的小分子文件。
161
3. 分子对接
3-1. 设置参数
这里用一个字典来定义Uni-Dock所需的对接参数,包括打分函数,模式,口袋,生成构象数量等,该字典的key为Uni-Dock参数名,value为参数值。
设置口袋大小:
设置打分函数(vina/vinardo/ad4):
设置mode(exhaustiveness和max_step参数的结合,fast/balance/detail):
设置对接输出pose数量:
3-2(可选). ad4方法前处理
如果对接参数中的打分函数(scoring)选择了ad4,那么需要对蛋白文件进行提前处理,生成**.map**文件,并在之后使用Uni-Dock时以这些生成的map文件作为输入。
3-3. 使用Uni-Dock对接
给定蛋白,小分子文件和对接参数,我们这里将使用Uni-Dock进行分子对接。Uni-Dock支持SDF-IN-SDF-OUT,如果小分子SDF文件满足特定的格式,即可以以这些SDF文件直接作为输入,而不用转成PDBQT格式,并且输出SDF格式文件的结果,这样能够保留小分子文件的原始键级,方便后续流程使用。
Uni-Dock要求的SDF格式如下:
> <fragInfo> (1)
<atom number 1> <atom number 2> ...
> <torsionInfo> (1)
<torsion_start_atom_number> <torsion_end_atom_number> <start_atom_frag_ind> <end_atom_frag_ind>
> <atomInfo> (1)
<atom number> <formal charge> <atom type>
在上面步骤2配体准备中,我们已完成了对小分子的标准化操作并且生成了Uni-Dock所需的可旋转键和原子信息,Uni-Dock可以直接以这些SDF文件作为输入文件并输出SDF格式的结果文件,这样可以保留小分子的完整键级信息,方便用于后续的MM PB/GBSA和FEP过程。
Docking cmd:unidock --center_x -20 --center_y 30 --center_z 60 --size_x 20 --size_y 20 --size_z 20 --scoring vina --search_mode fast --num_modes 1 --receptor /tmp/3519d8ca22ee45a98dd11c895ca1a5b0/receptor.pdbqt --ligand_index /tmp/113bfe18a3eb42848f509bdd8e02a337_file_list --dir /tmp/3519d8ca22ee45a98dd11c895ca1a5b0/results --verbosity 0 --refine_step 3 --keep_nonpolar_H Uni-Dock v1.2.3 entering done exiting done Total ligands: 161 Avaliable Memory = 10830MiB Total Memory = 11011MiB Batch 1 size: 161 Kernel running time: 15 entering done exiting done Batch 1 running time: 21249ms
4. 后处理/结果分析
4-1. 非极性氢后处理
由于Uni-Dock使用SDF-IN-SDF-OUT模式时会忽略小分子的非极性氢,因此对接后的结果小分子文件非极性氢位置是不正确的,如图:
/tmp/3519d8ca22ee45a98dd11c895ca1a5b0/results/actives_final_59_out.sdf
这里需要使用Uni-LigandPrep的ReProto功能对小分子非极性氢进行重新生成:
重生成后的结果:
4-2. 获取结果打分
Uni-Dock打分会写在结果小分子文件里,从文件中读出打分并排序就可挑选出本次对接的最优结果。
name pose docking_score 0 actives_final_41_out.sdf 1 -5.407 1 actives_final_156_out.sdf 1 -5.257 2 actives_final_27_out.sdf 1 -5.166 3 actives_final_39_out.sdf 1 -5.033 4 actives_final_120_out.sdf 1 -5.010
参考
- https://dptechnology.feishu.cn/docx/XJZ8dE43Uo4EJUxHdZmcmHHhnAg
- Yu, Y., Cai, C., Wang, J., Bo, Z., Zhu, Z., & Zheng, H. (2023). Uni-Dock: GPU-Accelerated Docking Enables Ultralarge Virtual Screening. Journal of Chemical Theory and Computation.