2.2 · 分子对接基础与 PyMOL 可视化
理解分子对接的原理,掌握"蛋白准备 → 配体准备 → Grid Box 设置 → Vina 对接 → 结果评价 → PyMOL 可视化"的完整流程,能独立完成至少 3 组"核心靶点-活性成分"对接并输出结合模式图。
0. 小白导读:分子对接到底是什么?
分子对接(Molecular Docking)是网络药理学论文的"第二张王牌图"。用大白话说:
- 蛋白(受体) = 一把"锁",上面有个"锁孔"(活性口袋/结合位点)。
- 小分子(配体) = 一把"钥匙",也就是中药活性成分。
- 分子对接 = 计算机模拟"钥匙插进锁孔"的过程,算出这把钥匙和这把锁合不合、结合得牢不牢。
一个贯穿本章的比喻——钥匙与锁:
-
受体(蛋白) = 锁。我们要研究的靶点蛋白(如 AKT1)。
-
配体(小分子) = 钥匙。中药活性成分(如丹参酮IIA)。
-
活性口袋 = 锁孔。蛋白上药物结合的那块区域。
-
结合能 = "钥匙和锁的契合度评分"。分数越低(越负),说明结合越牢。
-
氢键/疏水作用 = 钥匙和锁之间的"卡扣"。卡扣越多,钥匙越不容易掉出来。
分子对接要回答的核心问题:这个中药成分,能不能"插进"这个靶点蛋白的"锁孔",并且插得够牢?
为什么学它? 网络药理学找到核心靶点后,论文通常会再用分子对接"验证"一下:成分和靶点是不是真的能结合。对接图是中药 SCI 论文的高频配图,学会它,你的论文"证据链"就完整了。
一句话总结:分子对接 = 用计算机模拟"小分子-蛋白"结合,用结合能判断结合强弱,再用 PyMOL 画出结合模式图。
1. 分子对接原理
1.1 三个核心概念
分子对接软件要做三件事,对应三个概念:
| 概念 | 英文 | 通俗解释 |
|---|---|---|
| 构象搜索 | Conformational Search | 钥匙(配体)怎么转、怎么摆,才能插进锁孔?软件会尝试成千上万种姿势 |
| 打分函数 | Scoring Function | 给每种姿势打分——这个姿势结合得好不好? |
| 结合自由能 | Binding Free Energy | 打分的结果,通常以 kcal/mol 为单位,越负代表结合越强 |
比喻:构象搜索 = 你拿着钥匙试各种角度;打分函数 = 每试一次就感觉"顺不顺手";结合自由能 = 最终得出"这把钥匙和锁的匹配度评分"。
1.2 对接的"刚柔"之分
- 刚性对接:蛋白锁孔形状固定不变,只有配体在动。速度快,是网络药理学最常用的方式。
- 柔性对接:蛋白侧链也可以动。更真实但极慢,一般不用在批量筛选上。
网络药理学论文里的对接基本都是刚性对接(配体柔性、受体刚性),用 AutoDock Vina 即可完成。
1.3 工具选择
| 工具 | 用途 | 说明 |
|---|---|---|
| AutoDock Vina | 运行对接 | 当前稳定版 v1.2.7(2025 年发布);免费、命令行运行、可批量 |
| AutoDockTools (ADT) | 蛋白/配体预处理 | 属于 MGLTools 套件(当前 1.5.7),生成 PDBQT 文件 |
| Open Babel | 格式转换 | 当前版本 3.1.1;SDF/MOL2/PDB/SMILES 互转 |
| PyMOL | 可视化 | 当前稳定版 3.1.x;画结合模式图 |
| Discovery Studio | 二维图 | 生成 2D 相互作用图(可选) |
️ 注意版本:AutoDock Vina 目前最新稳定版是 1.2.7,并没有发布 2.x 正式版。网上有些教程写的"Vina 2.0"是开发中版本,别被误导。
2. 蛋白受体准备

2.1 下载蛋白结构:RCSB PDB
- 地址:https://www.rcsb.org/
- 操作:搜索目标蛋白(按名称 / UniProt ID / 序列)→ 选择实验结构(X 射线晶体、冷冻电镜或 NMR)→ 下载 PDB 格式文件。
选结构的要点:
-
优先选分辨率高的(resolution 越小越好,如 < 2.5 Å)。
-
优先选含配体的结构(能帮你确定活性口袋位置)。
-
记录 PDB ID(如 AKT1 的 1UNQ),论文里要写。
2.2 蛋白预处理(AutoDockTools)
下载的 PDB 原始文件不能直接对接,需要预处理。用 AutoDockTools(ADT)完成:
- 去水:Remove water(水分子会干扰对接,一般去掉)。
- 去配体:Remove ligand(把原结构里的小分子配体删掉,因为我们要对接自己的分子)。
- 加氢:Add H(补上氢原子)。
- 加电荷:Compute Gasteiger charges(计算 Gasteiger 电荷)。
- 保存为 PDBQT:ADT 会把蛋白保存成对接专用的 PDBQT 格式。
️ PDBQT 是什么? 对接软件专用的文件格式,在 PDB 基础上加了原子类型和电荷信息。蛋白和配体都必须转成 PDBQT 才能对接。
2.3 确定活性口袋
活性口袋(锁孔)的位置决定对接搜索范围。确定方法:
- 方法一(最常用):如果原蛋白结构里有共结晶配体,把配体所在位置作为口袋中心。
- 方法二:查阅文献,看该蛋白的已知结合位点氨基酸。
- 方法三:用在线工具(如 CASTp、DoGSiteScorer)预测口袋。
比喻:活性口袋 = 锁孔的位置。找不到锁孔,钥匙就不知道该往哪插。
3. 小分子配体准备
3.1 获取配体结构
- 来源一:TCMSP 数据库直接下载成分的 MOL2/SDF 结构。
- 来源二:PubChem(https://pubchem.ncbi.nlm.nih.gov/)搜索成分名,下载 SDF 或 SMILES。
3.2 配体预处理(Open Babel)
- 格式转换:用 Open Babel 把 SDF/MOL2 转成 PDBQT 需要的格式。
- 加氢:补上氢原子(pH 7.4 生理条件下的质子化状态)。
- 能量优化:生成合理的 3D 构象(配体初始构象会影响对接结果)。
Open Babel 命令行示例(把 SDF 转成 PDBQT):
# 把配体 SDF 转成 PDBQT(加氢、加电荷) obabel ligand.sdf -O ligand.pdbqt --partialcharge gasteiger -p 7.4
Windows 用户:Open Babel 有图形界面(Open Babel GUI),也可以命令行使用。记不住参数没关系,教程里复制即可。
4. AutoDock Vina 对接
4.1 准备 Grid Box
Grid Box 是"搜索范围框"——告诉 Vina"在这个框里找钥匙插锁孔的最佳姿势"。
- 用 AutoDockTools 打开蛋白 PDBQT → Grid → Macromolecule → 选择蛋白。
- 把框的中心对准活性口袋。
- 设置框的大小(Grid Box size),一般 20-30 Å 见方,能罩住整个口袋即可。
- 记录框的中心坐标和尺寸(对接配置文件里要用)。
️ Grid Box 是新手最容易翻车的点:框没罩住口袋,对接结果就是"钥匙插错地方",结合能毫无意义。务必确认框的中心在口袋中心。
4.2 编写 Vina 配置文件
Vina 通过一个文本配置文件(conf.txt)运行对接:
receptor = receptor.pdbqt ligand = ligand.pdbqt center_x = 20.5 center_y = 15.3 center_z = 10.8 size_x = 25 size_y = 25 size_z = 25 exhaustiveness = 8 num_modes = 9 out = out.pdbqt
参数说明:
| 参数 | 含义 | 常用值 |
|---|---|---|
center_x/y/z |
搜索框中心坐标 | 从 ADT 复制 |
size_x/y/z |
搜索框尺寸(Å) | 20-30 |
exhaustiveness |
搜索彻底程度(越大越准越慢) | 8-32 |
num_modes |
输出多少个结合姿势 | 9 |
4.3 运行对接
vina --config conf.txt
运行完成后,out.pdbqt 里包含多个结合姿势(mode),每个姿势有对应的结合能。
4.4 批量对接(可选)
网络药理学常需要"多个成分 × 多个靶点"批量对接。Vina 1.2.x 支持多配体对接,也可以写循环脚本批量运行:
# 批量对接示例(Windows PowerShell / Linux bash 均可改造) for ligand in *.pdbqt; do vina --config conf.txt --ligand "$ligand" --out "result_${ligand%.pdbqt}.pdbqt" done
入门阶段:先手动完成 3 组对接(3 个成分 × 1 个靶点),跑通流程后再学批量。
5. 对接结果评价
5.1 结合能阈值
Vina 输出的结合能(affinity)单位是 kcal/mol,越负越好。常用经验阈值:
| 结合能(kcal/mol) | 结合强度 | 论文中的处理 |
|---|---|---|
| ≤ -10 | 极强结合 | 非常理想 |
| -7 ~ -10 | 强结合 | 理想,成药潜力高 |
| -5 ~ -7 | 中等结合 | 可接受,需结合其他证据 |
| ≥ -5 | 弱/无意义结合 | 一般不用 |
️ 重要提醒:这些阈值是经验值,不同论文标准不一。网络药理学论文常用 < -5 kcal/mol 视为有一定结合活性、< -7 kcal/mol 视为结合较强。写论文时说明"以结合能 < -7.0 kcal/mol 作为强结合标准(经验阈值)"即可。
5.2 结合模式分析
结合能只是"总分",还要看结合模式(钥匙和锁是怎么扣上的):
| 相互作用 | 通俗解释 | 论文里的意义 |
|---|---|---|
| 氢键 | 钥匙和锁之间的"磁吸卡扣" | 最重要的相互作用,标注残基(如 Arg-84) |
| 疏水作用 | 钥匙和锁"互相排斥水"贴合在一起 | 稳定结合的贡献者 |
| π-π 堆积 | 芳香环之间的"面对面贴合" | 常见于含苯环的药物 |
比喻:结合能是"总分",氢键/疏水是"扣分项明细"。论文里既要报总分(结合能),也要画明细(结合模式图)。
5.3 结果表格
论文里对接结果通常做成一张表:
| 成分 | 靶点 | PDB ID | 结合能 (kcal/mol) | 氢键残基 |
|---|---|---|---|---|
| 丹参酮IIA | AKT1 | 1UNQ | -9.2 | Arg-84, Glu-85 |
| 隐丹参酮 | AKT1 | 1UNQ | -8.5 | Ser-205 |
| 丹酚酸B | TP53 | 1TUP | -7.8 | His-179 |
6. PyMOL 可视化

6.1 PyMOL 是什么?
PyMOL 是分子三维可视化的"行业标准",把对接结果画成漂亮的结合模式图。
- 官网:https://pymol.com/
- 当前版本:3.1.x(2026 年更新)
- 注意:PyMOL 只能画三维图,不能直接生成二维相互作用图(二维图用 Discovery Studio 或 PLIP,见第 7 节)。
6.2 基本操作
- 打开文件:File → Open,加载蛋白 PDBQT/PDB 和对接结果 out.pdbqt。
- 显示蛋白:选中蛋白 → 用 Cartoon(卡通)显示,配体用 Sticks(棍状)显示。
- 显示口袋表面:选中配体周围残基 → Surface(表面)。
- 标注氢键:利用 PyMOL 的 Distance 工具或插件(如 H-bonds),把配体和蛋白残基之间的氢键画成虚线。
- 美化出图:调整颜色、背景(白色/透明)、光照 → 保存 PNG 图片(分辨率 300 dpi 以上)。
常用 PyMOL 命令示例:
# 载入蛋白和配体 load receptor.pdbqt, rec load out.pdbqt, lig # 显示风格 hide everything show cartoon, rec show sticks, lig # 显示口袋附近残基(配体 5 Å 内) select pocket, rec within 5 of lig show sticks, pocket # 标注氢键(配体与口袋残基之间) distance hb, lig, pocket, mode=2
6.3 论文配图要求
- 至少包含:蛋白卡通结构 + 配体棍状结构 + 关键残基标注 + 氢键虚线。
- 通常做 2-3 张:全景图、口袋特写图、氢键标注图。
- 分辨率 300 dpi,背景白或透明。
一张合格的结合模式图 = 蛋白(卡通)+ 配体(棍状)+ 关键残基(棍状+标签)+ 氢键(虚线)+ 清晰图注。
7. Discovery Studio 二维相互作用图
PyMOL 画的是三维图,论文里还常配一张二维相互作用图(把氢键、疏水作用画成平面示意图)。
- Discovery Studio(商业软件)的 Ligand Interactions 功能可以一键生成二维图。
- 免费替代:PLIP(https://plip-tool.biotec.tu-dresden.de/plip-web/plip/index)在线工具,上传蛋白+配体即可生成二维相互作用图。
没有 Discovery Studio 授权? 用 PLIP 在线工具即可,效果类似且免费。
8. 完整流程案例
以"丹参酮IIA 对接 AKT1"为例,走一遍完整流程:
| 步骤 | 操作 | 结果 |
|---|---|---|
| ① 下载蛋白 | RCSB PDB 搜 AKT1,选高分辨率结构,下载 PDB | 得到 1UNQ.pdb |
| ② 蛋白准备 | ADT:去水、去配体、加氢、加电荷 → 存 PDBQT | 得到 receptor.pdbqt |
| ③ 确定口袋 | 用原配体位置作口袋中心,记录坐标 | 中心 (20.5, 15.3, 10.8) |
| ④ 配体准备 | TCMSP 下载丹参酮IIA 结构,Open Babel 转 PDBQT | 得到 ligand.pdbqt |
| ⑤ 设置 Grid Box | ADT 设置框大小 25×25×25,对准口袋 | 完成框设置 |
| ⑥ 运行对接 | vina --config conf.txt | 得到 out.pdbqt,结合能 -9.2 kcal/mol |
| ⑦ 结果评价 | 看结合能、选最佳姿势、分析氢键 | 最佳姿势 mode 1 |
| ⑧ PyMOL 出图 | 卡通+棍状+残基标注+氢键虚线 | 得到结合模式图 |
| ⑨ 二维图 | PLIP 生成二维相互作用图 | 得到 2D 图 |
论文"一句话解读"模板:
"分子对接结果显示,丹参酮IIA 与 AKT1 的结合能为 -9.2 kcal/mol,通过 Arg-84、Glu-85 形成氢键及疏水相互作用稳定结合,提示丹参酮IIA 可能直接作用于 AKT1 发挥药效。"
9. 常见坑
| 坑 | 表现 | 解决办法 |
|---|---|---|
| Grid Box 没罩住口袋 | 结合能异常高(如 -2) | 重新确认口袋中心,放大框 |
| 蛋白没去水/去配体 | 对接结果被原配体干扰 | 预处理时务必去水、去原配体 |
| 配体没加氢 | 结合模式不合理 | 用 Open Babel 加氢(pH 7.4) |
| 文件格式不对 | Vina 报错 | 蛋白和配体都必须转成 PDBQT |
| 结合能阈值乱用 | 把 -4 说成"强结合" | 记住:< -7 才算较强,阈值是经验值 |
| PyMOL 找不到氢键 | 图里没有虚线 | 用 Distance 工具或 H-bonds 插件手动标注 |
| 下载的 PDB 有多个链 | 对接对象混乱 | 只保留目标链(如 A 链) |
10. 练习与交付物
练习(必须亲手做)
- 蛋白准备:从 RCSB PDB 下载一个靶点蛋白(如 AKT1、TP53、TNF),用 ADT 完成预处理。
- 配体准备:从 TCMSP/PubChem 下载 3 个中药活性成分结构,用 Open Babel 转成 PDBQT。
- 对接:完成 3 组"靶点-成分"对接,记录结合能。
- 评价:按阈值判断结合强弱,选出最佳结合姿势。
- 可视化:用 PyMOL 画出结合模式图(含残基标注、氢键)。
- 二维图:用 PLIP 生成二维相互作用图。
交付物(验收标准)
完成至少 3 组"核心靶点-活性成分"分子对接,输出:
-
结合能表(成分、靶点、PDB ID、结合能、氢键残基)
-
PyMOL 结合模式图 ≥ 3 张(带关键氨基酸残基标注)
-
二维相互作用图(可选加分项)
11. 速查表
工具速查
| 用途 | 工具 | 地址/版本 |
|---|---|---|
| 蛋白结构下载 | RCSB PDB | https://www.rcsb.org/ |
| 蛋白/配体预处理 | AutoDockTools (ADT) | MGLTools 1.5.7 |
| 格式转换 | Open Babel | 3.1.1 |
| 分子结构 | PubChem | https://pubchem.ncbi.nlm.nih.gov/ |
| 运行对接 | AutoDock Vina | v1.2.7 |
| 三维可视化 | PyMOL | 3.1.x |
| 二维相互作用图 | Discovery Studio / PLIP | https://plip-tool.biotec.tu-dresden.de/ |
关键参数速查
| 参数 | 常用值 | 说明 |
|---|---|---|
| Grid Box 尺寸 | 20-30 Å | 罩住活性口袋 |
| exhaustiveness | 8-32 | 越大越准越慢 |
| num_modes | 9 | 输出姿势数 |
| 结合能阈值 | < -5 有活性;< -7 较强 | 经验值 |
| 蛋白分辨率 | < 2.5 Å | 越优 |
对接流程速查
RCSB PDB 下载蛋白 → ADT 去水/去配体/加氢/加电荷 → PDBQT TCMSP/PubChem 下载配体 → Open Babel 加氢/转格式 → PDBQT ADT 设置 Grid Box(对准口袋)→ vina --config conf.txt → out.pdbqt 评价结合能 → PyMOL 画结合模式图 → PLIP 画二维图