计算化学公社

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

[GROMACS] 编译Gromacs-Colvars进行自由能计算

  [复制链接 Copy URL]

1096

帖子

6

威望

6271

eV
积分
7487

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 fhh2626 于 2021-8-12 16:51 编辑

本文禁止转载

更新:对于gromacs2021, -DGMX_GPU=on要改成 -DGMX_GPU=cuda

Colvars是非常流行的自由能计算插件,里面实现了大量的自由能计算方法(比如US,eABF,MtD,SMD等),与竞争对手Plumed相比,Colvars在实现上跟MD软件结合更紧密,运行效率更高,使用也方便一些,而Plumed则对不同的MD软件兼容性更高,更容易在里面实现新的算法

以往gmx只能跟Plumed结合使用,最近(发帖当天)Colvars也支持gmx了,下面是编译的简单步骤

首先下载gmx和Colvars,发帖时最新版本为2020.4,Colvars下master branch就行:
http://manual.gromacs.org/documentation/2020.4/download.html
https://github.com/Colvars/colvars

然后上传到服务器上,解压
unzip colvars-master.zip
tar xvf gromacs-2020.4.tar.gz

用Colvars patch gmx:
sh ./colvars-master/update-colvars-code.sh ./gromacs-2020.4

编译gmx:
cd gromacs-2020.4
mkdir build
cd build
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=on -DCMAKE_INSTALL_PREFIX=xxx
make -j12
make install

source xxxxxxx/GMXRC

在gmx中调用Colvars:
在运行gmx的命令后面跟上-colvars xxxx.dat,其中xxxxx.dat是Colvars输入文件
例如:
gmx mdrun -v  -ntmpi 1 -ntomp 2 -gpu_id 0 -deffnm step5 -colvars colvars.dat
或者跟上-colvars xxxx.dat -colvars_restart test.colvars.state.dat

Colvars输入文件的简单介绍见:
http://bbs.keinsci.com/thread-10805-1-1.html
在gmx中使用时,需要在开头加上:
units gromacs

评分 Rate

参与人数
Participants 10
威望 +1 eV +35 收起 理由
Reason
naoki + 5 谢谢
jiminfu + 5 好物!
HZW + 1 谢谢
panernie + 1 谢谢
Daniel_Arndt + 5 以前只能用SSAGES配合gromacs做MW-ABF,现.
朙天儿 + 5 赞!
sobereva + 1
zsu007 + 5 谢谢分享
liuyuje714 + 3 谢谢
ene + 5

查看全部评分 View all ratings

63

帖子

0

威望

6039

eV
积分
6102

Level 6 (一方通行)

2#
发表于 Post on 2020-10-31 14:48:20 | 只看该作者 Only view this author
谢谢分享!

45

帖子

0

威望

1005

eV
积分
1050

Level 4 (黑子)

3#
发表于 Post on 2020-12-3 09:41:06 | 只看该作者 Only view this author
老师您好,请问Colvars插件是否支持GMX-2020.4之前的版本吗,现在使用的是2018.4版本,请问能否支持呢?谢谢老师

1096

帖子

6

威望

6271

eV
积分
7487

Level 6 (一方通行)

4#
 楼主 Author| 发表于 Post on 2020-12-3 12:10:38 | 只看该作者 Only view this author
moluren 发表于 2020-12-3 09:41
老师您好,请问Colvars插件是否支持GMX-2020.4之前的版本吗,现在使用的是2018.4版本,请问能否支持呢?谢 ...

https://github.com/Colvars/colvars 有打过补丁的2018.8版本下载

有什么特殊的理由需要用老版本吗?

45

帖子

0

威望

1005

eV
积分
1050

Level 4 (黑子)

5#
发表于 Post on 2020-12-9 09:21:59 | 只看该作者 Only view this author
非常抱歉这几天忙着实验没有及时回复,非常感谢老师的指导。
没有特殊的理由必须要用老版本,还是自己懒惰不太愿意更新,您又让我发现了“新大陆”,太感谢您了

2

帖子

0

威望

11

eV
积分
13

Level 1 能力者

6#
发表于 Post on 2020-12-29 10:41:25 | 只看该作者 Only view this author
请问下,gmx中调用Colvars,是在跑mdrun成品md时候调用吗,但是显示报错“unkown command-line option -colvars”
另外想请教下,Colvars输入文件colvars.dat内容都是一样的吗,是否有范本
(我做的是蛋白配体复合物,跑完动力学后想计算小分子的结合能)

1096

帖子

6

威望

6271

eV
积分
7487

Level 6 (一方通行)

7#
 楼主 Author| 发表于 Post on 2020-12-29 11:42:08 | 只看该作者 Only view this author
wmu-lyg 发表于 2020-12-29 10:41
请问下,gmx中调用Colvars,是在跑mdrun成品md时候调用吗,但是显示报错“unkown command-line option -col ...

你按照教程编译用Colvars patch过的gmx了吗

Colvars文件当然不一样,你要定义描述你体系运动的反应坐标(比如距离,角度)

120

帖子

0

威望

655

eV
积分
775

Level 4 (黑子)

8#
发表于 Post on 2021-1-15 21:20:50 | 只看该作者 Only view this author
fhh2626 发表于 2020-12-3 12:10
https://github.com/Colvars/colvars 有打过补丁的2018.8版本下载

有什么特殊的理由需要用老版本吗?

老师您好,请问在colvars的github官网下载的patch过的gromacs-2018.8-colvars编译后咋使用colvars

1096

帖子

6

威望

6271

eV
积分
7487

Level 6 (一方通行)

9#
 楼主 Author| 发表于 Post on 2021-1-15 22:19:34 | 只看该作者 Only view this author
HZW 发表于 2021-1-15 21:20
老师您好,请问在colvars的github官网下载的patch过的gromacs-2018.8-colvars编译后咋使用colvars

你平时怎么用的就怎么用啊。。。没明白你的意思

120

帖子

0

威望

655

eV
积分
775

Level 4 (黑子)

10#
发表于 Post on 2021-1-15 23:09:03 | 只看该作者 Only view this author
老师我的意思是说patch过的gromacs包不需要单独下载colvars,编译好gromacs就能在gmx命令末尾加上-colvars xxx. dat使用,还有就是colvars需要编译吗?

1096

帖子

6

威望

6271

eV
积分
7487

Level 6 (一方通行)

11#
 楼主 Author| 发表于 Post on 2021-1-16 16:15:00 | 只看该作者 Only view this author
HZW 发表于 2021-1-15 23:09
老师我的意思是说patch过的gromacs包不需要单独下载colvars,编译好gromacs就能在gmx命令末尾加上-colvars  ...

不需要单独编译colvars了

120

帖子

0

威望

655

eV
积分
775

Level 4 (黑子)

12#
发表于 Post on 2021-1-16 21:10:09 | 只看该作者 Only view this author
fhh2626 发表于 2021-1-16 16:15
不需要单独编译colvars了

好的,谢谢老师啦。用上了。

120

帖子

0

威望

655

eV
积分
775

Level 4 (黑子)

13#
发表于 Post on 2021-1-27 21:59:33 | 只看该作者 Only view this author
fhh2626 发表于 2021-1-16 16:15
不需要单独编译colvars了

FU老师,gromacs使用colvar的ABF时出现问题。
colvars.dat文件:
units gromacs
indexFile index.ndx

colvarsTrajFrequency      500
colvarsRestartFrequency  20000

colvar {
   name AtomDistance

   width 0.1

   lowerboundary 27.2
   upperboundary 100.0

   lowerwallconstant 100.0
   upperwallconstant 100.0

   distance {
      group1 {
          indexGroup O5
      }
      group2 {
          indexGroup O3
      }
   }
}


abf {
   colvars AtomDistance
   fullSamples   500
   hideJacobian
}

错误:
colvars: ----------------------------------------------------------------------
colvars: Initializing the collective variables module, version "2020-11-09".
colvars: Please cite Fiorin et al, Mol Phys 2013:
https://dx.doi.org/10.1080/00268976.2013.813594
in any publication based on this calculation.
colvars: SMP parallelism is enabled; if needed, use "smp off" to override this.
colvars: This version was built with the C++11 standard or higher.
colvars: Using GROMACS interface, version "2020-10-22".
colvars: ----------------------------------------------------------------------
colvars: Reading new configuration from file "colvars.dat":
colvars: # units = "gromacs"
colvars: # indexFile = "index.ndx"
colvars: The following index groups are currently defined:
colvars:   System (340151 atoms)
colvars:   DNA (911 atoms)
colvars:   K (27 atoms)
colvars:   Water (339213 atoms)
colvars:   SOL (339213 atoms)
colvars:   non-Water (938 atoms)
colvars:   Ion (27 atoms)
colvars:   Water_and_ions (339240 atoms)
colvars:   O5 (1 atoms)
colvars:   O3 (1 atoms)
colvars: # smp = on [default]
colvars: # colvarsTrajFrequency = 500
colvars: # colvarsRestartFrequency = 20000
colvars: # scriptedColvarForces = off [default]
colvars: # scriptingAfterBiases = off [default]
colvars: ----------------------------------------------------------------------
colvars:   Initializing a new collective variable.
colvars:   # name = "AtomDistance"
colvars:   Initializing a new "distance" component.
colvars:     # name = "" [default]
colvars:     # componentCoeff = 1 [default]
colvars:     # componentExp = 1 [default]
colvars:     # period = 0 [default]
colvars:     # wrapAround = 0 [default]
colvars:     # forceNoPBC = off [default]
colvars:     # scalable = on [default]
colvars:       Initializing atom group "group1".
colvars:       # name = "" [default]
colvars:       # centerReference = off [default]
colvars:       # rotateReference = off [default]
colvars:       # atomsOfGroup = "" [default]
colvars:       # indexGroup = "O5"
colvars:       # psfSegID =  [default]
colvars:       # atomsFile = "" [default]
colvars:       # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars:       # enableFitGradients = on [default]
colvars:       # printAtomIDs = off [default]
colvars:       Atom group "group1" defined with 1 atoms requested: total mass = 16, total charge = -0.834.
colvars:       Initializing atom group "group2".
colvars:       # name = "" [default]
colvars:       # centerReference = off [default]
colvars:       # rotateReference = off [default]
colvars:       # atomsOfGroup = "" [default]
colvars:       # indexGroup = "O3"
colvars:       # psfSegID =  [default]
colvars:       # atomsFile = "" [default]
colvars:       # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars:       # enableFitGradients = on [default]
colvars:       # printAtomIDs = off [default]
colvars:       Atom group "group2" defined with 1 atoms requested: total mass = 1.008, total charge = 0.417.
colvars:     # oneSiteSystemForce = off [default]
colvars:     # oneSiteTotalForce = off [default]
colvars:   All components initialized.
colvars:   # timeStepFactor = 1 [default]
colvars:   # width = 0.1
colvars:   # lowerBoundary = 27.2
colvars:   # upperBoundary = 100
colvars:   Reading legacy options lowerWall and lowerWallConstant: consider using a harmonicWalls restraint (caution: force constant would then be scaled by width^2).
colvars:   # lowerWall = 100
colvars:   Reading legacy options upperWall and upperWallConstant: consider using a harmonicWalls restraint (caution: force constant would then be scaled by width^2).
colvars:   # upperWall = 0 [default]
colvars: Error: the value of upperWall must be set explicitly.
colvars: If this error message is unclear, try recompiling with -DCOLVARS_DEBUG.

1096

帖子

6

威望

6271

eV
积分
7487

Level 6 (一方通行)

14#
 楼主 Author| 发表于 Post on 2021-1-27 23:29:28 | 只看该作者 Only view this author
HZW 发表于 2021-1-27 21:59
FU老师,gromacs使用colvar的ABF时出现问题。
colvars.dat文件:
units gromacs

Colvars修改了边界力常数的定义方式,要删掉  lowerwallconstant 100.0和upperwallconstant 100.0这两句,然后在文件后面加上
harmonicWalls {              
    colvars           AtomDistance              
    lowerWalls        27.2     
    upperWalls        100.0  
    lowerWallConstant 1.0                  
    upperWallConstant 1.0                  
}
注意这里的边界力常数要除以width才是真正的k值           

120

帖子

0

威望

655

eV
积分
775

Level 4 (黑子)

15#
发表于 Post on 2021-1-28 00:57:51 | 只看该作者 Only view this author
还有一个问题,就是colvarsRestartFrequency要设置和gromacs运行的步长一样吗?colvars里边步长是多少fs,我跑的是沿着首尾5端和3端氧原子拉一个28个碱基的G4结构,fullSamples2000步够吗?

本版积分规则 Credits rule

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

GMT+8, 2024-11-26 21:19 , Processed in 0.221261 second(s), 28 queries , Gzip On.

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