mdp文件是能量最小化,NVT模拟,NPT模拟与MD模拟的必须文件。

mdp文件的详细解释可以参考官方文档http://manual.gromacs.org/online/mdp_opt.html

接下来我将使用四个文件为例子来解释mdp文件。

能量最小化minim.mdp

 1 ; minim.mdp - used as input grompp to generate *.tpr 
2 integrator = steep ; steep = steepest descent minimization
3 emtol = 1000.0 4 emstep = 0.01 5 nsteps = 50000 6
7 ; Parameters describing how to find the neighbors of each atom and how to calculate the interactions
8 nstlist = 1 9 cutoff-scheme = Verlet
10 ns_type = grid
11 coulombtype = PME 12 rcoulomb = 1.0 13 rvdw = 1.0 14 pbc = xyz

接下来我一行一行注解:

1.从";"到换行之间的字符将被视为注释。此文件用于能量最小化(例如蛋白质刚放入溶剂,或者单纯的蛋白质在真空中的能量最小化)

2.这不是积分,只是选项用了这个名字而已,采用最速下降法是因为这里我们想将能量最小化,而不是运行NVT模拟或者MD模拟。

3.当最大力小于1000kJ/mol/nm时停止模拟

4.能量步长

5.最大步数

7.下面的参数描述了如何搜寻近邻原子并计算相互作用。

8.临近列表与长程力计算更新频率,1代表每步都更新

9.截断方案:Verlet

10.临近原子确定方案:可分为grid格点搜索和simple简单搜索。grid即格点法,计算速度要比simple快很多。

11.计算长程库伦力的方法:PME

12:短程库伦力的截断距离

13:短程范德华力的截断距离

14:周期性边界条件,在XYZ三个方向上均采用周期性边界条件(Periodic Boundary Condition)

关于最速下降法:第2行

最速下降法不是最有效的搜索方法,但它很稳健并且容易实现。关于最速下降法可参考官方文档P51.最速下降法中需要定义最大位移,并且每一步都会用到Fmax。

关于近邻搜索:8-10行

配对列表的生成:只需要对一些粒子对 i,j之间的非键配对力进行计算, 在这些粒子对中, 粒子 ii和 j的最近映象之间的距离小于给定的截断半径 Rc. 如果彼此之间的相互作用已完全被键合作用

所考虑, 一些满足这一条件的粒子对仍然会被排除. GROMACS使用了一个 配对列表, 其中包含了那些必须计算彼此之间非键力的粒子对. 这个列表中包含原子 i, 原子 i的位移向量,

距离原子 i的这个特殊映象rlist范围内的所有粒子 j. 该列表每nstlist步更新一次, nstlist的典型值为10. 有一个选项可用来计算每个粒子所受到的总的非键力, 这些力来源于围绕列表截断

值, 即距离在rlistrlistlong之间的壳层中的所有粒子. 在更新配对列表时, 会计算这些力, 并在随后的nstlist中保持不变.为创建邻区列表,必须找到与给定粒子相近(即在邻居列表截断内)

的所有粒子. 这种搜索通常被称为邻区搜索(NS, neighbor search)或对搜索(pair search), 涉及到周期性边界条件和映象的确定。

邻区截断方案: 原子组与Verlet缓冲

GROMACS支持两种不同的截断方案设置: 最初的基于原子组的方案和使用Verlet缓冲区的方案. 它们之间存在一些非常重要的区别, 这些区别可能会影响计算结果, 计算性能和某些功能的支持情况. 组方案(几乎)可以像Verlet方案一样运行, 但这将导致性能降低. 对在模拟中常用的水分子, 组方案特别快, 但在最近的x86处理器中, 这种优势消失了, 因为可以在Verlet方案的实现中使用更好的指令级并行. 在5.0版本中已经不再提倡使用组方案了, 将来的版本中将会删除此方案.

在组方案中, 近邻列表由至少含一个原子的原子对构成. 这些原子组最初是电荷组。

Verlet截断方案默认使用缓冲对列表. 它也使用了原子团簇, 但这些不像在组方案中是静态的. 相反, 团簇以空间定义, 包含4个或8个原子, 使用如SSE, AVX和GPU的CUDA等可方便地对此进行流计算. 在近邻搜索步骤中, 使用Verlet缓冲创建对列表, 即对列表的截断距离大于相互作用的截断距离. 在计算非键力的内核中, 只有当一个原子对在特定时间步处于截断距离之内时, 这个力才会被加入到近邻列表中. 当原子在两次对搜索步骤中移动时, 这确保了几乎所有处于截断距离内的原子之间的力都会被计算. 我们说, 几乎 所有的原子, 是因为GROMACS使用了一个固定的对列表更新频率以提高效率. 一个处于截断距离外的原子对, 在这样固定的步数中, 可能移动得足够多以致处于截断距离之内. 这种小概率事件会导致小的能量漂移, 而且概率的大小取决于温度. 当使用温度耦合时, 给定能量漂移的一定容差, 可以自动确定缓冲大小.

关于长程库伦力的计算:11-14行

参考手册4.8.1节。Ewald方法差不多是直接根据库伦力公式去计算长程力,速度很慢,计算量巨大。一般不采用Ewald方法,而是采用PME(Particle-Mesh Ewald)方法,该方法

可以提高倒易空间加和的计算速度,这种方法不直接对波矢进行加和, 而是使用内插方法将电荷分配到网格上.先使用3DFFT算法对格点进行傅里叶变换, 在k空间中利用对格点的单个加和就可以得到倒易空间的能量项.

以上能量最小化的一个典型mdp文件,其中的一些解释(近邻搜索与长程库伦力计算)在其他mdp文件中还能用到。

												

mdp文件-Chapter1-MINIM.mdp的更多相关文章

  1. mdp文件-Chapter4-MD.mdp

    终于到了mdp系列的第四篇,最终MD模拟的mdp文件 先上代码,md.mdp 1 title = OPLS Lysozyme MD simulation 2 ; Run parameters 3 in ...

  2. mdp文件-Chapter2-NVT.mdp

    这是mdp文件系列的第二篇,介绍nvt平衡中要使用的mdp文件. 先上代码,nvt.mdp 1 title = OPLS Lysozyme NVT equilibration 2 define = - ...

  3. martini-md参数(mdp文件)

    输入参数:一个典型的mdp文件 1 ; 2 ; STANDARD MD INPUT OPTIONS FOR MARTINI 2.x 3 ; Updated 02 feb 2013 by DdJ 4 ; ...

  4. mdp文件-Chapter3-NPT.mdp

    mdp系列的第三篇,对NPT模拟中的mdp文件做一简单介绍. 先上代码 1 title = OPLS Lysozyme NPT equilibration 2 define = -DPOSRES ; ...

  5. martini-能量最小化参数(mdp文件)

    1 ; 2 ; STANDARD MD INPUT OPTIONS FOR MARTINI 2.x 3 ; Updated 02 feb 2013 by DdJ 4 ; 5 ; for use wit ...

  6. Gromacs文件-Chapter1

    Gromacs的文件非常的多,这是官方文档地址:http://manual.gromacs.org/online/files.html. 本文章部分内容来自以下网址https://zhuanlan.z ...

  7. Gromacs分子动力学模拟流程概述

    Gromacs分子动力学模拟主要可以分为以下几个步骤,不同的体系步骤可能略有不同. 在开始之前,先简单了解一下预平衡: 分子动力学模拟的最终目的是对体系进行抽样,然后计算体系的能量,各种化学键,成分分 ...

  8. Gromacs命令-Chapter1

    Gromacs的命令非常多,下面我将我最近用到的先总结一下.标题上也写了这只是Chapter1,以后有新的会继续写Chapter2...等等. 下面这个网址http://manual.gromacs. ...

  9. Visual C++文件后缀名释义

    [1] .APS:存放二进制资源的资源辅助中间文件(可加快资源装载速度). [2] .BMP:位图资源文件. [3] .BSC:浏览信息文件.由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(. ...

随机推荐

  1. CSGO 服务端扩展插件开发记录之"DropClientReason"(1)

    最近开始接触到了CSGO这款游戏,还是老套路,就是想千方百计的从里面增添新的游戏功能,当然刚开始想做到游刃有余是有点困难, 跟之前做CS1.6的第三方开发一样,都得自己慢慢的摸索过来,纵然CSGO所使 ...

  2. 多测试_linux_003_肖sir

    一.linux 介绍os 操作系统:windows,dos,android ,ios,unix ,linux linux系统:是一个免费,开源的操作系统,能多cpu,多用户,多线程的操作系统,比win ...

  3. day22 函数整理

    # 1.计算 年月日时分秒 于现在之间差了多少 格式化时间 # 现在 # 某一个年月日时分秒 参数 # import time # def get_time(old_t,fmt = '%Y-%m-%d ...

  4. main函数标准写法

    main函数签名 C++中允许两种格式,带参数的和不带参数的: int main() int main(int argc, const char* argv[]) 和C标准不同,C++中main函数必 ...

  5. 带权二分图最大匹配KM算法

    二分图的判定 如果一个图是连通的,可以用如下的染色法判定是否二分图: 我们把X部的结点颜色设为0,Y部的颜色设为1. 从某个未染色的结点u开始,做BFS或者DFS .把u染为0,枚举u的儿子v.如果v ...

  6. 使用docker安装E

     环境 虚拟机软件VmWare15.5 Centos7.0 安装docker yum install docker

  7. linux(centos8):prometheus使用mtail监控错误日志

    一,mtail的用途? mtail :从应用程序日志中提取指标以导出到时间序列数据库或时间序列计算器 它是一个google开发的日志提取工具,用途就是: 实时读取应用程序的日志. 再通过自己编写的脚本 ...

  8. centos 安装docker方法2

    1 更新yum yum -y update 2 执行命令 linux 安装dockersudo wget -qO- https://get.docker.com | sh解释如下sudo 使用root ...

  9. buuctf-misc-刷新过的图片

    知识点:F5隐写 kali中安装F5-steganography 工具 git clone https://github.com/matthewgao/F5-steganography 解密的时候输入 ...

  10. JS实现页面计时

    前言 计时功能在网页上是非常多的,现在我就用原生JS做个计时功能吧 HTML <div><label>得到毫</label> <h5></h5&g ...