本帖最后由 fantasticqhl 于 2015-2-7 08:19 编辑
前些天在论坛发贴问过如何做H-REMD, 后来自己找到了PLUMED的手册与教程, 然后自己也摸索出来了, 目前正在测试.
之前说过要写一个帖子的, 下面我简单说一下如何实现H-REMD.
1. 安装Gromacs-4.6.7与Plumed-2.1-hrex
Plumed的manual上面说最新版的Plumed说支持Gromacs-4.5.5, Gromacs-4.6.7, Gromacs-5.0,
SOB在一个帖子里面提到过4.6.7与5.0没有什么差别,我就选择了4.6.7.
而Plumed-2.1不要去官网上面下载, 而是在这里下载:
https://github.com/GiovanniBussi/plumed2/tree/v2.1-hrex
开发者Bussi说这部分代码没有写到正式版本里面去,是因为这些代码在Gromacs里面不好维护.
解压plumed-2.1-hrex, 进入文件夹 (文件夹下面的user-doc/tutorials/hrex.txt就是基本教程), 然后编译:
./configure --prefix=/installation path/ ##默认的是安装MPI版本, 如果没有MPI,那就先安装, 设好环境变量
make
make install
一般不会出问题的, 安装完毕之后,在安装目录下面有一个shell脚本 sourceme.sh, 执行source sourceme.sh,
这样就设置好了plumed的环境变量.
解压Gromacs-4.6.7, 然后进入文件夹, 执行plumed patch -p (好像plumed-patch -p 也可以, 教程上面的那个短横可能没有显示 ),
这样就会有几个文件产生, 会链接到plumed里面的source code.
之后就是安装并行版的Gromacs了(串行版的Gromacs也不能做REMD的), 安装的过程可以参考SOB的帖子, 已经很详细了.
安装完成之后, 运行以下mdrun_mpi -h, 如果里面有选项-plumed与-hrex, 就表示安装成功了. (官网下载的安装完成后,只有-plumed而没有-hrex)
2. H-REMD 模拟
要做H-REMD,就要先了解H-REMD与REMD之间的区别.简单地说,REMD的每一个replica的温度是不同的,在模拟过程中,通过不同温度的replica之间的交换 以加强取样.而H-REMD的每一个replica的温度都是相同的,但是每一个replica都对应于一个scalefactor (lambda,0-1间),每一个lambda都是用来scale(reduce)
该replica的bonded与nonbondedinteractions, 其效果等价与升高"温度".所以lambda越小,“温度”越高.在模拟过程中,通过replica之间的交换以增强取样.
选择lambda.先选定”温度”范围及replica数n,然后通过公式Ti =T min *exp(i*log(T max / T min )/ (n-1))得到”温度”分布.然后使用公式lambda(i)=Tmin/ Ti
得到lambda的分布0~~1, lambda不能等于0.
然后使用grompp-pp生成一个post-processedtop文件processed.top,在这个top文件中划定hotatom与coldatom. Hot atom的原子类型后面需要加上一个 下划线”_”.如CA变为CA_.如果体系中整个solute都被选为hotregion, 那么这个时候的H-REMD就等价于REST2. ##用于生成processed.top的mdp文件最好使用用于取样的md.mdp.
接着使用plumed中的脚本plumed-partial_tempering生成各个replica的top文件: plumed-partial_plumed lambda(i) < processed.top > topol_i.top # i 在0到n-1之间.
得到这些top文件之后,就可以生成每个replica的tpr文件: grompp_mpi -f md.mdp -c input.gro -p topol_i.top -o md_i.tpr
在得到这些tpr文件之后,就可以进行H-REMD的模拟了: mpiexec -np XX mdrun_mpi -plumed plumed.dat -s md_.tpr -multi n -replex 1000 -hrex -reseed XXX ## plumed.dat可以是一个空白文件
任务结束之后, 就是数据分析了.
PS: plumed的mailing list 里面有不少H-REMD的讨论, 搜索plumed user.
|