ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Autodock Vina 1.2.5 在Linux系统下的完整安装与配置指南

2026/8/3 1:24:46 拓冰建站 浏览量
Autodock Vina 1.2.5 在Linux系统下的完整安装与配置指南 1. 从零开始为什么选择Autodock Vina 1.2.5如果你正在药物设计、生物化学或者计算生物学领域摸索尤其是学生或者刚入行的研究者大概率听说过“分子对接”这个词。简单来说它就像是在电脑里模拟“钥匙开锁”的过程一个小的有机分子配体钥匙如何找到并“插进”一个生物大分子受体锁的活性口袋并稳定地结合。这个过程对于理解药物作用机制、虚拟筛选先导化合物至关重要。而Autodock Vina就是这把“虚拟钥匙”领域里最知名、最易用且完全免费的开源工具之一。我最初接触Vina时市面上已经有更新的版本但实验室的师兄师姐们包括很多公开的教程和文献依然在大量使用1.2.5版本。这不是守旧而是经过时间检验的稳定与可靠。1.2.5版本发布于2010年虽然年头不短但其核心对接算法基于经验的打分函数和高效的局部优化算法非常成熟在准确性、速度和易用性之间取得了很好的平衡。更重要的是围绕它已经形成了极其丰富的生态海量的教程、脚本、图形界面工具如AutoDockTools, PyMOL插件都是基于这个版本构建的。对于新手而言从1.2.5版本入门意味着你遇到的绝大多数问题都能在网上找到现成的解决方案学习曲线会平缓很多。网络上搜索“Autodock vina安装”结果铺天盖地但很多教程要么过于简略跳过了关键细节要么环境复杂容易让新手迷失。特别是结合热搜词来看大家普遍卡在“Python环境配置”、“依赖库安装”这些看似基础却极易出错的前置环节。这篇内容我就以一名过来人的身份带你走一遍在Linux系统以Ubuntu为例上从纯净环境开始完整安装并验证Autodock Vina 1.2.5的全过程。我会把那些教程里通常一笔带过但实际上可能让你折腾半天的“坑”提前标出来并提供经过验证的解决方案。我们的目标不仅是“安装成功”更是“理解每一步在做什么以及为什么这么做”。2. 环境奠基构建一个纯净且可控的Python工作空间在直接动手安装Vina之前我们必须先搭建好它的“地基”——Python运行环境。很多安装失败根源都出在环境混乱上系统自带的Python、自己安装的Python、通过包管理器安装的Python模块混在一起权限冲突、版本不兼容问题层出不穷。因此我强烈建议使用conda来创建一个独立、隔离的虚拟环境。这就像是给你的Vina项目单独准备了一个干净的房间里面所有的家具Python解释器、第三方库都是你指定的版本与房子里的其他房间系统环境或其他项目互不干扰。2.1 Conda的选型与安装Miniconda vs Anacondaconda是一个开源的包管理和环境管理系统。你可能听说过庞大的Anaconda发行版它预装了数百个科学计算包。但对于我们专注于分子对接的场景我更推荐安装Miniconda。它只包含conda、Python和一些核心依赖非常轻量安装包大约50MB之后我们需要什么包再单独安装避免引入大量不必要的包保持环境清爽。你可以从清华大学开源软件镜像站下载Miniconda的安装脚本速度会快很多。# 以Linux系统为例下载适用于Python 3.9的Miniconda安装脚本 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_23.11.0-2-Linux-x86_64.sh下载后运行安装脚本。这里有一个关键点当安装程序询问“Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no]”时建议输入yes。这会让conda自动配置你的shell启动脚本如.bashrc以后每次打开终端conda的基础环境就会自动激活使用conda命令会非常方便。安装完成后需要关闭并重新打开终端或者执行source ~/.bashrc来使配置生效。2.2 创建专属于Vina的虚拟环境环境初始化后我们为Vina创建一个专属环境。这里涉及到Python版本的选择。Autodock Vina 1.2.5虽然年代较早但其源代码用C和Python编写对Python 3有很好的支持。为了避免一些潜在的兼容性问题我们选择一个较新但并非最新的稳定版本比如Python 3.8或3.9。我习惯用3.9。# 创建一个名为vina_env的环境并指定Python版本为3.9 conda create -n vina_env python3.9执行命令后conda会解析依赖关系并列出将要安装的包确认无误后输入y继续。环境创建完成后使用以下命令激活它conda activate vina_env激活后你会发现命令行提示符前面出现了(vina_env)的字样这表示你现在已经进入了这个独立的“房间”所有后续的pip install或conda install操作都只会影响这个环境。注意养成好习惯每次开始进行Vina相关工作时首先在终端运行conda activate vina_env激活环境。结束工作后可以运行conda deactivate退出。2.3 安装核心依赖NumPyVina本身的计算核心是C程序但其配套的脚本和很多前后处理工具如准备配体、受体文件的脚本是用Python写的并且依赖于科学计算基础库NumPy。因此我们需要在虚拟环境中安装它。使用conda安装NumPy可以确保其底层数学库与conda环境更好地集成。# 在激活的vina_env环境中安装numpy conda install numpy至此一个为Vina量身定制的、干净且可控的Python工作空间就准备好了。接下来我们进入核心环节——获取并编译Vina本体。3. 核心编译获取源码与本地构建Autodock Vina是开源软件我们需要下载其源代码并在本地机器上编译成可执行文件。这个过程对于不常接触编译的同学可能有些陌生但只要跟着步骤走其实并不复杂。编译的最大好处是生成的可执行文件是针对你当前电脑的CPU架构优化的通常能获得最佳性能。3.1 获取源代码的两种可靠途径官方源代码托管在GitHub上。我们可以使用git工具克隆仓库或者直接下载稳定版本的源码压缩包。方法一使用git克隆推荐如果你系统里安装了git这是最直接的方法。它能让你方便地切换到特定的发布版本标签。# 克隆Autodock Vina的官方仓库到当前目录 git clone https://github.com/ccsb-scripps/AutoDock-Vina.git cd AutoDock-Vina # 切换到我们需要的1.2.5版本标签 git checkout tags/v1.2.5方法二直接下载源码包如果网络环境使用git不便也可以直接下载对应版本的tar.gz压缩包。我们可以在GitHub仓库的“Releases”页面找到它或者直接使用wget下载。wget https://github.com/ccsb-scripps/AutoDock-Vina/archive/refs/tags/v1.2.5.tar.gz tar -zxvf v1.2.5.tar.gz cd AutoDock-Vina-1.2.5无论哪种方式进入解压后的目录你会看到build、src、test等子目录以及一个非常重要的文件README。在编译前花几分钟阅读README文件的开头部分总是有益的。3.2 配置与编译让Makefile适配你的系统Vina使用CMake作为构建系统生成器。CMake是一个跨平台的安装编译工具它会根据你的系统环境生成对应的Makefile然后我们再用make命令进行编译。首先确保你的系统已经安装了必要的编译工具链gC编译器、make和cmake。在Ubuntu上可以通过以下命令安装sudo apt-get update sudo apt-get install build-essential cmake安装完成后我们开始编译流程。标准的“源代码外构建”是一种好习惯即在源码目录外单独创建一个构建目录这样能保持源码目录的清洁。# 假设当前在AutoDock-Vina-1.2.5源码目录 mkdir build cd build # 使用CMake配置项目其中..表示上一级目录即源码目录 cmake ..执行cmake ..后终端会输出一系列检查信息包括找到的编译器、Boost库等。如果一切顺利最后会显示“Configuring done”和“Generating done”。这个过程可能会遇到一个常见问题找不到Boost库。Boost是一个广泛使用的C库集合Vina依赖其中的program_options和filesystem等组件。如果系统没有安装Boost或者CMake找不到它配置就会失败。解决方案是安装Boost开发库sudo apt-get install libboost-all-dev安装后再次运行cmake ..。成功后运行make命令开始编译make -j4这里的-j4参数表示使用4个CPU核心并行编译可以显著加快速度数字4可以根据你电脑的CPU核心数调整。编译过程会持续一两分钟你会看到大量编译信息滚动。如果最终没有报错并在build目录下生成了一个名为vina或vina.exe在Windows下的可执行文件那么恭喜你核心编译成功了3.3 安装与全局访问让系统认识Vina命令编译生成的vina可执行文件目前只在build目录下。为了方便在任何位置都能调用它我们通常把它安装到系统或用户的标准路径下。最简单的方式是将其复制到conda虚拟环境的bin目录中这样只要该环境被激活vina命令就可用。首先找到你当前conda环境中bin目录的路径# 在激活的vina_env环境中执行 which python这个命令会输出类似/home/username/miniconda3/envs/vina_env/bin/python的路径。其所在的bin目录就是我们的目标路径。然后进行复制# 假设当前在AutoDock-Vina-1.2.5/build目录下 cp vina /home/username/miniconda3/envs/vina_env/bin/请务必将/home/username/miniconda3/envs/vina_env/bin/替换为你实际查询到的路径。复制完成后你可以通过以下命令验证安装是否成功# 确保仍在vina_env环境中 conda activate vina_env # 查询vina版本 vina --help | head -n 5如果成功你会看到Vina 1.2.5的帮助信息头几行其中包含版本号。至此Autodock Vina的核心引擎已经就位。但只有引擎还不够我们还需要准备“燃料”——即用于对接的分子文件。4. 前后处理工具链准备对接的“燃料”Vina引擎本身只负责对接计算。它需要的输入文件是特定格式的受体和配体需要是PDBQT格式。这种格式在标准的PDB文件基础上增加了原子类型A, C, OA, HD等、电荷partial charge和可旋转键的信息。我们通常得到的蛋白结构是.pdb文件小分子可能是.mol2或.sdf文件因此格式转换是必不可少的步骤。虽然官方提供了一些Python脚本但社区更流行的、功能更强大的图形化工具是AutoDockTools (ADT)或者其独立版本MGLTools。4.1 安装MGLToolsAutoDockToolsMGLTools提供了一个图形界面pmv和一系列命令行工具prepare_receptor4.py,prepare_ligand4.py等可以非常方便地完成PDBQT格式的转换。它的安装相对独立。下载访问MGLTools官网下载对应你操作系统Linux的安装包。对于Linux通常是一个.tar.gz文件。解压与安装tar -zxvf mgltools_x86_64Linux2_1.5.7.tar.gz # 版本号可能不同 cd mgltools_x86_64Linux2_1.5.7 ./install.sh安装脚本会询问安装路径默认安装在当前目录下的一个子目录里直接回车即可。配置环境变量为了能在终端方便地调用MGLTools的Python脚本我们需要将其bin目录添加到系统的PATH环境变量中。更稳妥的做法是在conda虚拟环境中添加。 首先找到MGLTools安装目录下的bin文件夹的绝对路径例如/home/username/software/mgltools_x86_64Linux2_1.5.7/bin。 然后我们可以创建一个激活环境时的自动脚本。在conda环境的etc/conda/activate.d/目录下创建一个.sh文件# 在vina_env环境被激活的目录下操作 cd /home/username/miniconda3/envs/vina_env/etc/conda/activate.d/ # 创建脚本文件 echo export PATH/home/username/software/mgltools_x86_64Linux2_1.5.7/bin:$PATH set_mgltools_path.sh chmod x set_mgltools_path.sh这样每次激活vina_env时MGLTools的路径就会被自动添加。你可以通过which prepare_ligand4.py来验证是否配置成功。4.2 准备受体与配体文件假设我们有一个蛋白受体文件receptor.pdb和一个小分子配体文件ligand.mol2。准备受体去除水分子、加氢、计算电荷并输出为PDBQT。prepare_receptor4.py -r receptor.pdb -o receptor.pdbqt -A bonds_hydrogens-A bonds_hydrogens参数会帮助添加氢原子并处理键序。这个过程可能会弹出图形界面让你确认某些操作对于批处理可以使用-U参数来禁止GUI。准备配体同样需要加氢、计算电荷、检测可旋转键。prepare_ligand4.py -l ligand.mol2 -o ligand.pdbqt如果配体来自.sdf文件可能需要先转换成.mol2格式可以使用Open Babel等工具。4.3 准备对接盒子配置文件对接盒子定义了配体在受体周围搜索的空间范围。你需要确定盒子中心的坐标x, y, z和盒子在三个维度上的大小size_x, size_y, size_z。这可以通过分析受体活性口袋来手动确定或者使用像AutoDockTools的图形界面来直观地框选。最终你需要创建一个文本文件例如config.txt来保存这些参数center_x 10.0 center_y 20.0 center_z 15.0 size_x 25.0 size_y 25.0 size_z 25.0 exhaustiveness 8 num_modes 9 energy_range 4exhaustiveness搜索的详尽程度值越高结果越可靠但耗时越长默认是8对于初步测试可以设为低一些如4以加快速度。num_modes输出多少种结合构象。energy_range输出构象与最低能量构象之间的最大能量差kcal/mol。5. 运行对接与结果分析万事俱备现在可以运行对接了。命令格式非常简洁vina --config config.txt --ligand ligand.pdbqt --receptor receptor.pdbqt --out result.pdbqt --log log.txt--config指定盒子配置文件。--ligand和--receptor指定输入文件。--out指定输出文件里面包含了多个对接构象。--log指定日志文件里面记录了对接过程的详细信息包括每个构象的打分结合自由能估计值。运行完成后打开log.txt你会看到类似下面的输出mode | affinity | dist from best mode | (kcal/mol) | rmsd l.b.| rmsd u.b. ------------------------------------- 1 -9.1 0.000 0.000 2 -8.5 1.234 2.567 3 -8.4 1.987 3.012 ...affinity就是预测的结合自由能单位kcal/mol数值越负表示结合可能越强。通常我们认为低于 -5.0 kcal/mol 可能具有结合潜力低于 -7.0 kcal/mol 则结合较强。rmsd l.b.和rmsd u.b.表示该构象与最佳构象mode 1的均方根偏差。结果分析通常需要可视化软件。你可以将对接输出的result.pdbqt文件与原始的受体结构一起导入到PyMOL或ChimeraX等分子可视化软件中。在PyMOL中你可以分别加载受体和对接结果并利用其强大的可视化功能分析氢键、疏水相互作用等关键相互作用直观地判断对接结果的合理性。6. 实战中的常见问题与深度排错即便按照教程一步步走在实际操作中依然可能遇到各种“坑”。下面我梳理了几个最常见的问题及其排查思路这往往是教程里不会细说的部分。6.1 编译失败Boost库的“幽灵”依赖问题描述执行cmake ..时报错提示找不到Boost即使你已经通过apt-get安装了libboost-all-dev。根因分析这通常是因为CMake寻找的Boost组件名称或版本与系统安装的不完全匹配。Ubuntu的libboost-all-dev是元包但CMake有时需要明确找到开发包如libboost-program-options-dev,libboost-filesystem-dev。排查与解决确认开发包已安装运行dpkg -l | grep libboost检查libboost-program-options-dev和libboost-filesystem-dev是否在列表中。如果没有单独安装它们sudo apt-get install libboost-program-options-dev libboost-filesystem-dev指定Boost路径如果已安装但CMake仍找不到可以尝试在cmake命令中手动指定Boost的根目录。首先找到Boost的安装位置whereis boost通常头文件在/usr/include/boost库文件在/usr/lib/x86_64-linux-gnu/。然后使用以下命令配置cmake -DBOOST_ROOT/usr -DBoost_NO_SYSTEM_PATHSON ..使用conda安装Boost一个更干净、避免系统依赖混乱的方法是在conda虚拟环境中安装Boost。在激活的vina_env环境中运行conda install -c conda-forge boost然后在cmake时它会优先找到conda环境中的Boost。6.2 运行时报错GLIBCXX版本不兼容问题描述编译成功但运行vina时出现类似/usr/lib/x86_64-linux-gnu/libstdc.so.6: version \GLIBCXX_3.4.29 not found的错误。根因分析这是因为编译Vina时使用的g编译器版本较高生成的二进制文件依赖新版本的C标准库libstdc.so.6而你当前系统运行时环境中的该库版本较旧。排查与解决检查当前GLIBCXX版本strings /usr/lib/x86_64-linux-gnu/libstdc.so.6 | grep GLIBCXX_查看输出列表里是否有报错信息中要求的版本如GLIBCXX_3.4.29。解决方案A升级系统GCC套件影响全局需谨慎sudo apt-get install gcc-11 g-11 # 安装较新版本例如11 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 sudo update-alternatives --install /usr/bin/g g /usr/bin/g-11 110然后重新编译Vina。新编译器会链接到更新的库。解决方案B静态链接推荐在编译时让Vina将其依赖的C库静态打包进可执行文件避免运行时依赖系统动态库。这是最一劳永逸的方法。在运行cmake时添加静态链接选项cmake -DCMAKE_EXE_LINKER_FLAGS-static-libstdc -static-libgcc ..然后重新make。这样生成的vina文件会稍大一些但可以在几乎所有Linux系统上运行。6.3 对接结果异常所有构象打分都相同或极差问题描述对接运行正常但输出的log文件中所有mode的affinity值都完全一样或者都是正值如5.0这显然是不合理的。根因分析这通常不是Vina安装的问题而是输入文件或参数配置有误。PDBQT文件问题受体或配体的PDBQT文件可能没有正确添加电荷或原子类型。使用grep命令检查PDBQT文件head -20 ligand.pdbqt确保每一行原子记录末尾有电荷数值如0.000并且原子类型如C,OA,HD是合理的。如果电荷全是0说明prepare_ligand4.py或prepare_receptor4.py可能因为输入文件格式问题如缺少氢、键信息不全而失败。盒子配置问题盒子中心(center_x, center_y, center_z)坐标完全错误可能放在了蛋白质外部或远离活性口袋的真空区域。盒子尺寸(size_x, size_y, size_z)过大如超过100Å会导致搜索空间巨大Vina可能无法有效采样过小如小于10Å则可能根本没包含配体。配体初始位置有些工作流中配体初始位置被故意放在盒子中心。如果盒子中心不在活性口袋Vina从那里开始搜索可能很难在有限的步数内找到正确的结合位点。排查与解决可视化验证用PyMOL同时打开受体receptor.pdbqt或原始pdb和盒子中心点可以创建一个只包含中心坐标的pdb文件。确保盒子中心在预期的活性口袋内。检查准备脚本日志重新运行prepare_ligand4.py和prepare_receptor4.py时仔细查看终端输出有无警告WARNING或错误ERROR信息。简化测试使用Vina自带的测试用例或一个已知的、简单的蛋白-配体复合物如HIV蛋白酶-抑制剂重新跑一遍完整流程以确认你的安装和基础操作无误。6.4 MGLTools脚本无法找到或执行错误问题描述在终端输入prepare_ligand4.py提示“command not found”或执行时报Python导入错误。根因分析环境变量PATH未正确设置或者MGLTools的Python环境与你的conda环境冲突。MGLTools自带一个Python解释器其脚本第一行shebang可能指向了它自己的Python路径。排查与解决确认路径已添加echo $PATH检查输出中是否包含MGLTools的bin目录路径。直接使用绝对路径调用这是最可靠的方式。/home/username/software/mgltools_x86_64Linux2_1.5.7/bin/prepare_ligand4.py -l ligand.mol2 -o ligand.pdbqt修改脚本解释器如果希望在任何地方都能调用可以编辑MGLTools的Python脚本将其第一行#!/path/to/mgltools/python修改为你当前conda虚拟环境中Python的绝对路径通过which python获取。但要注意MGLTools可能依赖其自带的特定库修改后可能导致其他错误。更推荐方法2。安装和配置的过程本质上是一个理解软件依赖和系统环境如何交互的过程。遇到问题时耐心阅读错误信息从最基础的依赖开始检查编译器、库、Python环境一步步向上排查你不仅能解决问题更能加深对这套工具链的理解。当你在终端敲下vina --config config.txt ...并看到它开始飞速计算时那种把理论工具成功部署并运转起来的成就感正是科研道路上最实在的乐趣之一。