公司动态
Ubuntu 20.04 下 Amber22 GNU 版编译安装完整指南
这次我们来看 Amber22 的编译安装目标系统是 Ubuntu 20.04编译版本是 GNU 版。如果你在物理、化学、材料、生物医药这类方向做分子动力学模拟应该对 Amber / AmberTools 不陌生。它是一套功能很全的分子动力学模拟软件包含搭建体系、跑 MD、轨迹分析、结合自由能计算等一系列模块。官方推荐在 Linux 下使用Ubuntu 20.04 是很多课题组和计算节点还在用的系统配合 GNU 编译器gcc/g/gfortran编译是兼容性最高、最容易在通用 x86 服务器上复现的一条路径。先说结论Amber22 的 GNU 版编译难度集中在依赖包是否完整、编译器版本是否满足要求、源码目录是否正确解压这三件事上。只要把环境装对了后面就是./configure gnu、make -j4、make install三步走。本文会从环境准备、源码获取、configure 参数选择、编译安装、测试验证到常见报错排查完整走一遍流程。整个过程不需要 GPU纯 CPU 也能完成如果你的节点上有 NVIDIA GPU后面也可以单独扩展 CUDA 版本文会说明扩展思路。1. 核心能力速览项目能力项说明软件名称Amber22 AmberTools22编译版本GNUgcc / g / gfortran支持系统Linux本文使用 Ubuntu 20.04核心功能分子动力学模拟、体系构建、轨迹分析、配体参数化主要引擎sander、pmemd、pmemd.MPI常用工具tleap、cpptraj、antechamber、parmed硬件要求CPU 编译推荐 4 核以上、内存 8GB 以上GPU 需求不使用 GPUGNU 版为纯 CPU 版本磁盘空间源码目录建议预留 20GB 以上启动方式命令行工具方式通过AMBERHOME环境变量管理是否支持并行可通过-mpi参数编译 MPI 并行版是否支持 API提供 Python 接口pytraj、parmed适合场景本地工作站、集群计算节点、分子模拟教学与科研下载要求需在 ambermd.org 注册并获取学术许可后下载看到这张表你可以先判断自己是否需要往下走。如果你的目标是跑常规的分子动力学模拟这个 GNU 版就够用如果你要在 GPU 上跑大体系长模拟那应该考虑 CUDA 版但 CUDA 版的依赖和编译参数需要另外处理。2. Amber22 GNU 版适用场景与使用边界Amber22 不是一个小工具而是一个完整的分子动力学模拟平台。GNU 版用 gcc 和 gfortran 编译最大的优点是环境依赖比较干净一台只装了 Ubuntu 20.04 的机器就能搞定不需要额外配置 Intel 编译器或 CUDA 工具包。适合的场景包括课题组内部搭建分子模拟服务器需要固定一套 sander 和 pmemd 可执行文件。刚接触分子动力学模拟的学生需要先用 CPU 版跑通 TRAPP 水盒子、蛋白质最小化、升温、平衡这些基础流程。教学和计算化学选课需要统一使用 AmberTools 的 tleap、antechamber、cpptraj 完成作业。需要长期批量跑动力学模拟但 GPU 资源有限先用 CPU 多核并行压榨单节点算力。使用边界方面需要清楚几点Amber22 主程序源码需要用户注册并申请许可AmberTools 是开源的但 Amber 本身不是完全无限制分发的软件下载前要在官网确认自己的用途是否符合学术许可条款。GNU 版默认不使用 GPU。如果体系很大、模拟时间很长CPU 版的计算速度远低于 GPU 版不能指望用纯 CPU 版替代高吞吐 GPU 计算。Amber 的模拟结果可信度取决于力场参数、输入结构和运行参数不是软件装好就万事大吉。跑正式研究前必须核对拓扑文件和能量最小化是否收敛。涉及蛋白质、核酸、配体等结构数据时要确保数据来源合规、使用授权清晰不把未授权的商业结构或受保护的结构数据直接发布。这些边界不是套话。Amber 的许可问题在实际编译时常被忽略很多人下载源码时没有先注册导致后面无法解压或不能拿到更新包。编译前后花两分钟确认一下许可和用途比出了问题再回头处理更省时。3. 环境准备Ubuntu 20.04 依赖与编译器版本3.1 系统要求Amber22 编译对 Ubuntu 20.04 的支持很成熟。系统默认自带的 gcc 9.4、gfortran 9.4、CMake 3.16.3、Python 3.8 都能满足 Amber22 的最低要求这也是选择 Ubuntu 20.04 做 GNU 版安装的原因之一。如果你用的是 Ubuntu 22.04 或更新版本同样可以按这个流程只是个别依赖包名称可能有差异。建议使用一台干净的系统或者新建一个普通用户来安装不要直接用 root 跑日常编译。编译过程中会生成大量中间文件建议使用独立目录管理不要散落在 home 根目录。3.2 安装基础依赖打开终端先更新软件源再安装编译工具链和 Amber 需要依赖的库sudo apt update sudo apt upgrade -y sudo apt install -y gcc g gfortran cmake make bison flex patch \ zlib1g-dev libbz2-dev libfftw3-dev \ libopenmpi-dev openmpi-bin \ python3 python3-dev python3-pip \ libblas-dev liblapack-dev \ libboost-dev这里逐个解释gcc、g、gfortran是 GNU 编译器的核心Amber 的 C、C、Fortran 代码都要靠它们bison和flex用于生成解析器代码缺少它们会在 configure 阶段直接报错libfftw3-dev是快速傅里叶变换库跑分子动力学模拟中计算长程相互作用时会用到libopenmpi-dev和openmpi-bin是 OpenMPI 的库和运行时如果你要编译 MPI 并行版这两个包必须装libboost-dev是 C 扩展依赖部分 Amber 工具会用到。装完后验证编译器gcc --version gfortran --version cmake --version python3 --version正常情况下输出里应该能看到 gcc 9.4、gfortran 9.4、cmake 3.16.3、python 3.8。3.3 Python 扩展与 MinicondaAmberTools 里有一部分 Python 相关的分析工具和扩展比如 pytraj、parmed、cpptraj 的 Python 绑定。官方文档建议使用 Miniconda 来管理 Python 环境避免和系统 Python 冲突。如果你只是要一个能用的 GNU 版 Amber不装这些 Python 绑定也可以但后续做轨迹分析和参数化会比较受限。这里给出一个稳妥做法安装系统级 Python 依赖后续 configure 时让 Amber 自动识别 Python。sudo apt install -y python3-pip python3-numpy python3-scipy python3-matplotlib如果你需要 pytraj 这类工具可以再装 Minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh安装完 Miniconda 后关闭并重新打开终端conda命令会生效。这一步不是必须的可以跳过但建议先装好尤其后续要装 pytraj 时会方便很多。4. 下载 Amber22 源码与许可证4.1 获取源码Amber22 的源码需要从官方下载中心获取地址是https://ambermd.org/。进入 Download 页面后用邮箱注册并填写用途信息通过审核后可以获得下载链接。需要下载两个包AmberTools22.tar.bz2Amber22.tar.bz2AmberTools22 包含工具链和基础模块Amber22 包含主程序 sander、pmemd 等。两个包都需要下载缺一个编译都不完整。下载后建议把源码统一放在一个目录下例如mkdir -p ~/software/amber22 cd ~/software/amber22把两个 tar.bz2 文件放到这个目录中。4.2 解压与目录布局解压时要注意顺序先解压 AmberTools22再解压 Amber22两个包会解压到同一个amber22_src目录下cd ~/software/amber22 tar xvf AmberTools22.tar.bz2 tar xvf Amber22.tar.bz2解压完成后目录结构如下amber22_src/ ├── AmberTools/ ├── bin/ ├── configure ├── makefile ├── test/ ├── tmp/ └── ...这里有一个容易踩的坑很多人会把 AmberTools22 和 Amber22 分别解压到不同目录导致 configure 时找不到 AmberTools 文件。正确做法是让两个包解压到同一个amber22_src目录下AmberTools 和 Amber 共用一套源码树。解压后把环境变量AMBERHOME设置为这个目录export AMBERHOME~/software/amber22/amber22_src为了方便测试可以先用echo $AMBERHOME确认路径是否正确。后续所有的 configure、make、make install 都在这个目录下进行。5. GNU 版编译安装三步走5.1 configure 配置进入源码根目录执行 configure。GNU 版对应的配置参数是gnu同时建议加上-noX11和-noUpdatecd $AMBERHOME ./configure --help ./configure -noUpdate -noX11 gnu 21 | tee configure.log-noX11表示不编译 X11 图形界面相关模块避免安装额外的图形依赖库-noUpdate表示不检查更新加快配置速度。tee configure.log会把配置过程保存到日志文件方便后面排查问题。configure 执行过程中会检查编译器、依赖库和 Python 版本。如果看到Good! Your configure was successful.说明配置通过可以直接进入编译阶段。如果出现Error先根据报错提示安装对应依赖包。5.2 make 编译与安装编译是整个过程最耗时的一步。建议用 4 个并行任务编译如果你的机器核心数较少可以降到 2make -j4 21 | tee build.log这个阶段会根据你的机器性能跑大约 1 到 3 个小时。如果机器内存不够或者编译过程中出现进程被杀死可以降低并行数make -j2 21 | tee build.log编译完成后执行安装make installmake install会把可执行文件、库文件、参数文件安装到$AMBERHOME下安装完成后你会在$AMBERHOME/bin下看到sander、pmemd、cpptraj、tleap、antechamber等可执行文件。要确认关键二进制是否生成可以执行ls -l $AMBERHOME/bin/pmemd ls -l $AMBERHOME/bin/sander ls -l $AMBERHOME/bin/cpptraj ls -l $AMBERHOME/bin/tleap这些文件存在说明主程序基本编译成功。5.3 环境变量与 shell 配置编译安装完成后需要把 Amber 的环境变量写入~/.bashrc方便每次登录自动加载echo export AMBERHOME~/software/amber22/amber22_src ~/.bashrc echo source $AMBERHOME/amber.sh ~/.bashrc source ~/.bashrcamber.sh是 Amber 自带的 shell 脚本会设置 PATH、LD_LIBRARY_PATH 等变量。配置完后可以验证一下环境变量是否生效echo $AMBERHOME which pmemd which cpptraj如果which pmemd能输出$AMBERHOME/bin/pmemd说明环境变量已经生效。这里也提一下 MPI 并行版的编译。如果后续要用多核节点跑大批量模拟建议编译一个 MPI 版本./configure -noUpdate -noX11 -mpi gnu make -j4 make installMPI 版会生成pmemd.MPI可执行文件运行时配合mpirun使用。注意 MPI 版和普通串行版共用$AMBERHOME但可执行文件是分开的。装完 MPI 版后pmemd.MPI会出现在bin目录。6. 安装验证与分子模拟小白跑通测试6.1 快速自检工具Amber 自带测试套件可以跑完整测试也可以只跑一部分快速测试。第一次安装建议先跑一个小规模的例行测试确认编译器没有把某些模块编坏。这里使用 Amber 自带的回归测试框架cd $AMBERHOME make test.serial 21 | tee test_serial.logtest.serial会跑大量串行测试用例覆盖 sander、cpptraj、tleap 等一系列工具耗时取决于机器性能一般在几十分钟到两小时之间。跑完可以看日志里的通过率绝大多数FAILED是小部分数值问题如果大量失败就要检查编译器是否配置正确。如果不想跑完整回归测试可以只跑一个基础的最小化测试cd $AMBERHOME/AmberTools/test make test.sander.basic 21 | tee test_sander_basic.log不同版本的测试目标名称可能略有差异稳妥做法是先看make帮助cd $AMBERHOME make help6.2 跑一个真实的最小化测试回归测试通过之后建议自己建一个最小体系跑一遍完整模拟流程确认 Amber 能正常读取拓扑、执行能量最小化和动力学模拟。使用 Amber 自带的测试文件就可以快速验证。先建一个测试目录mkdir -p ~/amber_min_test cd ~/amber_min_testAmber 的测试样例里通常包含parm7和rst7文件。这里用一个通用步骤先找一个已经生成好的拓扑和坐标文件然后运行最小化。以 sander 为例需要创建一个最小化输入文件min.incntrl imin 1, maxcyc 100, ntb 0, cut 8.0 /然后运行sander -O -i min.in -p parm7_file -c rst7_file \ -o min.out -r min.rst7 -ref rst7_file这里parm7_file和rst7_file需要替换成实际的参数拓扑文件和坐标文件。如果你不确定从哪里拿初始结构可以先跑 Amber 自带测试用例cd $AMBERHOME/test sander -O -i $AMBERHOME/test/cmd/scripting/...更直接的方式是直接用 test 目录里已有的输入文件。例如cd $AMBERHOME/AmberTools/test/sander/basic_min sander -O -i min.in -p ala3.parm7 -c ala3.rst7 \ -o ala3_min.out -r ala3_min.rst7跑完后看ala3_min.out末尾是否出现正常结束的标志并检查能量是否在下降。最小化正常结束、总能量比初始步低说明 sander 功能基本可用。6.3 检查安装完整性除了回归测试还可以用cpptraj做一次简单的轨迹读取验证cpptraj -p ala3.parm7 -y ala3_min.rst7如果 cpptraj 能正常读取坐标文件并输出原子信息说明轨迹分析和坐标读写模块工作正常。此外可以用antechamber快速测试配体参数化模块是否可用antechamber -h如果命令能输出帮助信息说明这个小分子构建模块已经正常安装。到这里Amber22 的安装和基础功能验证就完成了。7. 常见编译错误与排查方法问题现象可能原因排查方式解决方案configure 提示bison: not found缺少 bison 解析器检查依赖安装sudo apt install bison flexconfigure 提示f90 not found缺少 gfortran 或 PATH 未包含which gfortransudo apt install gfortranconfigure 报 CMake 版本不满足系统 CMake 版本过低cmake --version升级 CMake 或使用 conda 安装新版make过程被 killed 或 OOM编译并行数过高或内存不足dmesggrep -i oommake报找不到fftw3.h缺少 FFTW 头文件检查/usr/include/fftw3.hsudo apt install libfftw3-devmake test大量测试失败编译器版本不兼容或优化参数问题查看test_serial.log中具体失败项确认 gcc/gfortran 版本考虑降低优化级别重新编译pmemd找不到共享库LD_LIBRARY_PATH未设置ldd $AMBERHOME/bin/pmemdsource $AMBERHOME/amber.shmpirun无法启动pmemd.MPIOpenMPI 版本不一致mpirun --version统一系统 OpenMPI或用-mpi重新 configure比较常见的坑是 configure 阶段忽略 bison 和 flex 的报错直接开始 make结果编到一半报找不到yacc或lex。再一个常见问题就是在 conda 环境里使用过旧或过新的 cmake导致 configure 和 make 行为不一致。如果系统同时装了系统 CMake 和 conda 的 CMake建议在 configure 前用which cmake确认用的是哪一个。8. 性能观察与并行加速建议GNU 版默认使用 CPU 计算性能优化主要看几个方向。第一并行线程数。单机多核环境下可以用 pmemd 的-nt参数控制 OpenMP 线程数。例如使用 8 个线程pmemd -O -i min.in -p parm7 -c rst7 -o min.out -nt 8这个参数只对共享内存并行版本有效不是 MPI 版本。MPI 版本需要用mpirunmpirun -np 8 $AMBERHOME/bin/pmemd.MPI -O -i md.in -p parm7 -c rst7 -o md.out第二观察 CPU 占用。编译安装完 Amber 后建议先用一个小体系跑几十步模拟用top或htop查看 CPU 使用率和内存占用。如果多个线程的 CPU 使用率都接近 100%说明并行资源被充分利用如果只有一个核满载其他核空闲说明 OpenMP 环境变量或编译参数有问题。第三磁盘和内存。批量模拟时轨迹文件会快速增长建议把输出文件放到独立的数据盘上避免系统盘被写满。内存占用主要由体系大小决定几个万原子的体系通常几个 GB 内存就够百万原子级别的大体系则要配足内存。第四关于 GPU。标题里的“GNU 版”是 CPU 版本不需要显存。如果你的环境有 NVIDIA GPU可以在 configure 时加上-cuda参数编译 CUDA 加速版运行时设置精度模式SPFP、DPFP可以进一步平衡速度和精度。但 CUDA 版需要提前安装 CUDA Toolkit配置复杂度会高一些不在这篇文章的 GNU 版范围内展开。9. 最佳实践与合规提醒在正式大规模模拟前先用一个小体系跑通最小化、升温、平衡和正式模拟的完整流程确认所有输入文件和拓扑都没有问题。为 Amber 单独建立一个目录结构例如~/software/amber22放源码~/md_projects放模拟项目~/md_outputs放轨迹文件避免源码和计算结果混在一起。每跑一批作业保留一份输入文件和控制参数备份。分子动力学模拟通常要跑几百万步中途参数丢失会影响整个项目进度。批量作业建议使用 Slurm 或 PBS 管理使用 MPI 版pmemd.MPI并为每个任务设置明确的日志和输出文件。安装完成后建议备份build.log和configure.log。后续出现编译问题或升级时可以通过日志快速定位当时的编译参数。如果使用 Miniconda 管理 Python 环境不要同时混用系统 Python 和 conda 的库可能会导致 Amber Python 扩展加载失败。使用 Amber 计算涉及蛋白质、核酸、配体结构时务必确认数据来源合法。如果使用公共数据库结构要遵守数据库的使用条款如果与他人合作或使用未公开结构要获得授权。学术研究使用 Amber 要注意引用规范。Amber 官方有推荐的引用文献列表论文中使用了 Amber 计算成果时应按要求引用对应方法文章。不把这些模拟工具用于未经授权的商业用途。Amber 的学术许可条款对商业使用有明确限制相关边界以官方最新说明为准。10. 总结与下一步Amber22 GNU 版在 Ubuntu 20.04 上的编译安装本质上是一次标准的三方工具链编译工作。最重要的事情有三个把 bison、flex、cmake、gfortran 这些基础依赖装齐把 AmberTools22 和 Amber22 解压到同一个amber22_src目录在 configure 后用-noUpdate -noX11 gnu参数进入 GNU 编译路径。这些都做对make -j4之后你应该能直接拿到 sander、pmemd、cpptraj 和 tleap。安装成功后建议第一次测试就去看make test.serial的通过率然后手动跑一个最小化例子确认能量正常下降。最容易踩的坑还是在依赖补全和环境变量上很多人 configure 成功但 make 失败基本都是在缺依赖的情况下硬编。排错时优先看configure.log和build.log不要重复清零瞎试。下一步可以按需扩展在单机上编译 MPI 版做多核并行在 NVIDIA 节点上尝试 CUDA 加速版或者通过 Miniconda 装 pytraj 和 parmed 做轨迹分析和力场编辑。对做分子模拟的人来说Amber22 装好不是终点后面如何用好 tleap 搭建体系、用 pmemd 跑出稳定的 MD 轨迹才更值得花时间。建议把这篇编译过程收藏备用至少换机器、换节点、换编译器版本时能少踩几个环境坑。