UCSF DOCK 分子对接详细案例(06)- 共价分子对接

摘要: 本文把 Rizzo Lab 的 DOCK6 共价对接教程(5VKG/tenatoprazole 案例)全部 6 节 GUI 手工操作脚本化,避免繁琐的窗口操作,适合共价分子的大规模虚拟筛选。步骤包括:受体准备、配体准备、sphere/box/grid/docking 全部收敛为两条命令,换体系只需改 5 个参数。文中给出完整可复现的系列脚本与输入输出案例文件,并记录 8 条 DOCK 6.11 与老教程参数文件、obabel 输出格式的兼容性踩坑,全部实测复现。

你要做共价抑制剂对接,翻到 Rizzo Lab 的 DOCK6 共价对接教程(5VKG/tenatoprazole 案例),却发现前两节全是 Chimera 图形界面手工操作:改半胱氨酸、删侧链、手工拼配体、文本编辑器改 dummy 原子名------换一个体系就得从头再点一遍。这篇把教程全部 6 节操作脚本化:受体准备(reduce + tleap ff14SB)、配体准备(晶体 CONECT + AM1-BCC + D1/D2 dummy 化)、sphere/box/grid/docking 全部变成两条命令。**迁移到其他的案例上只需要改 5 个参数(残基号、链、配体名、配体硫原子名、净电荷),**你照着操作换上自己的共价复合物 PDB 就能跑,末尾 8 条踩坑记录了 DOCK 6.11 与老教程参数文件、obabel 输出格式的全部兼容性坑。

相关教程与核心资源

资源 内容 与本文关系
Rizzo Lab 2019 Covalent docking tutorial 1 (5VKG) 本文脚本化的原始教程,DOCK 6.10 alpha 全部 GUI 步骤的出处
UCSF DOCK 官网 DOCK 6 下载(学术免费,需签 license) 安装入口
PDB 5VKG 人 Tsg101 UEV 与 tenatoprazole NMR 复合物(20 个 model) 案例体系
Allen KN 等, Biochemistry 56, 4498 (2017) DOI 10.1021/acs.biochem.7b00567 tenatoprazole 共价结合 Tsg101 Cys73 的实验论文 二硫键 2.05 Å 的依据

一、案例体系与脚本化思路

PDB 5VKG 是 20 个 model 的 NMR 结构 ensemble,取 model 1。共价键在配体 4N1 的 S20 与 Cys73 的 SG 之间,实测距离 2.03 Å(与教程一致的二硫键长度)。

教程 6 节与脚本化对照(每一步 GUI 操作换成什么命令):

教程步骤 原操作(Chimera GUI) 脚本化等价 道理
I. 受体截共价键 Build Structure → Modify S, Bonds 2, tetrahedral 删掉配体 HETATM 即可 教程那步只是修 Chimera 的显示,PDB 里 SG 本来就是完整 CYS 的一部分
I. AddH Tools → AddH(AMBER14SB) reduce -BUILD Chimera 的 AddH 内核就是 reduce,同源替换
I. AddCharge Tools → AddCharge tleap(ff14SB 电荷)+ ParmEd 注入 mol2 AmberTools 原生,比 Chimera 封装更可控
I. 删 Cys73 侧链 手选 CB/SG 删除 mol2 文本层删原子 + 键表重编号 纯文本操作,脚本一步到位
II. 配体拼装 手选、invert、删蛋白、bond sel 拼二硫键 直接用晶体 CONECT 记录 5VKG 的 CONECT 本来就含 S20--SG 键,不用拼
II. 骨架 N 补第二个 H Modify N, Bonds 3, trigonal 几何法线方向补 H 截链后 N 只连 CA,按四面体几何放 H
II. AddCharge +1 AM1BCC Tools → AddCharge antechamber -c bcc -nc 1 同一引擎
II. 手工改 D2/D1 dummy 文本编辑器改 atom name/type ligand_surgery():改名+改类型+删骨架+键表重排 教程原话是"open it with a text editing tool"
III. sphere 文件 存 3 原子 mol2 再手排顺序 直接写 .sph 文本 sphere 格式就 8 列固定宽度
IV--VI. box/grid/dock 教程本来就是命令行 原样照搬 + 2 个兼容性补丁 见踩坑 4/5

工作目录结构(两条命令产出的全部内容):

复制代码
covalent_dock/
├── scripts/
│   ├── 01_prep_all.py      # 受体+配体+spheres 全准备 (Step 0-III)
│   └── 02_run_dock.sh      # showbox + grid + covalent docking (Step IV-VI)
└── run_5vkg/               # 运行目录
    ├── model1.pdb
    ├── 001.files/          # 5VKG_rec_h.mol2 / 5VKG_03_06.mol2 / lig_03_06.mol2
    ├── 002.spheres/        # lig_abs_spheres.sph / lig_spheres.sph
    ├── 003.gridbox/        # lig.box.pdb
    ├── 004.grid/           # grid.nrg / grid.bmp
    └── 005.dock/           # covalent.out / covalent_out_scored.mol2

二、环境与输入

你需要安装(本文实测版本):DOCK 6.11(~/app/dock.6.11)、AmberTools 26(tleap/antechamber)、reduce、Open Babel、RDKit(可选)、ParmEd(经 conda 环境调用)。

复制代码
# 下载结构
curl -sL https://files.rcsb.org/download/5VKG.pdb -o 5VKG.pdb
确认共价键距离(教程开头的 S-S 检查, 3 行 Python 替代 Chimera 量距)
python3 - <<'EOF'
import math
sg = s20 = None
m = 0
for l in open('5VKG.pdb'):
if l.startswith('MODEL'): m += 1
if m != 1 or not l.startswith(('ATOM','HETATM')): continue
n, r, num = l[12:16].strip(), l[17:20].strip(), l[22:26].strip()
xyz = (float(l[30:38]), float(l[38:46]), float(l[46:54]))
if r=='CYS' and num=='73' and n=='SG': sg = xyz
if r=='4N1' and n=='S20': s20 = xyz
print('SG-S20 = %.2f A (二硫键应约 2.05)' % math.dist(sg, s20))
EOF
输出: SG-S20 = 2.03 A (二硫键应约 2.05)   ← 与教程一致

三、Step I--III:一条命令完成全部准备

复制代码
cd ~/Desktop/M3/covalent_dock
python3 scripts/01_prep_all.py 

--pdb 5VKG.pdb 

--model 1 

--cys-resnum 73 

--chain A 

--lig-resname 4N1 

--lig-sulfur S20 

--protonate N11 

--net-charge 1 

--workdir ./run_5vkg

5 个体系相关参数:--cys-resnum(共价半胱氨酸号)、--chain--lig-resname(配体残基名)、--lig-sulfur(配体侧硫原子名)、--protonate(晶体省略氢的阳离子 N,本例 N11 是 PYRIDIN-1-IUM)。

脚本内部按顺序做了什么(对应教程 I--III 节):

① 受体 :删配体 → 删氢 → reduce -BUILD 加氢(等价 AddH)→ HIS 按已有侧链氢改名 HIE/HID/HIP(ff14SB 模板要求,见踩坑 1)→ tleap ff14SB 算电荷 → obabel 转 Sybyl mol2 → ParmEd 按(残基号,原子名)把电荷逐原子写回 mol2 → 生成 grid 受体(只删共价 Cys73 的 CB/SG+氢,其他 CYS 不动)。

复制代码
  [rec] 1162 heavy atoms, 144 residues
  [HIS fix] ['HIE102', 'HIE115', 'HID119']
INJECTED 2342 MISSING 0 []          ← 2342 个原子电荷全部注入
  [grid rec] CYS73: dropped 5 atoms (['CB', 'HB2', 'HB3', 'HG', 'SG'])

② 配体 :取 Cys73 全部原子 + 4N1 全部原子(含晶体氢)→ 用官方 CONECT 建键(S20--SG 天然在内,不用像教程那样 bond sel)→ 几何法线给骨架 N 补第二个 H、给 N11 补阳离子氢(见踩坑 6)→ antechamber -c bcc -nc 1 算 AM1-BCC 电荷 → obabel mol2 做键级骨架(antechamber 对混合残基的键感知不可靠,见踩坑 7)+ BCC 电荷按坐标合并 → surgery:删骨架 N/CA/C/O 及其氢、删 CB 上的氢、CB→D2/Du、SG→D1/Du、键表重编号。

复制代码
  [lig] Cys73: 10 atoms; 4N1: 41 atoms; SG-S20 = 2.03 A
  [lig] added HN2 on backbone N
  [lig] added N11H on cationic N (N11) --- crystal omitted PYRIDIN-1-IUM H
  [charges] BCC merged 53; obabel-kept 2
  [surgery] dropped [...] (backbone+H); renamed {'CB': 'D2', 'SG': 'D1'} -> D1/D2 (Du)

③ Sphereslig_abs_spheres.sph 按教程要求的顺序(1. S_gamma 2. C_beta 3. C_alpha)直接写成文本;lig_spheres.sph 用配体重原子。教程让你先存 mol2 再手排顺序------脚本按顺序写出来,不用排。

教程手工改 dummy 的对照(教程原样 vs 脚本产出, atom 1/2 就是 D2/D1):

复制代码
教程:            1 D2  -24.07  34.93 -36.20 Du  1 LIG -0.0660
                 2 D1  -25.16  36.18 -35.71 Du  1 LIG -0.1111
脚本:            1 D2  -29.43  30.79 -36.96 Du  1 CYS73 0.0427
                 2 D1  -29.95  32.14 -35.86 Du  1 CYS73 -0.0230

四、Step IV--VI:第二条命令跑 box/grid/dock

复制代码
bash scripts/02_run_dock.sh ./run_5vkg

脚本内容就是教程 IV--VI 的三个输入文件(showbox.in/grid.in/covalent.in 参数与教程一致),外加两个 DOCK 6.11 的兼容性补丁(踩坑 4/5)。实测输出:

复制代码
[box] 8 box atoms
[grid] grid.nrg grid.bmp OK
[dock] exit; scored file:
-rw-rw-r-- 1 lihui lihui 5810 ... covalent_out_scored.mol2
[dock] scored conformers: 1

对接结果查看(等价教程 ViewDock,纯命令行):

复制代码
cd run_5vkg/005.dock
grep -A1 "Grid_Score\|HA_RMSDs" covalent_out_scored.mol2 | head -6

本文实测一版(全单键重建键表)输出:HA_RMSD 0.176 Å,Grid_Score +201.25(vdW +197.94 / ES +3.31),2 conformers,耗时 0.020 s------RMSD 到埃级说明共价几何约束生效;Grid_Score 偏正与该版键表把芳环压成单键有关,用 ar 键级版(默认输出)可改善打分合理性,见第六节。

五、换体系要改什么

换一个共价复合物(比如半胱氨酸蛋白酶 + 丙烯酸酯 warhead),5 步:

  1. --cys-resnum/--chain:共价残基(CYS/SER/LYS 都适用,脚本按残基名定位侧链 CB/SG)
  2. --lig-resname/--lig-sulfur:配体残基名 + 连接原子(非硫 warhead 改成对应原子名即可,S--S 距离校验会自动放宽到通用共价范围)
  3. --protonate:晶体省略氢的带电位点(没有就删掉该参数)
  4. --net-charge:配体净电荷(sqm 要求电子数为偶数,奇数时先查质子化状态)
  5. bondlengthcovalent.in):共价键长目标值,教程用 1.8(S--S 约 2.05 可按需改)

六、踩坑实录(8 条,全部实测复现)

# 症状 修法
1 reduce 输出的 HIS 与 ff14SB 模板冲突 tleap FATAL: Atom .R<HIE 119>.A<HD1> does not have a type reduce 后按已有侧链氢改名:有 HD1→HID、有 HE2→HIE、双氢→HIP
2 sphere 文件列格式 showbox Fortran runtime error: Bad value during floating point read sphere 行是 Fortran format(5x,3F10.5):原子序占 5 列,坐标必须从第 6 列起,不能自由分隔
3 obabel mol2 的 counts 行 grid Improper ATOM record substructure id counts 行第 3 个数是子结构数,obabel 写 0 但原子行有 subst_id;按最大 subst_id 重写,并把 subst_id 归一到 1..N 连续(obabel 从 2 起跳会差 1)
4 DOCK 6.11 新必填参数 grid ERROR get_parameter: Unable to get value for allow_non_integral_charges grid.in 加一行 allow_non_integral_charges yes(6.10 教程的参数文件没有此项)
5 obabel mol2 头部空行 grid Unable to find ATOM record GASTEIGER 行后的空行会被 DOCK 老读取器当 status_bits 吃掉下一行标记,删掉该空行
6 晶体省略阳离子氢 antechamber number of electrons is odd (227) PDB FORMUL 写 H19 但坐标只有 18 个 H------PYRIDIN-1-IUM 的 N11--H 被省略;几何法线补 1 个 H,电子数变偶数后 AM1-BCC 正常
7 antechamber 混合残基键感知 配体 mol2 键表散乱(CA/C/CB 全 ANY、零连接),DOCK 报 atom_in_anchor not found no segment CYS+配体两残基同文件时 antechamber 的 bondtype 判定崩;用 obabel mol2 做键级骨架 + BCC 电荷按坐标 (<0.15 Å) 合并
8 dummy 原子所在 segment 必须含 dummy 对 DOCK growth 报 Could not complete growth 确认 D1--D2 之间与 D1--连接原子之间不被 flex.defn 判为可旋转键(Du 类型不匹配任何 rotor 模式,天然安全);排查时先看 covalent.outdummy1/dummy2/connected atom 三行是否正确输出

七、结语

原教程的价值在 covalent 模式的原理拆解(dummy 原子如何锚定共价几何、bondlength 与二面角采样如何驱动生长);

脚 本化的价值在可复现------换体系改 5 个参数,两条命令跑完。两者配合读:先过一遍教程理解 D1/D2 的含义,再用脚本做你自己的体系。

参考来源

关键字:DOCK6;共价对接;covalent docking;脚本化;dummy 原子;AM1-BCC;tleap;分子对接

相关推荐
追风少年ii1 天前
课前准备--3D-QSAR与药物结构优化
数据分析·分子动力学·分子对接·结构生物学
追风少年ii5 天前
课前准备--分子动力学Gromacs参数的详细介绍与选择(一)
数据分析·分子动力学·分子对接·结构生物学
追风少年ii15 天前
课前准备--蛋白建模AlphaFold 2与AlphaFold 3
数据分析·分子动力学·分子对接·结构生物学
追风少年ii1 个月前
课前准备--蛋白质PDB文件与PDBQT文件的格式与区别
数据库·数据分析·分子动力学·分子对接
KJ_BioMed3 个月前
AI驱动药物设计:如何利用Evobind2与AutoDock Vina从头设计高亲和力环肽?
分子对接·生物医药·生物科研·科研干货·科晶生物·环肽药物
KJ_BioMed3 个月前
AlphaFold 3+HDOCK:底层数据算法如何重构植物免疫功能蛋白互作研究?
分子对接·生物科研·科研干货·免疫受体·免疫蛋白
追风少年ii3 个月前
分子对接--3维构象定量关系(3D-QSAR)
数据分析·分子动力学·分子对接
追风少年ii4 个月前
分子动力学--非标残基的处理一(配体)
数据分析·分子动力学·分子对接
追风少年ii5 个月前
分子动力学番外--力场
数据分析·空间·分子动力学·分子对接