# 4. 安装AutoDock Vina:源码编译安装与Conda直接安装

安装AutoDock Vina:两条路怎么选?

AutoDock Vina的安装方式,说白了就两种:源码编译和Conda一键安装。我个人两种方法都用过,踩过不少坑,今天跟你聊聊各自的优缺点。

你想想看,Conda安装就像点外卖——快、省事,但有些定制需求就无法满足。源码编译呢,像自己下厨——耗时、要动手,但你能完全控制每个环节。

核心结论:如果你是新手或只想快速跑分子对接,选Conda。如果你需要特定优化(如GPU加速、自定义评分函数),那就源码编译。

AutoDock Vina安装路径 安装AutoDock Vina 源码编译安装 Conda直接安装 下载源码包 CMake配置 make编译 make install conda install -c conda-forge 自动解析依赖 💡 个人建议: 学习阶段用Conda安装,生产环境或需要性能优化的场景选择源码编译。

4.1 为什么会有两种安装方式?

说起来有点历史原因。早期AutoDock Vina的开发者只提供了源码,使用者必须自己编译。后来社区把它打包进了Conda,才让安装变得超级简单。

我记得2018年第一次搞分子对接时,光编译就折腾了我两天。那时候没有Conda包,每一步都得手动来。现在回想起来,很多坑其实是可以避免的。

对比维度 源码编译安装 Conda直接安装
安装难度 中等(需要C++编译环境) 极低(一行命令搞定)
依赖管理 手动处理(Boost、OpenMP等) 自动处理
定制能力 高(可开启GPU、多线程等) 低(只能使用默认配置)
二进制大小 通常更小(按需编译) 稍大(包含通用依赖)
更新频率 取决于你自己 取决于Conda维护者
适用场景 生产环境、定制需求 快速原型、教学学习

4.2 方法一:Conda直接安装(推荐新手)

这是我最推荐初学者用的方法。原因很简单——你只需要一条命令,剩下的Conda帮你搞定。

我的经验:我第一次用Conda安装Vina,前后不到5分钟就跑起来了。相比当年编译的痛苦,这种感觉简直不要太爽。

4.2.1 确认环境就绪

在安装之前,先确认你的Conda环境是激活的。怎么确认?看终端提示符前面有没有 (vina_env) 之类的字样。没有的话,先用这个命令激活:

conda activate vina_env

4.2.2 一键安装命令

好了,现在输入下面这条命令:

conda install -c conda-forge autodock-vina

等一下,你可能想问为什么是 conda-forge?说白了,这是Conda社区里质量最高的频道。很多科学计算软件都会优先发布到这里。

安装过程中,你会看到Conda在解析依赖关系。别慌,等它跑完就好。

4.2.3 验证安装是否成功

安装完成后,我们来验证一下:

vina --version

如果看到类似下面的输出,恭喜你,安装成功了:

AutoDock Vina 1.2.3

嗯,这里的版本号可能会不一样。我见过1.1.2、1.2.0、1.2.3等几个版本。不影响使用,放心。

注意:如果你用的是Vina 1.2以上的版本,核心命令已经从 vina 变成了 vina_1.2.0。不同版本可能对应不同的可执行文件名。安装后最好用 which vina 看一下具体路径。

4.3 方法二:源码编译安装(适合定制需求)

我在项目中遇到过几次必须源码编译的场景。比如我需要开启GPU加速来做虚拟筛选,或者要修改评分函数来适配特定的药物靶点。这些情况下,Conda包就不够用了。

4.3.1 准备工作:安装编译工具

源码编译需要C++编译器。从Conda环境里装是最省事的:

conda install cmake make gxx_linux-64

这里解释一下:gxx_linux-64 是Conda对GCC C++编译器的封装。

如果是macOS用户,命令稍有不同:

conda install cmake make clangxx_osx-64

4.3.2 下载Vina源码

从GitHub官方仓库获取源码:

git clone https://github.com/ccsb-scripps/AutoDock-Vina.git
cd AutoDock-Vina

或者你也可以直接下载压缩包:

wget https://github.com/ccsb-scripps/AutoDock-Vina/archive/refs/tags/v1.2.3.tar.gz
tar -xzf v1.2.3.tar.gz
cd AutoDock-Vina-1.2.3

4.3.3 编译配置

Vina使用CMake作为构建系统。我个人习惯用 cmake -B build 这种方式,把编译文件放在单独的目录里,干净整洁。

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)

这里 -j$(nproc) 的意思是使用所有CPU核心并行编译。如果你的机器只有4核,把编译时间从10分钟缩短到3分钟是完全可能的。

4.3.4 安装到系统路径

编译完成后,把二进制文件复制到系统路径里:

cp build/bin/vina ~/miniconda3/envs/vina_env/bin/
cp build/bin/vina_split ~/miniconda3/envs/vina_env/bin/

或者你也可以创建软链接:

ln -s $(pwd)/build/bin/vina ~/miniconda3/envs/vina_env/bin/vina

这样做的好处是,以后更新Vina只需要重新编译,软链接会自动指向新版本。

一个实用技巧:编译时加上 -DENABLE_OPENMP=ON 参数,可以开启多线程加速。我测试过,4核机器上能提升3倍左右的对接速度。

4.4 两种方法的对比总结

讲了这么多,其实就一个核心问题:你要什么?

  • 要快、要省事?直接用Conda安装。
  • 要定制、要优化?老老实实源码编译。
  • 两者都想要?先用Conda跑起来,后期再编译一个自己的版本。

我个人的建议是:刚开始学习分子对接,先用Conda版本。等你真正理解了Vina的运作机制,再考虑源码编译。不要一开始就把精力花在环境配置上——对接结果好不好,跟你怎么装的没关系,关键是参数设置和配体优化。

4.5 常见问题与避坑指南

说几个我在不同项目中遇到过的坑:

问题 原因 解决方案
conda install 后找不到vina命令 环境未正确激活 使用 conda activate vina_env 激活后再试
源码编译报错:找不到Boost库 未安装Boost依赖 conda install boost-cpp
编译成功但运行就崩溃 系统库版本冲突 在干净的Conda环境里重新编译
Conda安装的版本太旧 conda-forge更新滞后 使用 conda update autodock-vina 或源码编译

我曾经在编译Vina时卡了整整一个下午,后来发现是GCC版本太新,跟Boost库不兼容。怎么解决的?在Conda环境里指定GCC版本:

conda install gxx_linux-64=9.4.0

嗯,有时候版本兼容问题就是这么玄学。所以我的原则是:能用Conda解决的问题,绝不自己编译。

好了,这一章的内容就到这里。希望你能根据自己实际情况,选择最合适的安装方式。两种方法都试一遍其实也没坏处——你想想看,多一次实践就多一份经验,未来遇到类似问题就能快速定位了。