2、AutoDock 工具套件安装与配置:在 Linux 与 Windows 下把环境搭起来

开始做虚拟筛选之前,得先把吃饭的家伙装好。AutoDock 套件主要包括三个部分:

  • AutoDock 4.2 —— 核心计算引擎,做对接用的
  • AutoDockTools (ADT) —— 图形前端,用来准备配体、受体,看结果
  • MGLTools —— 底层工具包,ADT 就运行在它上面

这三样东西怎么装?说实话,网上教程很多,但有些坑我踩过好几次。这章我带你一步步走,尽量避开那些折腾人的地方。

2.1 安装前看一眼依赖环境

不管你是 Windows 还是 Linux,先确认这几个东西到位了:

  • Python 2.7 —— MGLTools 目前还只支持 Python 2,别用 Python 3
  • Java Runtime —— ADT 的界面需要 Java
  • 编译器 —— Linux 下需要 gcc,Windows 下可以用 MinGW 或 Cygwin

我一开始就在这卡过。 当年装了个 Python 3.x 上去,结果 ADT 死活打不开,查了半天才发现 MGLTools 对 Python 2 有依赖。所以老老实实先装 Python 2.7。

2.2 Windows 下安装:一步步来,别跳步骤

Windows 下的安装其实比 Linux 更直观,但有几个细节容易忽略。

2.2.1 下载与安装 Python 2.7

1. 去 Python 官网下载 Python 2.7.18 (最后一个 2.x 版本)
2. 安装时勾选 "Add Python to PATH"
3. 完成安装后在 cmd 里验证:
   python --version
   # 应该显示 Python 2.7.18

嗯,这里要注意:PATH 一定要加。我见过有人装完后在命令行打 python 提示不是内部命令,就是没勾那个选项。重装一次就好了。

2.2.2 安装 MGLTools

MGLTools 包含了 ADT 所有依赖。从官网下载 Windows 版 .exe 安装包,双击一步步点就行。默认路径建议保留:

C:\Program Files (x86)\MGLTools-1.5.7

装完后记得去安装目录下看看,确认有这些文件夹:

MGLTools-1.5.7/
├── Python27/         # 自带的 Python 环境
├── Lib/              # 库文件
├── Scripts/          # 启动脚本
└── ADT/              # AutoDockTools 图形界面

2.2.3 安装 AutoDock 4.2 可执行文件

AutoDock 4.2 本身是个命令行程序,没有图形界面。在 Windows 下,你需要下载预编译的 .exe 文件。

下载后解压,放到方便的位置,比如:

C:\AutoDock\autodock4.exe
C:\AutoDock\autogrid4.exe

把这两个路径加到系统 PATH 里,这样以后在 cmd 里直接敲 autodock4 就能运行。

核心思路:AutoDock 4.2 和 AutoGrid 4 是两个独立的程序。
AutoGrid 用来算格点文件(.gpf -> .glg),AutoDock 用来做对接(.dpf -> .dlg)。
后面跑筛选的时候,这两个命令会频繁用到。

2.2.4 启动 ADT 图形界面

安装完 MGLTools 后,找到启动脚本:

C:\Program Files (x86)\MGLTools-1.5.7\adt.bat

双击运行,应该能看到 ADT 的主窗口弹出来。如果没反应,多半是 Java 环境没配好。

我曾经遇到过:双击 adt.bat 后快速闪一下就没动静了。后来在 cmd 里手动执行才发现是 Java 版本问题。ADT 需要 Java 8 或更高版本,如果装了 Java 11 以上的版本,某些组件可能不兼容。建议装 Java 8。

2.3 Linux 下安装:灵活但要注意权限

我个人习惯用 Ubuntu 20.04 LTS 做筛选。Linux 下装这些工具,说白了就是解压 + 配置 PATH。先搞定 Python 2.7:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install python2.7 python2.7-dev

# 创建一个软链接方便调用
sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2

2.3.1 安装 MGLTools

下载 Linux 版 MGLTools,解压到 /opt 目录下:

tar -xzf mgltools_1.5.7_Linux-x86_64.tar.gz
sudo mv mgltools_x86_64Linux_1.5.7 /opt/mgltools-1.5.7
cd /opt/mgltools-1.5.7
./install.sh

install.sh 脚本会自动配置 Python 环境和依赖。装完后,启动 ADT 的方式是:

/opt/mgltools-1.5.7/ADT/adt

你想想看,每次都输全路径太麻烦了。我建议把 ADT 加到系统菜单里,或者至少写个 alias 到 .bashrc 里:

# 编辑 ~/.bashrc 加入下面这行
alias adt='/opt/mgltools-1.5.7/ADT/adt'
source ~/.bashrc
adt    # 现在直接敲 adt 就能启动了

2.3.2 编译安装 AutoDock 4.2 源码

AutoDock 4.2 提供了源码,Linux 下最好自己编译。为什么要自己编译?因为预编译的二进制在一些新系统上会有 glibc 版本问题,我碰过好几次段错误。

# 安装编译依赖
sudo apt-get install build-essential gfortran

# 下载 autodocksuite 源码,解压到 ~/autodock_source
cd ~/autodock_source
tar -xzf autodocksuite-4.2.6.tar.gz
cd autodocksuite-4.2.6/src

# 编译 autogrid4
cd autogrid4
make
sudo cp autogrid4 /usr/local/bin/autogrid4

# 编译 autodock4
cd ../autodock4
make
sudo cp autodock4 /usr/local/bin/autodock4

# 验证
autodock4 --version
autogrid4 --version

这里有个细节:编译时如果报错找不到 gfortran,多半是系统里没装 Fortran 编译器。apt-get install gfortran 就能搞定。我在 CentOS 上遇到过 gfortran 版本太老,建议用 Ubuntu 20.04 或更高版本。

2.4 环境验证——装完得试试能不能用

装完不等于能用。我习惯每次装好后都跑一个最小测试:用提供的 demo 配体受体跑个单分子对接。

执行下面这组命令,确认所有组件工作正常:

# 找一个 demo 配体文件 (如 1dth 的配体)
# 1. 准备配体文件
prepare_ligand4.py -l ligand.pdb -o ligand.pdbqt
# 输出: ligand.pdbqt

# 2. 准备受体文件
prepare_receptor4.py -r receptor.pdb -o receptor.pdbqt
# 输出: receptor.pdbqt

# 3. 生成格点参数文件
prepare_gpf4.py -l ligand.pdbqt -r receptor.pdbqt
# 输出: receptor.gpf

# 4. 运行 autogrid
autogrid4 -p receptor.gpf -l receptor.glg
# 输出: receptor.glg

# 5. 生成对接参数文件
prepare_dpf4.py -l ligand.pdbqt -r receptor.pdbqt
# 输出: ligand.dpf

# 6. 运行 autodock
autodock4 -p ligand.dpf -l ligand.dlg
# 输出: ligand.dlg

如果这些步骤都顺利跑完,没有报段错误或者“command not found”,那基本就可以说环境配好了。

我曾经在这里踩过大坑:有次编译好 autodock4 后,直接跑大任务,跑了两天才发现中间有节点因为 PATH 没配好用了旧版本,结果数据全废了。所以每次配好环境后,一定跑个最小测试,确认所有路径指向正确的版本。

2.5 本章知识体系速览

为了让整个安装流程和工具关系更清楚,我画了一张流程图。你看一眼就能明白每个模块怎么搭在一起:

AutoDock 套件安装与配置体系 操作系统:Windows / Linux MGLTools 1.5.7 (Python 2.7 + ADT 运行环境) AutoDock Tools (图形前端 / 可视化) AutoDock 4.2 (对接引擎 / 命令行) 依赖:Python 2.7 Java 8 / gcc gtk2 / libglade 核心组件 ADT 图形界面 PyMOL 插件支持 编译产物 autodock4 autogrid4 下载安装包 → 解压 ./install.sh → 启动 make → sudo cp 最小验证:prepare + autogrid + autodock ligand.pdbqt → receptor.gpf → receptor.glg → ligand.dpf → ligand.dlg 💡 配置 PATH 是关键 Windows 加系统环境变量 | Linux 写到 ~/.bashrc 或 ~/.profile 里

2.6 安装汇总速查表

写一个表格,把你平时需要记住的信息全列出来,以后配新机器可以直接翻这一页:

工具 版本 安装方式 关键路径 / 命令
Python 2.7.18 官网下载 / apt-get /usr/bin/python2.7
MGLTools 1.5.7 下载 → 解压 → ./install.sh /opt/mgltools-1.5.7
AutoDock 4.2 4.2.6 源码编译 / 预编译 exe /usr/local/bin/autodock4
AutoGrid 4 4.2.6 源码编译 / 预编译 exe /usr/local/bin/autogrid4
ADT (图形前端) 1.5.7 (随 MGLTools) 随 MGLTools 自动安装 adt.bat / adt 脚本启动

2.7 常见问题与避坑

最后说几个我实际遇到过的问题,你遇到类似情况可以少走弯路。

问题 1:ADT 打不开,终端报 jvm.dll 相关的错。
原因:Java 版本不对或 PATH 里没加 Java。我遇到过装 Java 17 后 ADT 直接挂掉。解决方案:装 Java 8,把 JAVA_HOME 和环境变量配好。

问题 2:编译 autodock4 时报 fortran 编译器的错。
原因:少装了 gfortran 或版本太旧。在新版 Ubuntu 上一般 apt-get install gfortran 就能解决。CentOS 上可能需要安装 devtoolset。

问题 3:跑对接时出现段错误 (Segmentation fault)。
原因:90% 的情况是用预编译二进制在 glibc 不兼容的系统上。我之前在 CentOS 7 上用过 CentOS 6 编译的 autodock4,一运行就崩。解决方案:从头用源码编译一份。