环境搭建:安装GROMACS及相关Python库
好了,开始干活前,先把家伙事儿备齐。这节课咱们把环境搞定——GROMACS加上Python那几把好用的刀(MDAnalysis、MDTraj这些)。
环境搭好了,后面的分析才能跑得顺。我在项目中遇到过太多次因为环境搞崩了,浪费一整天的情况。所以,别急,一步步来。
2.1 安装GROMACS
GROMACS是主力,得装稳了。我个人习惯用源码编译,可控性最强。
2.1.1 安装依赖
GROMACS依赖挺多的。CMake、BLAS、FFTW、OpenMP、MPI,一个都不能少。你想想看,没有FFTW,轨迹数据的傅里叶变换就算不了,很多分析就卡住了。
在Ubuntu上,可以这样装依赖:
sudo apt update
sudo apt install cmake build-essential libfftw3-dev libopenblas-dev
sudo apt install libopenmpi-dev openmpi-bin
嗯,这里要注意:如果你在学校或企业的集群上装,MPI版本要跟集群一致,否则并行跑不起来。
2.1.2 下载与编译
去GROMACS官网下源码包,我个人习惯用2023.x或2024.x的稳定版。
wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-2024.1.tar.gz
tar -xzf gromacs-2024.1.tar.gz
cd gromacs-2024.1
mkdir build
cd build
然后是CMake配置。这里有个关键参数:-DGMX_GPU=ON,如果你有NVIDIA卡,能加速很多。
cmake .. -DGMX_GPU=ON -DGMX_MPI=ON -DCMAKE_INSTALL_PREFIX=/opt/gromacs
make -j$(nproc)
sudo make install
我曾经在某个集群上忘了加-DGMX_GPU=ON,结果跑动力学模拟慢得要命,重装了一次才想起来。避坑指南:编译前看看你的显卡型号,支持CUDA再加这个参数。
2.1.3 配置环境变量
安装完,记得把GROMACS加到PATH里。我个人习惯把脚本放到 /etc/profile.d/ 下,或者直接写到 .bashrc。
echo 'source /opt/gromacs/bin/GMXRC' >> ~/.bashrc
source ~/.bashrc
测试一下:
gmx --version
如果能看到版本号,那就搞定了。记得我第一次装完,看到输出里满满的编译参数,那种踏实感,你应该也能体会到。
2.2 安装Python分析库
GROMACS虽然自带分析工具,但做更灵活的流体、结构分析,还是得靠Python。我们这里装三件套:MDAnalysis、MDTraj,还有pytraj(可选)。
2.2.1 创建隔离环境
我强烈建议用虚拟环境,别污染系统Python。为什么?你想想看,不同项目依赖的版本可能打架,一升级就把别的项目搞挂了。
python3 -m venv md_env
source md_env/bin/activate
或者用conda:
conda create -n md_env python=3.10
conda activate md_env
我个人偏好conda,包管理更省心。
2.2.2 安装核心库
直接上pip:
pip install numpy scipy matplotlib
pip install MDAnalysis MDTraj
pip install pytraj # 可选,Amber用户常用
如果你用conda,也可以:
conda install -c conda-forge mdanalysis mdtraj
conda install -c ambermd pytraj
这里注意:MDAnalysis和MDTraj有时候依赖的版本会冲突。我在项目中遇到过,MDAnalysis更新太快,MDTraj的某个版本跟不上,所以要固定版本。怎么办?先装MDAnalysis,再装MDTraj,一般就妥了。
2.2.3 验证安装
写个简单脚本验证一下:
python -c "import MDAnalysis as mda; print('MDAnalysis version:', mda.__version__)"
python -c "import mdtraj as md; print('MDTraj version:', md.__version__)"
如果没报错,那就说明环境搭好了。嗯,这里要注意:pytraj的安装可能需要编译,半天没反应很正常,耐心等。
2.3 多版本共存与换源
有些工作流需要不同版本的GROMACS。比如,有的同学用GROMACS 2023跑模拟,但有的分析脚本只支持2021。怎么办?
我个人习惯把不同版本安装到不同目录:
/opt/gromacs-2023
/opt/gromacs-2021
然后通过别名切换:
alias gmx2023='source /opt/gromacs-2023/bin/GMXRC'
alias gmx2021='source /opt/gromacs-2021/bin/GMXRC'
你想想看,这样就太灵活了,想用哪个就切哪个。
另外,Python库的换源问题。国内下载慢,我建议用清华镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple MDAnalysis MDTraj
或者永久配置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
记得我第一次在国外服务器上装,速度是快了,但资源用量也上去了,总是被管理员警告。所以,换源是个好习惯。
2.4 常见问题与避坑
- CMake找不到FFTW:检查FFTW是否安装,或者指定路径。
-DFFTWF_LIBRARY=... - GPU编译失败:确认CUDA版本和GROMACS版本兼容性。
- Python库安装报错:可能是编译器版本太旧,升级gcc或用conda环境。
- 库冲突:MDAnalysis和MDTraj版本不一致,建议用虚拟环境隔离。
警告:不要用系统Python直接安装科学计算库,容易破坏系统工具链。
2.5 本章知识体系
把这一章的结构串起来,就是下面这张图:
2.6 快速验证清单
| 步骤 | 验证命令 | 预期结果 |
|---|---|---|
| GROMACS安装 | gmx --version |
显示版本号及编译参数 |
| MDAnalysis | python -c "import MDAnalysis as mda; print(mda.__version__)" |
输出版本号(如2.7.0) |
| MDTraj | python -c "import mdtraj as md; print(md.__version__)" |
输出版本号(如1.9.9) |
| pytraj(可选) | python -c "import pytraj as pt; print(pt.__version__)" |
输出版本号或确认导入成功 |
小贴士:如果你用conda,可以一次性安装所有:conda install -c conda-forge gromacs mdanalysis mdtraj。但要注意,conda里的GROMACS可能不是最新版。