第1章:Vina简介与安装

大家好,我是你们这门课的主讲。这么多年的分子对接做下来,说实话,能让我一直留在工作流里的工具不多,AutoDock Vina 算一个。今天我们就从最基础的开始,聊聊这东西的来历、它能干什么,以及怎么把它装到你的电脑上。

1.1 起源:为什么会有Vina?

在Vina出来之前,AutoDock 4 是主流。我最早接触分子对接那会儿,用的就是 AD4。怎么说呢,功能很强大,但有个问题——跑得太慢了。一个对接任务扔下去,有时候能等上一杯咖啡的时间。而且它的评分函数用的是基于经验的线性回归,参数调起来非常敏感。

后来 Scripps 研究所的 Olson 实验室觉得,嗯,得做个更快、更准、更方便的版本。于是 2010 年,AutoDock Vina 诞生了。它的核心开发者是 Oleg Trott,这位大佬把全局搜索和局部优化的算法做了大幅改进。

Vina 的设计理念很明确:

  • 速度至上——能同时利用多核 CPU,计算效率比 AutoDock 4 提升 1-2 个数量级。
  • 结果可重复——同样的输入,同样的参数,每次跑出来的结果是确定的。这一点在对接中极其重要。
  • 使用简单——一条命令就能跑对接,配置文件也是纯文本格式。

我们做药物设计时经常需要跑大批量的对接,Vina 这种自带多线程的特性,说白了就是为我们省时间用的。我记得有一次跑一个包含 5000 个小分子的虚拟筛选,AD4 得跑两天一夜,换成 Vina 只用了不到 6 个小时。从那以后,我就再也没回去用过 AD4 做常规对接了。

1.2 功能:它能帮你做什么?

Vina 的核心功能,说白了就一个字——"放"。把小分子放到蛋白质的活性口袋里,然后算算这个姿势好不好,能量低不低。

具体来说,Vina 主要做这几件事:

  • 分子对接:把配体小分子对接到受体的结合位点上,生成多种可能的结合构象。
  • 结合自由能估算:对每个生成的构象打分,分数越低通常代表结合越强。但注意,这个分数不是真正的自由能,只是一个代理值。
  • 多构象输出:默认生成 9 个结合模式,你可以调整数量,最多可以输出几十上百个。
  • 柔性侧链对接:可以指定受体中个别侧链做柔性处理,模拟"诱导契合"效应。
  • 批量虚拟筛选:配合脚本,可以对数千个小分子进行自动化对接。

我个人习惯,在项目初期先用 Vina 做一次快速筛选,把排名靠前、打分低的化合物挑出来,再用更精确的分子动力学模拟去验证。这样效率最高,资源也花得值。

核心要点:Vina 是一个兼顾速度与准确度的开源分子对接工具。它适合做大规模虚拟筛选,但不适合用来做需要极高精度的结合自由能预测(那是另一个层次的事)。

经验之谈:如果你做的是一个全新的靶点,手里没有已知活性配体做验证,我建议你先跑一轮"反向对接"——把一个已知的阳性配体对接到不同的晶体结构上,看看哪个结构能给出最合理的结合模式。这样能提前发现很多问题。

下面这张图展示了 Vina 的核心工作流程,从输入准备到输出分析,每个环节都紧密相连。

AutoDock Vina 核心工作流程 ① 输入文件准备 ② 搜索空间设置 ③ 全局优化搜索 ④ 评分函数打分 ⑤ RMSD 聚类 ⑥ 输出多构象 各环节说明 ① 准备受体 (pdbqt) 和配体 (pdbqt) 文件 ② 设定盒子中心坐标和尺寸,划定对接区域 ③ Vina 使用迭代局部搜索 (Iterated Local Search) 算法 ④ 基于经验力场对每个构象进行结合自由能估算 ⑤ 按 RMSD 值将相似构象归为一类,选出代表性构象

你看这个流程,从文件准备到输出结果,其实每一步都有参数可以调。这也是为什么我专门开这门课的原因——很多人装了 Vina 就直接用默认参数跑,结果有时候好,有时候莫名其妙差,却不知道问题出在哪。

1.3 安装方法

Vina 的安装非常简单。我甚至觉得,它可能是所有分子对接软件里最容易装的一个。没有复杂的依赖关系,不需要编译第三方库,下载解压就能用。

1.3.1 Linux 系统安装

Linux 是 Vina 的原生环境,也是我个人最推荐的使用平台。不管是 Ubuntu、CentOS 还是 Debian,方法都差不多。

第一步:下载二进制文件

去官方 GitHub 仓库(这里不贴链接了)下载对应架构的压缩包。大部分时候选 x86_64 版本。

wget https://github.com/example/vina/releases/v1.2.5/vina_1.2.5_linux_x86_64.tar.gz
tar -xzf vina_1.2.5_linux_x86_64.tar.gz
cd vina_1.2.5_linux_x86_64

第二步:设置环境变量

我建议你把可执行文件放到 /usr/local/bin 或者加到 PATH 里,方便全局调用。

sudo cp vina /usr/local/bin/
# 或者添加到 bashrc
echo 'export PATH=$PATH:/path/to/vina_1.2.5_linux_x86_64' >> ~/.bashrc
source ~/.bashrc

第三步:验证安装

vina --version

如果能正常输出版本号,说明装好了。我曾经遇到过一个问题——系统缺少 libstdc++.so.6 的某些依赖,运行时会报错说找不到共享库。这种情况通常安装一下 libstdc++ 或者 gcc 的运行时库就能解决。

1.3.2 Windows 系统安装

很多做药物设计的同行用的是 Windows 环境。Windows 上运行 Vina 有两种方式:直接使用编译好的 exe,或者通过 WSL(Windows Subsystem for Linux)来跑。

方法一:直接使用 exe 文件

下载 Windows 版本的 zip 包,解压后得到 vina.exe。我习惯把它放到一个专门放工具的目录,比如 C:\tools\vina\,然后把路径加到系统环境变量 PATH 里。

加到 PATH 之后,打开 PowerShell 或者 CMD,输入:

vina --version

看到版本号就代表成功了。

方法二:通过 WSL 运行

如果你需要用到 Vina 配套的脚本工具(比如 prepare_receptor4.py 等),我推荐用 WSL。这些脚本原本是为 Linux 写的,虽然也能在 Windows 上跑,但 Linux 环境下处理文件路径和权限更顺畅。

避坑指南:我曾经在 Windows 上遇到过路径分隔符的问题。Vina 的配置文件里需要指定绝对路径,如果你用的是反斜杠 \,一定要记得换成正斜杠 / 或者写双反斜杠 \\,否则可能会找不到文件。

1.3.3 macOS 系统安装

macOS 和 Linux 同属 Unix 系,安装方式几乎一样。推荐用 Homebrew 来安装,方便后续更新和维护。

# 方法一:从 GitHub 下载
wget https://github.com/example/vina/releases/v1.2.5/vina_1.2.5_macos_x86_64.tar.gz
tar -xzf vina_1.2.5_macos_x86_64.tar.gz
sudo cp vina /usr/local/bin/

# 方法二:通过 Homebrew
brew install brewsci/bio/autodock-vina

我个人比较喜欢用 Homebrew 的方式,因为升级的时候一条命令就搞定了。注意如果你的 Mac 是 M1/M2 芯片,要确保下载的是 arm64 版本的二进制文件,或者用 Rosetta 2 转译运行 x86_64 版本。

1.4 安装验证与小测试

装好之后,我建议你跑一个简单的自带的例子,确认所有功能正常工作。

# 进入解压目录下的 example 文件夹
cd example
# 执行对接测试
vina --receptor 1iep_receptor.pdbqt --ligand 1iep_ligand.pdbqt --config conf.txt --log log.txt --out output.pdbqt

跑完后检查 log.txt 文件,里面应该有每个构象的分数和 RMSD 信息。如果你看到类似这样的内容:

mode |   affinity | dist from best mode
     | (kcal/mol) | rmsd l.b.| rmsd u.b.
-----+------------+----------+----------
   1 |   -7.5     |   0.000  |   0.000
   2 |   -7.2     |   1.234  |   2.456
...

恭喜你,Vina 已经正常运行了。

注意:Vina 本身只提供对接功能,不提供文件格式转换工具。你需要额外安装 MGLTools(ADT)或者用 OpenBabel 来把 PDB 文件转换成 pdbqt 格式。这两种工具我在后续章节里会详细讲怎么安装和使用。

操作系统 推荐安装方式 注意事项
Linux (Ubuntu/Debian/CentOS) 直接下载二进制 / 源码编译 检查 libc 和 libstdc++ 版本
Windows exe 文件 + PATH 环境变量 注意路径使用正斜杠;建议配合 WSL
macOS (Intel / Apple Silicon) Homebrew 安装 / 下载二进制 Apple Silicon 需适配 arm64 版本