计算化学公社

 找回密码 Forget password
 注册 Register
Views: 96765|回复 Reply: 61
打印 Print 上一主题 Last thread 下一主题 Next thread

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

  [复制链接 Copy URL]

374

帖子

2

威望

1539

eV
积分
1953

Level 5 (御坂)

本帖最后由 wuzhiyi 于 2022-4-15 19:26 编辑

注:本功能已经正式进入Gromacs 2022,具体内容请关注官方消息,本帖仅作为留档。


最近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.2发行版(https://github.com/plumed/plumed2/releases/tag/v2.7.2), 理论上应该V2.7分支的都可以。
放在/Users/formidable/src/解压生成plumed2-2.7
然后直接用configure安装
  1. ./configure --prefix=/usr/local/plumed/2.7.2
  2. make -j24
  3. make install
复制代码
用module的同学可以复制module文件方便设置环境变量
  1. cp /usr/local/plumed/2.7.2/lib/plumed/modulefile ~/privatemodules/plumed/2.7.2
复制代码

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/gromacs/gromacs/-/tree/2021.2-qmmm
解压后生产文件/Users/formidable/src/gromacs-2021.2-qmmm
首先对gromacs打上plumed补丁。plumed patch -p
然后选择2021版。

然后进行编译
  1. mkdir build
  2. cd build
  3. cmake .. -DBUILD_SHARED_LIBS=OFF -DGMXAPI=OFF -DGMX_INSTALL_NBLIB_API=OFF -DGMX_DOUBLE=ON -DGMX_FFT_LIBRARY=fftw3 -DGMX_CP2K=ON -DCP2K_DIR="/Users/formidable/src/cp2k-8.1/lib/local/psmp" -DCP2K_LIBS="-Wl,--enable-new-dtags -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/tools/toolchain/install/elpa-2020.05.001/lib' -lelpa_openmp -lscalapack -lxsmmf -lxsmm -ldl -lpthread -lxcf03 -lxc -lint2 -lfftw3_mpi -lfftw3 -lfftw3_omp -lmpi -lopenblas -lstdc++" -DGMX_MPI=on -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2021.2_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/)。





评分 Rate

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

查看全部评分 View all ratings

1

帖子

0

威望

7

eV
积分
8

Level 1 能力者

62#
发表于 Post on 2024-12-25 14:17:15 | 只看该作者 Only view this author
/usr/bin/ld: cannot find -lcp2k: No such file or directory
/usr/bin/ld: cannot find -ldbcsr: No such file or directory
/usr/bin/ld: cannot find -lscalapack: No such file or directory
/usr/bin/ld: cannot find -lgfortran: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [src/programs/CMakeFiles/gmx.dir/build.make:105: bin/gmx_mpi_d] Error 1
make[1]: *** [CMakeFiles/Makefile2:5661: src/programs/CMakeFiles/gmx.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
请问这样的报错原因是什么?应该如何解决?

151

帖子

4

威望

1083

eV
积分
1314

Level 4 (黑子)

61#
发表于 Post on 2023-12-30 12:56:32 | 只看该作者 Only view this author
ldx022 发表于 2023-12-29 14:56
请问老师GPU加速不了metaD,是由metaD的原理决定的吗?

人家根本就没写GPU加速的metad,你就算用GPU也是对MD部分加速,瓶颈还在Metad

16

帖子

0

威望

169

eV
积分
185

Level 3 能力者

60#
发表于 Post on 2023-12-29 14:56:14 | 只看该作者 Only view this author
Huschein 发表于 2023-12-29 14:35
GPU加速不了metad,建议就按CPU的去跑就行

请问老师GPU加速不了metaD,是由metaD的原理决定的吗?

151

帖子

4

威望

1083

eV
积分
1314

Level 4 (黑子)

59#
发表于 Post on 2023-12-29 14:35:13 | 只看该作者 Only view this author
ldx022 发表于 2023-12-29 13:59
请问老师,不需要cp2k只需要plumed外加gromacs,目的是为了用gpu(cuda)跑metaD,能否直接沿用您一楼给的 ...

GPU加速不了metad,建议就按CPU的去跑就行

16

帖子

0

威望

169

eV
积分
185

Level 3 能力者

58#
发表于 Post on 2023-12-29 13:59:37 | 只看该作者 Only view this author
请问老师,不需要cp2k只需要plumed外加gromacs,目的是为了用gpu(cuda)跑metaD,能否直接沿用您一楼给的示例来安装呢?谢谢!

1

帖子

0

威望

149

eV
积分
150

Level 3 能力者

57#
发表于 Post on 2023-4-5 22:45:57 | 只看该作者 Only view this author
提问,编译成功后,看上去一切正常,但是无法用grompp生成inp文件,这是怎么回事

171

帖子

0

威望

1745

eV
积分
1916

Level 5 (御坂)

56#
发表于 Post on 2022-12-8 19:34:26 | 只看该作者 Only view this author
(base) gmx_mpi_d mdrun -s qmmm.tpr
      :-) GROMACS - gmx mdrun, 2022.3-plumed_2.8.1 (double precision) (-:

Executable:   /home/jbyin/soft/gromacs-2022.3/bin/gmx_mpi_d
Data prefix:  /home/jbyin/soft/gromacs-2022.3
Working dir:  /home/jbyin/gmx/protein/1BZI/qmmm
Command line:
  gmx_mpi_d mdrun -s qmmm.tpr


Back Off! I just backed up md.log to ./#md.log.8#
Reading file qmmm.tpr, VERSION 2022.3-plumed_2.8.1 (double precision)
Changing nstlist from 10 to 100, rlist from 1.2 to 1.2

comm-mode angular will give incorrect results when the comm group partially crosses a periodic boundary
Using 1 MPI process
Using 128 OpenMP threads


Back Off! I just backed up traj_comp.xtc to ./#traj_comp.xtc.7#

Back Off! I just backed up ener.edr to ./#ener.edr.7#
starting mdrun 'Generic title'
200000 steps,    200.0 ps.
[localhost:421217] *** Process received signal ***
[localhost:421217] Signal: Segmentation fault (11)
[localhost:421217] Signal code: Address not mapped (1)
[localhost:421217] Failing at address: 0x7f97f5f869f0
Segmentation fault (core dumped)
请问老师这个报错是怎么回事啊
独立之精神 自由之思想

9

帖子

0

威望

370

eV
积分
379

Level 3 能力者

55#
发表于 Post on 2022-6-8 09:50:09 | 只看该作者 Only view this author
nianbin 发表于 2021-3-6 02:08
老师,请问下我在编译gmx这一步分时候提示我Target "cmTC_21d74" requires the language dialect "CXX17" , ...

您好,我在cmake的时候出现了同样的错误,请问现在这个问题您解决了吗。我看网上说是gcc版本不够的原因,但是我gcc是9.3.0,不应该不够哇

171

帖子

0

威望

1745

eV
积分
1916

Level 5 (御坂)

54#
发表于 Post on 2022-5-7 12:27:36 | 只看该作者 Only view this author
@Bruce 发表于 2022-5-6 21:27
确保编译cp2k时是成功编译了cp2k库, make -j ARCH=local VERSION="ssmp psmp" libcp2k注意:编译cp2k时 ...

谢谢老师 明白了
独立之精神 自由之思想

79

帖子

0

威望

1323

eV
积分
1402

Level 4 (黑子)

53#
发表于 Post on 2022-5-6 21:27:55 | 只看该作者 Only view this author
本帖最后由 @Bruce 于 2022-5-6 21:29 编辑
yjb 发表于 2022-4-22 01:38
老师,您好,我用最新版本的gromacs22来链接cp2k8.1,cmake成功后,在make -j的过程中,报错。

[ 26%] B ...

确保编译cp2k时是成功编译了cp2k库, make -j ARCH=local VERSION="ssmp psmp" libcp2k注意:编译cp2k时,首先执行make -j ARCH=local VERSION="ssmp psmp" ,再执行 make -j ARCH=local VERSION="ssmp psmp" libcp2k,这样既有cp2k库,又有cp2k的执行程序(前面两个make过程的执行顺序不能颠倒)

171

帖子

0

威望

1745

eV
积分
1916

Level 5 (御坂)

52#
发表于 Post on 2022-4-22 01:38:51 | 只看该作者 Only view this author
老师,您好,我用最新版本的gromacs22来链接cp2k8.1,cmake成功后,在make -j的过程中,报错。

[ 26%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/applied_forces/qmmm/qmmmforceprovider.cpp.o
/home/test/soft/gromacs-2022/src/gromacs/applied_forces/qmmm/qmmmforceprovider.cpp:56:10: fatal error: <libcp2k.h>: No such file or directory
   56 | #include "<libcp2k.h>"

请问这个问题如何解决呢
独立之精神 自由之思想

374

帖子

2

威望

1539

eV
积分
1953

Level 5 (御坂)

51#
 楼主 Author| 发表于 Post on 2022-4-15 19:22:48 | 只看该作者 Only view this author
函数与激情 发表于 2022-4-7 09:31
请问下楼主,是不是目前GMX接口CP2K的QM/MM方法,CP2K能选择的泛函只有PBE和BLYP呀,以后会更新吗?

以后是会更新 不过你可以直接给template 然后就可以自定义cp2k的所有设置了

273

帖子

0

威望

4415

eV
积分
4688

Level 6 (一方通行)

50#
发表于 Post on 2022-4-7 09:31:23 | 只看该作者 Only view this author
请问下楼主,是不是目前GMX接口CP2K的QM/MM方法,CP2K能选择的泛函只有PBE和BLYP呀,以后会更新吗?

34

帖子

0

威望

217

eV
积分
251

Level 3 能力者

49#
发表于 Post on 2022-3-25 10:13:48 | 只看该作者 Only view this author
老师您好,我现在装了cp2k9.1, gromacs-2021.2-qmmm,  plumed-2.7.4  ,但是我最后选择gromacs版本的时候却看不到我的gromacs-2021.2版本?您有什么好的建议嘛?

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-14 04:42 , Processed in 0.220224 second(s), 31 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list