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. 第3天 | 12天搞定Python,用PyCharm编写代码

    有了运行环境还不够,在程序的江湖里,还得有一把趁手的"兵器". 工欲善其事,必先利其器,在进行Python开发时,可选择 IDE挺多的,其中,以PyCharm. Eclipse+P ...

  2. leaflet中如何优雅的解决百度、高德地图的偏移问题

    话不多说,先上效果图 以前在做项目时,经常会听到客户说,你们这个地图是哪来的,太丑了,能不能换成百度地图--高德也行-- 大家生活中,基本上都已经习惯了使用百度地图和高德地图,而在做项目时,用这两个地 ...

  3. Python中列表、元组、字典、集合与字符串,相关函数,持续更新中……

    本篇博客为博主第一次学 Python 所做的笔记(希望读者能够少点浮躁,认真阅读,平心静气学习!) 补充: 列表.元组和字符串共同属性: 属于有序序列,其中的元素有严格的先后顺序 都支持双向索引,索引 ...

  4. selenium环境配置学习笔记

    一 为什么进行自动化测试 缩短测试周期 避免人为出错 测试信息存储 轻易获取覆盖率 二 web/ui自动化条件和适用范围 手工测试已经完成,后期在不影响进度的前提下逐渐实现自动化 项目周期长,重复性工 ...

  5. ASP.NET Core 3.1 Razor 视图预编译、动态编译

    1.安装NuGet包 Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 2.Startup.cs 配置 public ...

  6. gorm学习地址

    1 gorm curd指南 2 gorm入门指南

  7. Docker学习笔记之-在虚拟机VM上安装CentOS 7.8

    虚拟机VM版本:VMware Workstation Pro 16 中文虚拟机软件专业版 到官网下载即可,或者也可以通过下边链接下载 下载地址: http://www.epinv.com/post/1 ...

  8. Unity-根据时间开灯与关灯

    声明:本人只是学生,并且只是自学Unity,如有大神,不喜勿喷,不足之处,请指出! 本项目使用了UniStorm 3.0(天气)插件,时间也是调用它本身的API,实际并不影响,用系统的时间的是也是可以 ...

  9. 《我想进大厂》之JVM夺命连环10问

    这是面试专题系列第五篇JVM篇. 说说JVM的内存布局? Java虚拟机主要包含几个区域: 堆:堆Java虚拟机中最大的一块内存,是线程共享的内存区域,基本上所有的对象实例数组都是在堆上分配空间.堆区 ...

  10. js扩展方法(数组不重复推入)

    扩展方法是一个很有趣的东西. 使用prototype在原始的类型上添加自己需要的方法.方便在一些常用的情况下使用,比如说字符串的String.trim()清除字符串前后的空格(当然这个方法内置已经有了 ...