第4章 源码下载:从官方 GitHub 仓库获取 Vina 及 ADFR 工具包的正确方式
要说装 Vina 的第一步,不是急着找编译命令,而是先把源码搞到手。你去网上随便搜,能出来一堆「一键安装包」或者「绿色版」。但我劝你,源码这东西,一定要从官方仓库拿。为啥?你想想看,非官方渠道的代码鬼知道有没有被改过,跑出来的结果你敢往论文里写吗?
这一章我就带你走一遍正规流程。从 GitHub 上把 Vina 和 ADFR 工具包稳稳当当地下载下来。我自己的习惯是,所有工具链都从官方源头拿,这样后面出问题才知道往哪儿追查。
https://github.com/ccsb-scripps 官方组织仓库下载。其他个人 fork、第三方打包站、镜像站(除非你确认真伪)一律不推荐。
4.1 官方仓库在哪?记住这两个地址
Vina 和 ADFR 属于同一个课题组——Scripps 研究所的 CCSB 团队。他们在 GitHub 上有一个组织账号,所有工具都放在下面。你只需要记住两个仓库:
| 工具包 | GitHub 仓库 | 主要用途 |
|---|---|---|
| AutoDock Vina | ccsb-scripps/AutoDock-Vina |
分子对接主程序,含 vina、vina_split 等 |
| ADFR 工具包 | ccsb-scripps/ADFR |
受体与配体预处理、pdbqt 格式转换、盒子生成 |
打开浏览器,直接访问这两个地址就好。不过我建议你不要直接在网页上下载 ZIP,后面我会说为什么。
curl -I 看一眼仓库是否可达。尤其你在内网或者用代理的时候,这一步能帮你快速定位网络问题。
4.2 选择正确的版本:稳定版 vs 开发版
进了仓库,你会看到一堆 tag 和 branch。新手最容易犯的错——直接 clone 了 main 或者 develop 分支。结果编译的时候报一堆莫名其妙的依赖错误。
为什么会这样?因为 main 分支有时候处于「正在开发中」的状态,可能依赖了最新的 Boost 或者 OpenCV 版本,你的系统根本装不上。
我的建议:永远从 tag 拉稳定版。
Vina 目前的稳定版是 v1.2.5(截至本章写作时)。ADFR 的最新 release 是 v1.0。怎么看?
# 查看所有 tag(按版本排序)
git ls-remote --tags https://github.com/ccsb-scripps/AutoDock-Vina.git
# 或者直接去 GitHub 页面点 "Releases" 侧边栏
# 稳定版一般会标记为 "Latest release"
我个人习惯把 tag 列表存下来,跟 release notes 对照着看。有一次我差点下了 v1.2.0,结果发现有个已知的批处理 bug,幸好多看了一眼 release notes。
4.3 下载方式:git clone 还是 ZIP?
GitHub 页面上有个绿色的 "Code" 按钮,点开给两个选项:HTTPS 克隆 和 下载 ZIP。选哪个?
| 方式 | 优点 | 缺点 |
|---|---|---|
git clone |
完整 Git 历史,方便切 tag、回滚、对比改动 | 需要安装 Git,初次下载略慢(尤其大仓库) |
| 下载 ZIP | 不用 Git,一次搞定 | 没有版本信息,无法切分支,重下载需重新解压 |
我选 git clone。 你想想看,后面你编译遇到问题,可能需要切到某个特定 commit 验证 bug,或者拉最新的 hotfix。这时候 ZIP 就完全帮不上忙了。
具体命令如下:
# 克隆 Vina 稳定版(指定 tag)
git clone --branch v1.2.5 --depth 1 https://github.com/ccsb-scripps/AutoDock-Vina.git
# 克隆 ADFR 工具包
git clone --branch v1.0 --depth 1 https://github.com/ccsb-scripps/ADFR.git
注意我加了 --depth 1,这叫「浅克隆」。它只拉取最新版本的代码,不会下载整个 Git 历史。对于安装来说完全够用,还能省流量。
cd AutoDock-Vina && git fetch --tags && git checkout v1.2.6,不用重新下载整个仓库。
4.4 验证下载的完整性
代码下载完了,怎么确保它是完整的、没被篡改过的?官方在每个 release 里都会附上 SHA256 校验值。你下载完了算一遍,对得上就行。
# 进入仓库目录
cd AutoDock-Vina
# 计算整个仓库的校验和(或者针对特定压缩包)
find . -type f -exec sha256sum {} \; | sort | sha256sum
# 去 GitHub Release 页面找到官方提供的 checksum
# 对比是否一致
说实话,这一步很多人会跳过。但我建议你至少做一次。我以前在某个镜像站下过被改过的源码包,里面被插了广告脚本。虽然 Vina 本身不联网,但养成校验的习惯没坏处。
git clone 拉的代码,Git 本身已经通过 commit hash 保证了代码的完整性。只要你信任官方仓库,基本不需要额外校验。但如果你是从浏览器下载的 ZIP,一定要检查 checksum。
4.5 目录结构速览
下载完成后,我建议你先花两分钟看看目录长什么样。心里有个数,后面编译才不会迷路。
AutoDock-Vina/
├── build/ # CMake 构建目录(初次 clone 可能不存在)
├── src/ # 核心源代码
│ ├── main/ # 主程序入口
│ ├── lib/ # 依赖库封装
│ └── split/ # vina_split 工具
├── docs/ # 文档
├── examples/ # 示例文件
├── CMakeLists.txt # 顶层 CMake 配置
├── LICENSE # 开源协议(Apache 2.0)
└── README.md # 快速上手说明
ADFR/
├── bin/ # 编译后的二进制(预编译或自己编)
├── src/ # 源码
├── scripts/ # Python 辅助脚本
├── CMakeLists.txt # CMake 配置
└── README.md
两个仓库都是 CMake 工程。你不需要深入每一个文件,但至少要知道 src/ 和 CMakeLists.txt 在哪儿——下一章编译的时候会反复跟它俩打交道。
4.6 整体流程:一图看清
下面这张图总结了我刚才讲的全部流程。从打开浏览器到源码就绪,每一步都走官方渠道。以后你装别的工具也可以套用这个思路。
4.7 本章小结
到这里,Vina 和 ADFR 的源码应该已经在你的硬盘上了。我们来快速回顾一下关键点:
- 官方仓库地址:
ccsb-scripps/AutoDock-Vina和ccsb-scripps/ADFR - 版本选择:认准稳定版 tag,不要用
main或develop - 下载方式:优先
git clone --depth 1 --branch [tag] - 完整性校验:ZIP 下载必须做,git clone 可做可不做
- 目录结构:重点记住
src/和CMakeLists.txt的位置
BUILD_INFO.txt,记录下 tag 名、下载时间、系统环境。以后出问题对照着看,排查会快很多。