第二章:Vina 安装——在 Linux、Windows、macOS 下的完整配置

安装 AutoDock Vina,听起来就是个「解压即用」的事。早些年我因为版本选错,折腾了整整两天——嗯,那时候刚入门,连可执行文件的权限都没给。其实背后没那么玄乎,三个系统的安装逻辑几乎一样,只是包管理和路径设置各有点小脾气。我个人习惯先下载官方二进制,再配环境变量,这样最稳。

核心原则:Vina 是纯命令行工具,不依赖图形库。安装本质就是——把可执行文件放到 PATH 里。

2.1 安装前准备:你手上需要哪些东西?

动手之前,先确认三样东西:

  • 操作系统版本:64 位(x86_64),我碰见过有人在 32 位老系统上硬跑,直接报「Exec format error」。
  • Python 3.8+(可选,但后续批次检查脚本会用到)。
  • OpenBabel 或 pymol(用来处理配体/受体格式,非必须,但早晚用得上)。

为什么强调这个?之前有个团队在 CentOS 6 上装 Vina 1.2.3,跑起来一直段错误,后来发现是系统 glibc 版本太老。我建议先跑一下 ldd --version,glibc ≥ 2.17 基本安全。

2.2 Linux 安装步骤(最推荐,也最省心)

Linux 下的安装,我见过最快的记录是 2 分钟。来吧:

  1. 下载二进制包。到官方 GitHub Release 页面(AutoDock-Vina Releases),找到 vina_1.2.5_linux_x86_64 之类的最新版。
  2. 解压到目标目录。我习惯放 /opt/vina/ 或 ~/software/vina。
  3. 添加 PATH。
# 下载示例(以 v1.2.5 为例)
wget https://github.com/ccsb-scripps/AutoDock-Vina/releases/download/v1.2.5/vina_1.2.5_linux_x86_64.tar.gz
tar xzf vina_1.2.5_linux_x86_64.tar.gz
sudo mv vina_1.2.5_linux_x86_64 /opt/vina

# 添加至 PATH(每条命令二选一)
echo 'export PATH="/opt/vina:$PATH"' >> ~/.bashrc
source ~/.bashrc

# 验证
vina --version

避坑指南:解压后记得给执行权限。我遇到过直接 tar 出来文件没 x 位的,跑 chmod +x /opt/vina/vina 解决。

输出应该类似:

AutoDock Vina v1.2.5

如果报错 cannot execute binary file,八成是架构不匹配。用 uname -m 确认是 x86_64。

2.3 Windows 安装步骤(两种路线)

Windows 用户我推荐两种方案,各有利弊。我自己现在用 WSL,体验几乎和原生 Linux 一样。

路线 A:原生 Windows 可执行文件

  1. 下载 vina_1.2.5_win64.exe(其实是个自释放的 ZIP,双击解压)。
  2. 把解压出的 vina.exe 放到一个不含空格的路径,比如 C:\vina\。
  3. 将 C:\vina 加入系统环境变量 PATH(“系统属性”→“环境变量”→编辑 PATH → 新建)。
  4. 打开 cmd,输入 vina --version 测试。

注意:Windows 版 vina.exe 依赖 VC++ 运行库。如果提示缺少 DLL,去微软官网安装「Visual C++ Redistributable for Visual Studio 2015-2022」即可。

路线 B:WSL 2(我强烈推荐)

WSL 下你是真的在跑 Linux,跟后续的批次脚本完全兼容。步骤:

  1. 启用 WSL 2(微软官方教程很详细)。
  2. 安装 Ubuntu 22.04 LTS。
  3. 在 WSL 终端里按 Linux 流程走。

实测 WSL 下的 Vina 性能几乎没有损耗。我做大规模虚拟筛选时都在 WSL 里跑。

2.4 macOS 安装步骤

macOS 我用的少,但每次帮同事配基本都是这套流程。Apple Silicon(M 系列)和 Intel 两种架构要区分开。

  1. 下载对应二进制:vina_1.2.5_macos_x86_64(Intel)或 vina_1.2.5_macos_arm64(Apple Silicon)。
  2. 放到 /usr/local/bin:
# 示例:ARM 架构
curl -L -o vina.tar.gz https://github.com/ccsb-scripps/AutoDock-Vina/releases/download/v1.2.5/vina_1.2.5_macos_arm64.tar.gz
tar xzf vina.tar.gz
sudo mv vina_1.2.5_macos_arm64/vina /usr/local/bin/
sudo chmod +x /usr/local/bin/vina

小经验:macOS 从 Catalina 开始,/usr/local/bin 可能不存在,先 sudo mkdir -p /usr/local/bin。

验证:

vina --version

如果 macOS 提示「无法验证开发者」,去「系统偏好设置→安全性与隐私→通用」里点「仍要打开」。

2.5 环境配置与 PATH 验证

不管哪个系统,最终都得保证终端能直接找到 vina。我常用下面这套脚本快速验证环境是否就绪:

# 验证 vina 可执行
which vina && vina --version || echo "Vina 未在 PATH 中找到"

# 查看 vina 位置(方便后续脚本引用)
readlink -f $(which vina)

输出示例:

/opt/vina/vina
AutoDock Vina v1.2.5

多版本共存:如果你是老用户,机器上同时有 v1.1.2 和 v1.2.5,我建议用 alias vina125='vina' 配合不同路径,避免混淆。

2.6 初次运行:测试安装是否正常

装完别急着走。我习惯用 Vina 自带的范例跑一次快速测试:

# 下载测试数据(官方 examples 目录)
wget https://github.com/ccsb-scripps/AutoDock-Vina/raw/refs/heads/develop/test/1iep_receptor.pdbqt
wget https://github.com/ccsb-scripps/AutoDock-Vina/raw/refs/heads/develop/test/1iep_ligand.pdbqt

# 运行对接(预置配置足够简单)
vina --receptor 1iep_receptor.pdbqt \
     --ligand 1iep_ligand.pdbqt \
     --center_x 15.0 --center_y 15.0 --center_z 15.0 \
     --size_x 20 --size_y 20 --size_z 20 \
     --exhaustiveness 8 \
     --out test_out.pdbqt

如果几秒后生成 test_out.pdbqt,恭喜——环境没问题。我曾经因为 OpenCL 冲突导致卡住,但那是 Vina-GPU 的事,CPU 版一般不会。

2.7 打包 & 权限:别被 SELinux 坑了

Linux 服务器上常遇到 SELinux 或 AppArmor 拦截。表现为:vina --version 正常,但跑任务时输出全是 Bus error。

我的解决套路:

# 检查 SELinux 状态
getenforce

# 临时关闭(仅测试)
sudo setenforce 0

# 若正常,则需给 vina 二进制放行(永久方案)
sudo semanage fcontext -a -t bin_t /opt/vina/vina
sudo restorecon -v /opt/vina/vina

重要:生产环境不可直接 setenforce 0,上面是调试用的,确认问题后就改回 enforcing 并配置安全策略。

2.8 安装对比一览表

我把三个系统安装的关键差异整理成了表格,方便对照:

操作系统 二进制名称 推荐安装位置 常见坑点
Linux vina /opt/vina/ 或 ~/bin/ 缺少执行权限、glibc 版本过低
Windows(原生) vina.exe C:\vina\ 或带空格的路径 VC++ 运行库缺失、路径含空格导致脚本崩溃
Windows(WSL) vina(Linux 二进制) WSL 内 /usr/local/bin/ WSL 版本需为 2,否则性能大幅下降
macOS Intel vina /usr/local/bin/ Gatekeeper 拦截、路径不存在
macOS ARM vina /usr/local/bin/ Rosetta 2 不必要,选 arm64 版更稳定

2.9 本章知识体系图

一张图概括 Vina 安装全流程:

AutoDock Vina 安装流程总览 确认系统与依赖 下载对应平台二进制 解压并移入 PATH 目录 配置 PATH / 别名 运行 vina --version & 简单对接 ✓ 安装完成 Linux Windows / WSL macOS 避坑提醒 • 64位系统必须确认 • 路径不要含空格 • 权限 + SELinux 放行

2.10 最后的叮嘱

安装本身不难。但如果你在集群上部署,记得用 module load 或者 conda 环境隔离。我个人习惯把 vina 放在 /opt/vina 后,再建个 vina1.2.5 的符号链接,方便以后版本切换。

嗯,装完之后打开终端敲个 vina --version,看到那个熟悉的版本号,心里就踏实了。准备好这一步,后面做批次一致性检查才不会被环境问题绊倒。