第3节:Vina安装与命令行基础

这一节咱们来干点实在的——把Vina装到你的机器上,再跑通第一个对接命令。我个人习惯先把环境理清楚再动手,免得后面折腾半天发现路径不对、缺库、权限炸了。嗯,这活儿我至少帮五个师弟擦过屁股,所以今天我把坑都提前填上。

3.1 安装前的准备

Vina是个C++写的命令行工具,依赖不多,但有几个前提你得先检查。

项最低要求我遇到过的坑
操作系统Linux / macOS / Windows(WSL)Windows原生cmd跑Vina会路径乱码
CPUx86_64,支持SSE2老服务器上缺SSE4.2,编译慢死
内存≥2GB大体系4GB以下直接OOM
编译器GCC ≥4.8 或 Clang ≥3.4macOS用Clang没问题,别用老Xcode

安装方式有两种:直接下预编译二进制,或者从源码编译。说白了,省心就下编译好的,想自己改参数就编译。

3.2 预编译二进制安装(推荐新手)

去官方GitHub Release页面下载对应系统的压缩包。解压后里面只有一个可执行文件 vina(或 vina.exe),放哪儿都行。我习惯把它丢进 ~/bin/ 或者 /usr/local/bin/。

# Linux 64位
wget https://github.com/ccsb-scripps/AutoDock-Vina/releases/download/v1.2.3/vina_1.2.3_linux_x86_64
chmod +x vina_1.2.3_linux_x86_64
sudo mv vina_1.2.3_linux_x86_64 /usr/local/bin/vina

# macOS (Intel)
wget https://github.com/ccsb-scripps/AutoDock-Vina/releases/download/v1.2.3/vina_1.2.3_mac_x86_64
chmod +x vina_1.2.3_mac_x86_64
sudo mv vina_1.2.3_mac_x86_64 /usr/local/bin/vina

# macOS (Apple Silicon) – 需要自己编译,或者用Rosetta跑Intel版

小经验:放进去之后执行 vina --version,看到版本号就说明路径对了。我曾经把文件丢进 /usr/bin/ 但权限没改,直接报“Permission denied”,后来加个 chmod +x 就搞定了。

3.3 从源码编译

你如果想自己调优化参数、加调试信息,或者用一些非官方分支的功能,那编译是必经之路。我不建议新人一上来就编译,但如果你跟我一样控制欲强,那就跟着来。

# 1. 克隆仓库
git clone https://github.com/ccsb-scripps/AutoDock-Vina.git
cd AutoDock-Vina

# 2. 进入build目录,用cmake配置
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release

# 3. 编译(-j后面是并行线程数,别超过你CPU核数)
make -j4

# 4. 编译好的可执行文件在 build/bin/vina
echo "export PATH=$PATH:$(pwd)/bin" >> ~/.bashrc
source ~/.bashrc

编译过程中可能会报缺Boost库,尤其是老系统。我踩过一次RHEL 6的坑,系统自带Boost版本太低,cmake直接报错。解决办法就是用包管理器装新版本:

# Ubuntu/Debian
sudo apt install libboost-dev libboost-system-dev libboost-thread-dev

# CentOS/RHEL
sudo yum install boost-devel

注意:Vina 1.2.x 以后统一用了CMake,老版本的 configure 脚本已经废弃。你如果在网上搜到 ./configure && make,那是七八年前的旧教程,别照着做。

3.4 命令行快速入门

安装完毕,咱们先跑个最简单的例子。Vina的标准输入是三个文件:受体(receptor)、配体(ligand)和搜索空间(conf)。输出是一个或多个对接构象。

vina --receptor 1iep_receptor.pdbqt \
     --ligand 1iep_ligand.pdbqt \
     --out output.pdbqt \
     --center_x 15.0 --center_y 20.0 --center_z 10.0 \
     --size_x 20 --size_y 20 --size_z 20 \
     --exhaustiveness 8

解释一下关键参数:

  • --receptor:受体PDBQT文件,必须先用ADT或prepare_receptor4.py转换好。
  • --ligand:配体PDBQT文件,支持多构象(多个分子写在同一个文件里)。
  • --center_x/y/z:搜索框中心坐标,单位埃。
  • --size_x/y/z:搜索框尺寸。别设太小,容易漏掉结合位点。
  • --exhaustiveness:搜索彻底度。默认8,越大越慢但越可能找到全局最优。我一般做筛选用8,精修用32。
  • --out:输出文件名。格式自动识别后缀,.pdbqt 是标准,.sdf 或 .mol2 也支持。

核心思想:Vina只负责对接,不负责质量。你的PDBQT文件要是错的,对接结果再好看也没用。我见过有人拿着未加氢的受体直接跑,RMSD能低到0.3,但那是假的。记住:预处理比对接本身更花时间,也更重要。

3.5 常用参数调优选项

下表列出了我用得最多的几个参数,以及我个人的推荐范围。

参数默认值我的推荐适用场景
--exhaustiveness88~32越大越准,但耗时线性增长
--num_modes95~20输出多少个构象
--energy_range3.02.0~5.0只保留多少kcal/mol以内的构象
--seed随机固定整数值你想要可复现结果时用
--cpu所有核心4~8服务器上别把CPU吃满,给其他任务留口饭

举个具体例子,我跑虚拟筛选时常用这组参数:

vina --receptor target.pdbqt \
     --ligand library.pdbqt \
     --out screened.pdbqt \
     --center_x 10.5 --center_y -2.3 --center_z 5.0 \
     --size_x 22 --size_y 22 --size_z 22 \
     --exhaustiveness 16 \
     --num_modes 5 \
     --energy_range 4.0 \
     --seed 42 \
     --cpu 4

用固定seed可以确保多次跑同样的库得到完全相同的打分排序。这在写论文或者排查bug时特别有用。你想想看,如果不固定seed,每次结果都不一样,你怎么跟审稿人解释?

3.6 输出文件解读

Vina输出的PDBQT文件里会包含多个模型(MODEL ... ENDMDL)。每个模型的分值写在REMARK行里:

REMARK VINA RESULT:      -9.5      0.000      0.000
MODEL 1
ATOM      1  N4  UNL     1     -12.345   6.789   1.234  1.00  0.00    N  LIG
...
ENDMDL

第一列 -9.5 是打分(kcal/mol),越负越好。第二、三列是RMSD相对于第一个构象的偏移量,通常0就代表是第一个构象本身。我习惯用Python脚本把打分和构象提取出来做后续分析,后面章节会详细讲。

3.7 Linux环境下的一个小坑——路径带空格

我曾经帮一个同事调试,他的受体文件叫“my receptor.pdbqt”,里面有个空格。Vina直接把它当成两个参数,结果报“找不到文件 my”。解决办法很简单:用引号包起来,或者用反斜杠转义。

# 错误
vina --receptor my receptor.pdbqt

# 正确
vina --receptor "my receptor.pdbqt"
# 或者
vina --receptor my\ receptor.pdbqt

另外,如果你在Windows上用WSL,路径要用Linux风格,比如 /mnt/c/Users/xxx/...,别用 C:\ 那样的格式。

3.8 快速测试:跑一个内置样例

Vina源码包里自带了一个测试用例,你编译完或者下完二进制后可以直接试:

# 进入源码目录下的 test/example
cd test/example

# 运行(假设vina已在PATH里)
vina --receptor 1iep_receptor.pdbqt \
     --ligand 1iep_ligand.pdbqt \
     --out example_out.pdbqt \
     --center_x 15.0 --center_y 20.0 --center_z 10.0 \
     --size_x 20 --size_y 20 --size_z 20 \
     --exhaustiveness 8 --num_modes 9

正常情况下几分钟就能跑完,终端会打印出每个构象的打分和RMSD。你打开 example_out.pdbqt 看看,里面应该有9个MODEL。

检查是否安装成功:你可以在终端输入 which vina,如果返回了路径就说明安装没问题。另外 vina --help 可以列出所有参数,我初期记不住选项时全靠它。

3.9 本章知识结构图

下面这张图概括了从安装到跑通测试的完整流程,以及命令行参数的核心关系。

Vina 安装与命令行流程 选择安装方式 预编译二进制 源码编译 验证安装:vina --version 准备PDBQT文件 设置 --center / --size 运行对接命令 参数调优:exhaustiveness num_modes, seed, cpu 固定seed可复现