分子动力学模拟学习-Gromacs工具链

1、总体流程

在gromacs的使用说明中有一个flow chart,比较简略。以下针对一般体系(非蛋白等领域)进行了一些调整,通用性更强。

在做分子动力学模拟时,其复杂性除了以上各种输入输出文件的操作,另一点就是力场参数、原子电荷数据的获取。从本质上讲,MD模拟软件就是读取系统内原子的位置、质量、电荷、成键和非键关系,在不同的环境条件下进行计算,而我们做的就是正确地构建输入文件。

2、几何建模

各种软件都可以,最终目标是输出.pdb。从此处开始贯彻一个原则,即当系统中存在多种分子时,最好对每种分子从建模到生成拓扑文件都单独处理,最后再汇总。

对于几何文件,汇总的方式可以是通过建模软件在盒子里加入所需的分子,或者通过gmx的内置工具如editconf,solvate和insert-molucules进行。最终汇总的pdb(或者gro)文件内,各原子的编号需和汇总的拓扑文件(.top)中的原子编号一致,gmx通过该编号来对应各个原子的空间位置。

3、生成拓扑文件

3.1、x2top用于小分子或晶体

在gmx中和拓扑文件相关的文件类型有很多,有.top,.itp,.rtp,.atp。如果采用x2top工具生成拓扑文件,我们只需要关注.top和.itp类型,另外两个是用于另一个工具pdb2gmx生成拓扑文件。pdb2gmx本身适合于蛋白质、核酸等生物大分子,有许多预置的特性,不适合小分子或者晶体,但经过修改可以用于高分子聚合物,但终究是麻烦。

以下预设的情况是对于某个分子,我们并不能使用gmx的自带力场参数或原子电荷(指partial charge,以下的“原子电荷”都是这个含义),需要自行填入文献或实验数据。

.top文件有较严格的组织方式,几个部分必须按照顺序排列。一种典型的格式为:

; 行首加分号为注释语句
; gmx读取文件的逻辑是各列以空格为分隔符,连续的多个空格(不论有多少个)都会被视为是一个分隔符。所以下面标了(不重要)的项,也需要填入至少一个字符。

; 该字段分别为非键作用函数类型(LJ或buckingham),混合规则,是否考虑分子内1-4非键作用(pair),1-4非键作用的范德华作用因子,1-4非键作用的库伦作用因子
; 关于非键作用函数类型和混合规则的说明见https://manual.gromacs.org/current/reference-manual/topologies/parameter-files.html
; 关于分子内1-4非键作用见http://sobereva.com/4
[ defaults ]
; nbfunc	comb-rule	gen-pairs	fudgeLJ	fudgeQQ
1		3		yes		0.5		0.5

; 此处要填入系统内所有原子类型
; 各列分别是原子类型,该类型原子数或键类型(这列似乎不重要,填什么都可以,例如全0),原子质量(不重要,因为质量一般会在[atoms]中写),电荷(不重要,因为电荷一般会在[atoms]中写,并且同种原子电荷未必相等),
; 粒子类型(见https://manual.gromacs.org/current/reference-manual/topologies/particle-type.html#tab-ptype) ,范德华力的sigma、epsilon参数(根据nbfunc,也可能是C12、C6或者buckingham的ABC)
[ atomtypes ]
; atom_type  bond_type    mass    charge   ptype          sigma      epsilon

; 这里用来写不同原子之间的非键作用参数,对于没写的原子对则直接使用混合规则
[ nonbond_params]
; i    j 	func          sigma      epsilon

; 从这里开始直到[dihedrals],每种分子都需要写一组
; 各列含义为分子名称(可自定义),非键排除,排除相邻nrexcl个键的非键相互作用(引自https://blog.csdn.net/CocoCream/article/details/123769268) 全称可能是number of exclusion
[ moleculetype ]
; Name            nrexcl

; 分子内各原子信息,各列分别是原子编号,原子类型,残基编号(不重要),残基名(不重要),原子符号(C、H、O等),原子电荷,原子质量,
; 用于自由能计算的参数(见https://manual.gromacs.org/current/reference-manual/topologies/topology-file-formats.html#topologies-for-free-energy-calculations)
[ atoms ]
;   nr       type  resnr residue  atom   cgnr     charge       mass  typeB    chargeB      massB

; 成键参数伸缩项,各列分别是原子i的类型,原子j的类型,函数类型(见https://manual.gromacs.org/current/reference-manual/topologies/topology-file-formats.html#tab-topfile2)
; 平衡时的键长,参数1,参数2,参数3(不一定会都用上,例如funct=1时只需要参数c1,其他两个没有意义)
[ bonds ]
;  ai    aj funct            c0            c1            c2            c3

; 分子内的原子对,如果前面的gen-pairs选择了yes就会从这里读取原子对,如果这里写了参数则还会读取这里的参数
[ pairs ]
;  ai    aj funct            c0            c1            c2            c3

; 成键参数弯曲项,类似伸缩项
[ angles ]
;  ai    aj    ak funct            c0            c1            c2            c3

; 成键参数扭转项,类似伸缩项
[ dihedrals ]
;  ai    aj    ak    al funct            c0            c1            c2            c3            c4            c5

; 整个系统的名称
[ system ]
; Name
zro2_bigger

; 指定系统内各分子的数量
[ molecules ]
; Compound        #mols
zro2_bigger         1

除了全部列在此处以外,还可以通过#include语句来引用.itp文件(.itp的用处就在于此),这样可以实现对同一个分子在不同系统中的引用。不过引用时需注意将[atomtypes]字段复制到最终的.top中,因为atomtypes字段只允许出现一次。

更多关于.top的说明:

http://bbs.keinsci.com/forum.php?mod=viewthread&tid=28201&highlight=%CD%D8%C6%CB

http://bbs.keinsci.com/forum.php?mod=viewthread&tid=27657&highlight=%CD%D8%C6%CB

http://bbs.keinsci.com/thread-14723-1-13.html

http://bbs.keinsci.com/forum.php?mod=viewthread&tid=29033&extra=&highlight=top&page=1

http://bbs.keinsci.com/forum.php?mod=viewthread&tid=37240&highlight=top

http://bbs.keinsci.com/thread-19761-1-1.html

http://bbs.keinsci.com/forum.php?mod=viewthread&tid=32292&highlight=top

http://bbs.keinsci.com/forum.php?mod=viewthread&tid=27464&highlight=top

http://bbs.keinsci.com/forum.php?mod=viewthread&tid=39032&highlight=atomtypes

http://bbs.keinsci.com/forum.php?mod=viewthread&tid=19125&highlight=nonbond

下面是如何用x2top来生成上述的文件。

上面的.top文件中,可以从几何文件获取的只有原子编号,怎样将原子的位置信息转化为成键信息(两个原子是否成键),以及如何指定原子的质量和电荷呢?这就要配合.n2t文件一起使用。n2t即name to type,意义是将pdb中的各个原子映射到gmx中定义的原子类型。在原子类型中,带有该原子与谁成键,以及该类型原子的质量和电荷信息(其中电荷信息没用,因为同一类型的原子电荷未必相同)。典型的n2t文件:

; 原子符号    原子类型    电荷    质量    成键数量    成键原子1 键长1    成键原子2 键长2 ……
ZR   ZRO2_ZRO8   0     91.224    8    O  0.2195   O 0.2195   O 0.2195   O 0.2195   O 0.2195   
                                      O  0.2195   O 0.215    O 0.24
ZR   ZRO2_ZRO6   0     91.224    6    O  0.2195   O 0.2195   O 0.2195   O 0.2195   O 0.2195           
                                      O  0.2195
O    ZRO2_OZR4   0     15.9994   4    ZR 0.2195  ZR 0.2195  ZR 0.2195  ZR 0.2195
O    ZRO2_OZRH   0     15.9994   2    ZR 0.215    H 0.11
H    ZRO2_HO     0     1.008     1     O 0.11
O    ZRO2_OZR3   0     15.9994   3    ZR 0.215   ZR 0.215   ZR 0.215

n2t中一定要包含所有的原子类型,否则会出现not found错误。如果已经定义了所有类型,仍然有原子not found,则需要检查键长是否合适,是否与几何对应。不一定完全相同,但一定要接近,可以通过建模软件进行测量(gmx的长度单位是nm)。

关于获取原子电荷的方法

原子电荷应与其力场适配,通常研究力场的文献内会写明拟合力场参数时,所使用的原子电荷。如果找不到对应电荷,可能需要通过第一性原理计算软件进行计算。可以计算原子电荷的路线包括MS计算QEq或者通过dmol3或castep计算mulliken或hirshfeld电荷、gaussian和antechamber拟合RESP电荷、gaussian和multiwfn拟合RESP电荷、cp2k计算RESP电荷等。

关于获取力场参数的方法

力场参数一般通过#include对应的力场的.itp文件来进行,如果知道参数,也可以根据gmx自带的力场.itp文件手写。

如果对成键作用没有要求(例如研究固液界面,固体发生的变化不重要),也可以在x2top中直接写入成键参数,见GROMACS教程:创建周期性体系的拓扑文件:以石墨烯为例|Jerkwin

其他Interatomic Potentials - LAMMPS Tube

单位转换https://www.colby.edu/chemistry/PChem/Hartree.html

3.2 高分子的拓扑

高分子拓扑的生成可以魔改pdb2gmx,或用antechamber+actype。更简单逃课的方法是利用现成工具MD模拟中力场文件生成工具 - 知乎、自己开发的力场文件生成工具 - 知乎

经过尝试,针对聚合物,比较好的路线是在Marvin JS中画好分子式,复制至PolyParGen生成.gro和.itp,支持oplsaa和amber力场。自行上传需要cml格式文件,可以通过OPENBABEL - Chemical file format converter进行格式转换,不过比较大的分子似乎转换会失败。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/579595.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

眼图仪参数理解和一些测量指标

参考资料: https://www.eet-china.com/mp/a35960.html 一:关于眼图仪: :::warning ●如果追溯历史,大约47年前,眼图就已经开始广泛应用。在1962年-2002的40年间,眼图的测量方法是基于采样示波器的传统方法…

3GPP相关资料收集整理

1、3GPP介绍 主页:3GPP – The Mobile Broadband Standard 3GPP(3rd Generation Partnership Project,第三代合作伙伴计划)成立于1998年12月,多个电信标准组织伙伴共同签署了《第三代伙伴计划协议》。3GPP最初的工作范围是为第三代移动通信系统制定全球适…

IDEA实现Springboot项目自动热部署

每当我们在修改代码时,往往需要重新启动项目,这样不仅浪费时间而且很麻烦,我们可以通过IDEA的热部署来提高效率 1、首先点file >> settings >> Build Excution >> Compire,选择Build project auto matically 2.…

linux kernel内存泄漏检测工具之slub debug

一、背景 slub debug 是一个debug集,聚焦于kmem_cache 分配机制的slub内存(比如kmalloc),这部分内存在内核中使用最频繁,slub debug其中有相当部分是用来处理内存踩踏,内存use after free 等异常的&#x…

虚良SEO多口子权重蜘蛛池怎么正确使用

一、蜘蛛池的工作原理 蜘蛛池的核心在于通过大量的页面和内容,提高网站的搜索引擎排名,从而获得更多的流量和曝光机会。这种策略通常被用于网站推广和SEO优化。通过将网站链接发布到蜘蛛池中,可以增加网站的曝光率,吸引更多的搜索…

数据结构与算法--稀疏数组

1.引入 比如在编写五子棋时要实现存盘退出和继续上盘的功能。 如果使用二维数组来记录,每行每列,白子对应2,黑子对应1,默认值对应0.然后这里黑子对应二维数组a[1][2]。白子对应二维数组a[2][3]。 如果棋子很少,那么这…

AtCoder Regular Contest 176 C. Max Permutation(计数 分类讨论)

题目 思路来源 乱搞ac 题解 1. 如果有边的权值是1,意味着有两个点的权值都是1,无解 2. 如果一个点i被多个max条件控制,它的值不能超过这些max里最小的那个,记做up[i] 3. 如果同一个权值w对应的边不少于2条,这些边…

Spring Task学习记录

介绍 cron表达式 cron表达式在线生成器 链接: link 入门案例 Component Slf4j public class MyTask {/*** 定时任务 每隔5秒触发1次*/Scheduled(cron "0/5 * * * * ?")public void executeTask(){log.info("定时任务开始执行:{}", new Date…

AtCoder Beginner Contest 173 F - Intervals on Tree(计数 树的性质 贡献)

题目 思路来源 洛谷题解AT_abc173_f Intervals on Tree 题解 - 洛谷专栏 题解 一棵树,考虑加边的过程,加一条边减少一个连通块 那么,逆向这个过程,没删一条边,就多一个连通块 树:点的个数边的个数1 森…

后端端口也可以直接在浏览器访问

比如在浏览器输入http://localhost:8078/hello/helloword访问的是后端的 RestController RequestMapping("/hello") public class HelloWord {RequestMapping("/helloword")public String helloWord(){return "hello word";} }浏览器将会返回

JavaEE——介绍 HTTPServlet 三部分使用与 cookie 和 session 的阐述

文章目录 一、HTTPServlet介绍其中的关键 三个方法 二、HTTPServletRequest(处理请求)1.分块介绍方法作用get 为前缀的方法字段中 含有 getParameter 字段 的方法(前后端交互):字段中 含有 getHeader 字段 的方法: 2.解释前后端的交互过程3.使用 json 格…

科技感十足特效源码

源码介绍 科技感十足特效源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面 源码截图 源码下载 科技感十足特效源码

Python_AI库 Matplotlib的应用简例:绘制与保存折线图

本文默认读者已具备以下技能: 熟悉Python基础语法,以自行阅读python代码块熟悉Vscode或其它编辑工具的应用 在数据可视化领域,Matplotlib无疑是一个强大的工具。它允许我们创建各种静态、动态、交互式的可视化图形,帮助我们更好…

pyaibote--安卓自动化环境配置与基础的使用方法

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 pyaibote介绍 pyaibote是一个全新,强大的办公自动化库。 支持找图,识别像素等操作。 比appium快十倍。 文章介绍 有大佬给我提到这个库后,我来查看。然后发现这个库太新了&am…

Coursera: An Introduction to American Law 学习笔记 Week 04: Constitutional Law

An Introduction to American Law 本文是 https://www.coursera.org/programs/career-training-for-nevadans-k7yhc/learn/american-law 这门课的学习笔记。 文章目录 An Introduction to American LawInstructors Week 04: Constitutional LawKey Constitutional Law TermsSup…

redission原理笔记

加锁成功的线程,将UUID和线程id和key绑定, 加锁成功后,内部有一个看门狗机制,每隔十秒看下当前线程是否还持有锁,延长生存时间。 没有获取锁的就一直自旋等待,直到超时。 如果redis是主从同步的&#xff0…

Android Studio gradle 默认sourceSets配置

一. AS默认的sourceSets配置 sourceSets在Android插件中如何使用的:android {sourceSets {main {manifest.srcFile AndroidManifest.xmljava.srcDirs [src]resources.srcDirs [src]aidl.srcDirs [src]renderscript.srcDirs [src]res.srcDirs [res]assets.srcD…

Anti Rookit -- 检测隐藏进程

Anti Rookit 一:检测隐藏进程 引言 检测隐藏进程除了众所周知的枚举进程ID之外,还有枚举句柄表的方式。不过今天给大家带来的是第三种方法。 探究 应用层通过接口 C r e a t e P r o c e s s \textcolor{cornflowerblue}{CreateProcess} CreateProcess…

现代信号处理7_最小二乘(CSDN_20240428)

最小二乘法最早由高斯在18世纪提出,几百年以来,这种方法一直被广泛应用。 最小二乘简介 这里是研究最小二乘的起点。随机变量只能存在与理论计算中,我们在工程实践中对随机变量的认识与理论计算中得到的关于随机变量的各种性质相比&#xff…

Penpad 再获 Animoca Brands 投资,全新生态历程

Penpad是Scroll生态的LaunchPad & Yield Aggregator平台,该平台近日在融资上取得了系列进展。据悉,Penpad在前不久率先获得了来自于Gate Labs以及Scroll联合创始人Sandy Peng的融资,并且在近日,其又获得了来自于知名加密投资机…