请选择 进入手机版 | 继续访问电脑版
第9届北京科音分子动力学与GROMACS培训班将于4月17~20日于北京举办,请点击此链接查看培训详情,欢迎参加和相互转告!

计算化学公社

 找回密码
 现在注册!
查看: 1755|回复: 22

[GROMACS] Gromacs与cp2k联动使用plumed做QM/MM增强采样

[复制链接]

302

帖子

2

威望

1156

eV
积分
1498

Level 4 (黑子)

发表于 2021-3-2 05:22:27 | 显示全部楼层 |阅读模式
本帖最后由 wuzhiyi 于 2021-3-28 19:47 编辑

最近sob老师分享了cp2k的安装方法 http://bbs.keinsci.com/thread-21608-1-1.html 和cp2k输入文件的生成方法 http://bbs.keinsci.com/thread-21668-1-1.html 让cp2k距离被普通人可以使用又进了一步。
其实Gromacs也可以和cp2k联动联动,进行QM/MM模拟。对于自由能的计算也可以使用plumed来进行增强采样,我想分享一下自己的安装方法,让更多的人可以体会到cp2k的乐趣。
本文中的Gromacs关于cp2k的联动插件预计与2022年正式加入Gromacs,不过根据我的经验,正常使用问题不大,至少在我的测试中,Gromacs/cp2k做真空下用plumed的伞状采样得到小分子二面角的势能面和cp2k下直接用plumed做伞状采样得到的势能面是一样的,如果大家遇到问题,也欢迎在这里反馈。
本教程在来自芬兰Jyväskylä University的Dmitry Morozov的协助下完成。
Plumed安装
先安装plumed,测试了2.7.0发行版(https://github.com/plumed/plumed2/releases/tag/v2.7.0), 理论上应该V2.7分支的都可以。
放在/Users/formidable/src/解压生成plumed2-2.7
然后直接用configure安装
  1. ./configure --prefix=/usr/local/plumed/2.7.0
  2. make -j24
  3. make install
复制代码
用module的同学可以复制module文件方便设置环境变量
  1. cp /usr/local/plumed/2.7.0/lib/plumed/modulefile ~/privatemodules/plumed/2.7.0
复制代码

cp2k安装
本教程默认你已经有openblas/lapack/openMPI,在下载完cp2k 8.1后,解压在/Users/formidable/src
进入/Users/formidable/src/cp2k-8.1/tools/toolchain
用toolchain安装依赖,可以根据自己的需求增减。
  1. ./install_cp2k_toolchain.sh --with-libxsmm=install --with-elpa=install --with-libxc=install --with-libint=install --with-gsl=no --with-libvdwxc=no --with-spglib=no --with-hdf5=no --with-spfft=no --with-cosma=no  --with-libvori=no --with-sirius=no --with-scalapack=install --with-openblas=system --with-fftw=install --with-openmpi=system --with-plumed=system
复制代码
然后将生成的依赖复制到根目录进行安装
  1. cp -r /Users/formidable/src/cp2k-8.1/tools/toolchain/install/arch/* /Users/formidable/src/cp2k-8.1/arch
  2. source /Users/formidable/src/cp2k-8.1/tools/toolchain/install/setup
复制代码
这里其实都和sob老师推荐的一样http://bbs.keinsci.com/thread-21608-1-1.html,不过因为Gromacs要将cp2k作为库来调用,所以要编译cp2k库。
  1. make ARCH=local VERSION="ssmp psmp" libcp2k
复制代码
Gromacs安装
最后我们进行gromacs的安装,从这里下载文件https://gitlab.com/aracsmd/gromacs/-/commits/2021.1-plumed-qmmm
我使用的是https://gitlab.com/aracsmd/groma ... 6b2d252dbd224a45a1c这个版本,但最新的版本应该也可以,如果不行的话,希望向我反馈一下。
解压后生产文件/Users/formidable/src/gromacs-2021.1-plumed-qmmm
首先对gromacs打上plumed补丁,文件来自与安装之后获得的plumed文件,位置通过plumed configure的prefix定义
  1. cp /usr/local/plumed/2.7.0/lib/plumed/src/lib/Plumed.inc.static ./Plumed.inc
  2. cp /usr/local/plumed/2.7.0/lib/plumed/src/lib/Plumed.cmake.static ./Plumed.cmake
  3. cp  /usr/local/plumed/2.7.0/include/plumed/wrapper/Plumed.h ./Plumed.h
复制代码
然后进行编译
  1. mkdir build
  2. cd build
  3. cmake .. -DGMX_INSTALL_NBLIB_API=OFF -DBUILD_SHARED_LIBS=OFF -DGMXAPI=OFF -DGMX_FFT_LIBRARY=fftw3 -DCMAKE_CXX_FLAGS="-I/Users/formidable/src/cp2k-8.1/src/start" -DCMAKE_CXX_STANDARD_LIBRARIES="-Wl,--allow-multiple-definition -pthread -L/Users/formidable/src/cp2k-8.1/tools/toolchain/install/fftw-3.3.8/lib -L/Users/formidable/src/cp2k-8.1/tools/toolchain/install/libint-v2.6.0-cp2k-lmax-5/lib -L/Users/formidable/src/cp2k-8.1/tools/toolchain/install/libxc-4.3.4/lib -L/Users/formidable/src/cp2k-8.1/tools/toolchain/install/libxsmm-1.16.1/lib -L/Users/formidable/src/cp2k-8.1/tools/toolchain/install/scalapack-2.1.0/lib -L/Users/formidable/src/cp2k-8.1/lib/local/psmp/exts/dbcsr -L/Users/formidable/src/cp2k-8.1/tools/toolchain/install/elpa-2020.05.001/lib -L/Users/formidable/src/cp2k-8.1/lib/local/psmp -lcp2k -ldbcsr -lelpa_openmp -lscalapack -lxsmmf -lxsmm -ldl -lpthread -lxcf03 -lxc -lint2 -lfftw3_mpi -lfftw3 -lfftw3_omp -lmpi -lmpi_mpifh  -lopenblas -lstdc++ -lgfortran" -DGMX_DOUBLE=ON -DGMX_MPI=on -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2021.1_plumed_QMMM
  4. make -j24
  5. make install
复制代码
这样编译出来的文件就可以使用plumed做增强采样,用cp2k做QM区域的运算了。
mdp设置
使用gmx make_ndx来定义QM区域,比如我们将一些原子归在一起命名为QMatoms(qmmm-qmgroup = QMatoms),这些原子的电荷加起来是0(qmmm-qmcharge = 0),自选多重度是1(qmmm-qmmultiplicity = 1),目前有预设的级别PBE/DZVP-MOLOPT和BLYP/DZVP-MOLOPT(qmmm-qmmethod = PBE或者qmmm-qmmethod = BLYP)。
这里提供一个mdp的例子。
; CP2K QMMM parameters

qmmm-active              = true
qmmm-qmgroup             = QMatoms
qmmm-qmmethod            = PBE
qmmm-qmcharge            = 0
qmmm-qmmultiplicity      = 1

运行grompp之后会生成对应的cp2k的inp文件,可以看看默认的设置是不是自己想要的。

当然也可以自己提供模版(cp2k.inp)。
; CP2K QMMM parameters

qmmm-active              = true
qmmm-qmgroup             = QMatoms
qmmm-qmmethod            = INPUT
qmmm-qminputfile            = cp2k.inp

教程
简单的教程可以在这里下载(https://github.com/bioexcel/gromacs_cp2k_tutorial),也可以听这个模块的作者讲解(https://bioexcel.eu/webinar-mult ... terface-2020-12-08/)。



评分

参与人数 9威望 +1 eV +38 收起 理由
yjmaxpayne + 5 赞!
panernie + 5 好物!
Daniel_Arndt + 5 大赞!给力!
sobereva + 1
jitou11 + 5 谢谢
bobosiji + 3 牛!
puzhongji + 5 谢谢分享
ChemG + 5 牛!
zsu007 + 5 赞!

查看全部评分

24

帖子

0

威望

656

eV
积分
680

Level 4 (黑子)

发表于 2021-3-2 19:13:16 | 显示全部楼层
老师,请问能不能在此基础之上多出几个实例教程,让初学者跟着尝试一下,多谢

302

帖子

2

威望

1156

eV
积分
1498

Level 4 (黑子)

 楼主| 发表于 2021-3-2 21:36:20 | 显示全部楼层
nianbin 发表于 2021-3-2 19:13
老师,请问能不能在此基础之上多出几个实例教程,让初学者跟着尝试一下,多谢

你是想要什么样的例子啊?

这里已经提供了真空小分子对应AIMD,
小分子在水里
和蛋白质在水里的激发态

感觉好像也没别情况了?

287

帖子

0

威望

1654

eV
积分
1941

Level 5 (御坂)

发表于 2021-3-3 08:28:15 | 显示全部楼层
有一个问题想了解一下,我看到你编译gromacs时使用了“-DGMX_MPI=on”,想起来plumed编译时是有个“--enable-mpi”的。你的这个教程,需要编译plumed时指定“--enable-mpi”吗?

302

帖子

2

威望

1156

eV
积分
1498

Level 4 (黑子)

 楼主| 发表于 2021-3-3 16:54:58 | 显示全部楼层
Daniel_Arndt 发表于 2021-3-3 08:28
有一个问题想了解一下,我看到你编译gromacs时使用了“-DGMX_MPI=on”,想起来plumed编译时是有个“--enabl ...

是的 不过只要找得到MPI版本的编译器 plumed会优先用MPI版本的编译器

329

帖子

0

威望

1407

eV
积分
1736

Level 5 (御坂)

发表于 2021-3-3 18:26:13 | 显示全部楼层
不过CP2K应该是支持读GMX的input file来着?

这么联用不累吗

302

帖子

2

威望

1156

eV
积分
1498

Level 4 (黑子)

 楼主| 发表于 2021-3-3 21:46:45 | 显示全部楼层
k64_cc 发表于 2021-3-3 18:26
不过CP2K应该是支持读GMX的input file来着?

这么联用不累吗

支持么?
我看gromacs的支持在to-do里啊?https://www.cp2k.org/dev:todo
而且8.1的文档里https://manual.cp2k.org/trunk/CP ... FIELD.html#PARMTYPE
没有gromacs啊

329

帖子

0

威望

1407

eV
积分
1736

Level 5 (御坂)

发表于 2021-3-4 11:53:42 | 显示全部楼层
wuzhiyi 发表于 2021-3-3 21:46
支持么?
我看gromacs的支持在to-do里啊?https://www.cp2k.org/dev:todo
而且8.1的文档里https://manu ...

那就是支持amber?反正就转个格式的事。

84

帖子

0

威望

2492

eV
积分
2576

Level 5 (御坂)

发表于 2021-3-5 15:23:19 | 显示全部楼层
请教 cp2k +GMX+plumed 做QM/MM硬件配置如何, 需要较多核心的 CPU么
还是说直接参考sob老师的装机配置就可以,普通CPU+较好显卡

302

帖子

2

威望

1156

eV
积分
1498

Level 4 (黑子)

 楼主| 发表于 2021-3-5 18:30:31 | 显示全部楼层
azero 发表于 2021-3-5 15:23
请教 cp2k +GMX+plumed 做QM/MM硬件配置如何, 需要较多核心的 CPU么
还是说直接参考sob老师的装机配置就 ...

不需要显卡,cp2k+GMX主要运算瓶颈在cp2k那里,MM部分的耗时估计0.1%都不到,按cp2k的需求配置就行。

24

帖子

0

威望

656

eV
积分
680

Level 4 (黑子)

发表于 2021-3-6 02:08:42 | 显示全部楼层
老师,请问下我在编译gmx这一步分时候提示我Target "cmTC_21d74" requires the language dialect "CXX17" , but CMake does
  not know the compile flags to use to enable it. 应该咋整

302

帖子

2

威望

1156

eV
积分
1498

Level 4 (黑子)

 楼主| 发表于 2021-3-7 01:40:53 | 显示全部楼层
nianbin 发表于 2021-3-6 02:08
老师,请问下我在编译gmx这一步分时候提示我Target "cmTC_21d74" requires the language dialect "CXX17" , ...

你正常编译gromacs可以么?

24

帖子

0

威望

656

eV
积分
680

Level 4 (黑子)

发表于 2021-3-7 18:03:18 | 显示全部楼层
是可以的,我现在系统里有gmx2018.8

302

帖子

2

威望

1156

eV
积分
1498

Level 4 (黑子)

 楼主| 发表于 2021-3-9 05:02:32 | 显示全部楼层
nianbin 发表于 2021-3-7 18:03
是可以的,我现在系统里有gmx2018.8

可以试试装最新的Gromacs 2021.1么?

24

帖子

0

威望

656

eV
积分
680

Level 4 (黑子)

发表于 2021-3-9 19:30:18 | 显示全部楼层
好的,多谢老师,我试试
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )

GMT+8, 2021-4-11 17:55 , Processed in 0.690747 second(s), 26 queries .

快速回复 返回顶部 返回列表