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 本章知识体系速览
为了让整个安装流程和工具关系更清楚,我画了一张流程图。你看一眼就能明白每个模块怎么搭在一起:
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,一运行就崩。解决方案:从头用源码编译一份。