AutoDock Vina 是 Scripps 研究所开发的免费开源对接程序,2010 年首发、2021 年发布 1.2 版。它是虚拟筛选事实上的入门标配:单个分子对接通常几秒到几十秒,评分函数简单稳健,脚本化容易,几乎所有对接教程都从它开始。
安装
# 方式一:Python 接口(推荐,便于批量脚本化)
pip install vina meeko
# 方式二:预编译二进制
# 从 GitHub ccsb-scripps/AutoDock-Vina releases 下载对应平台的包
vina --version
Vina 1.2 起原生支持多种打分函数(--scoring vina|vinardo|ad4)和 Python API。若只做批量命令行筛选,二进制版更省事;要嵌进 Python 流程,用 pip 版的 vina.Vina 类。
受体与配体准备
# 受体:补残基/去水,再转 PDBQT
python -m openmm.app # 或用 PDBFixer 补缺失原子
mk_prepare_receptor.py -i receptor.pdb -o receptor -p # Meeko ≥0.5
# 配体:从 SMILES 生成 3D 并转 PDBQT
mk_prepare_ligand.py -i ligand.sdf -o ligand.pdbqt
准备阶段是绝大多数错误的来源,顺序是:删水与无关杂原子 → 保留必要辅因子/金属 → 补缺失重原子(PDBFixer)→ 按目标 pH 加氢定质子化态 → 转 PDBQT。组氨酸质子化态和催化位点的水分子是否保留,往往直接改变结果。
定义盒子并对接
vina --receptor receptor.pdbqt --ligand ligand.pdbqt \
--center_x 11.2 --center_y 23.4 --center_z -5.7 \
--size_x 22 --size_y 22 --size_z 22 \
--exhaustiveness 32 --num_modes 9 --seed 42 \
--out out.pdbqt --log out.log
| 参数 | 建议值 | 说明 |
|---|---|---|
| 盒子中心 | 共晶配体质心 | 有共晶结构时最可靠;否则用 fpocket 等口袋检测结果 |
| 盒子尺寸 | 配体最长径 + 8~10 Å,常见 20~25 Å | 过小切掉正确姿势,过大稀释搜索、增噪 |
exhaustiveness |
初筛 8,精化 32~64 | 越大越稳但越慢,近似线性 |
seed |
显式固定 | 不固定则结果不可复现 |
先做重对接验证,再信任任何新结果
把共晶结构里的原配体取出、重新对接回去,看能否复现晶体姿势。判据是重原子 RMSD ≤ 2.0 Å;做不到就说明准备或盒子有问题,此时对新分子的结果毫无意义。这一步只花几分钟,却能挡掉大部分「跑完了但全是错的」情况。
批量筛选的脚本骨架
from vina import Vina
v = Vina(sf_name="vina", seed=42)
v.set_receptor("receptor.pdbqt")
v.compute_vina_maps(center=[11.2, 23.4, -5.7], box_size=[22, 22, 22])
for name, pdbqt in ligands: # 预先批量生成好的 PDBQT
v.set_ligand_from_file(pdbqt)
v.dock(exhaustiveness=8, n_poses=5)
print(name, round(v.energies()[0][0], 2)) # kcal/mol,越负越好
十万级以上的库建议先用配体高效性、性质规则和指纹相似性做预过滤,再对接;对接本身可用 GNU parallel 或作业调度器横向铺开,每个进程绑一个核。
怎么读 Vina 的分数
- 输出单位是 kcal/mol 的估算结合自由能,越负越好;常见活性分子落在 −7 到 −11 之间,但绝对值不可当亲和力用。
- 评分函数天然偏好大分子和高疏水性分子。比较不同大小的分子时,看每重原子的分数(配体高效性)比看原始分数公平。
- Vina 分数与实测 IC50 的相关性通常很弱(不少体系里 Pearson r 只有 0.3~0.5)。它的正确用法是粗筛排序 + 姿势假设生成,而不是排名预测。
- 想提升排序质量,用 Vinardo 打分、GNINA 的 CNN 重打分,或对 top 分子上 MM/GBSA、FEP 逐级精化。
上手提示
- 顺序永远是:准备结构 → 重对接验证(RMSD ≤ 2 Å)→ 才做新分子;
- 盒子中心与尺寸、质子化态是最高频的错误来源,比选打分函数重要得多;
- 固定
seed与exhaustiveness才能复现,报告结果时把这两个参数一起写上; - 把 Vina 当筛子而不是尺子:它擅长把十万缩到几百,不擅长告诉你哪个更强。
延伸资源
- 论文与方法背景:097《AutoDock Vina 论文精读》、098《AutoDock Vina 1.2》;打分函数的局限见 095《Docking Score》;
- 准备工具:214《Meeko》、215《PDBFixer》;相互作用分析:207《ProLIF》、208《PLIP》;
- 进阶重打分与深度学习对接:183《GNINA》、184《DiffDock》;教程见 017《AutoDock Vina 教程》。