计算化学公社

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

[GROMACS] 利用gmx读取LAMMPS模拟的轨迹并进行后处理分析

[复制链接 Copy URL]

252

帖子

3

威望

1874

eV
积分
2186

Level 5 (御坂)

本帖最后由 wangyueda 于 2024-6-3 23:05 编辑

最近研究了一下如何利用gmx读取LAMMPS(简称lmp)模拟的轨迹并进行后处理分析,具体总结如下:

前期工作:

0.1 跑lmp的轨迹格式:其他版本的lmp我不太清楚,我这里使用的2023 Aug 2是可以保存成gmx可读的xtc格式的,具体in文件中相关参数如下:
  1. dump            1 all xtc 100 dump.xtc
复制代码
这里我设置每隔100步就保存一次轨迹文件。


1. 相关软件版本

LAMMPS 2023 Aug 2
GROMACS 2021.7 (ps 这里我试了2022.6版本貌似有bug,具体我记得公社有个帖子说了这个问题,反正gmx>=2022貌似都有问题,哪位老师同学记得可以放在评论区)
OVITO 3.10.6
Multiwfn 3.8(dev), release date: 2024-May-8

2. gro文件和ndx文件获取

2.1 先用ovito将lmp的初始结构文件(一般为.data或者.lmp)转换为xyz文件,这里假设为init.xyz。再利用Multiwfn将init.xyz转换为gro文件init.gro,
具体命令为:
  1. Multiwfn init.xyz
  2. \n
  3. 100
  4. \n
  5. 2
  6. \n
  7. 34
  8. \n
  9. \n
  10. ctrl c
复制代码
其中\n表示回车,这样就得到了init.gro,检查init.gro最后一行盒子尺寸是否正确。

2.2 利用
  1. gmx make_ndx -f init.gro -o system.ndx
复制代码

命令制作体系的索引文件,一般使用a+元素名称即可(e.g. a C表示选择体系中的碳原子),选择完毕后输入q保存。(熟悉gmx的同学这步应该不需要我教)


3. 计算msd和rdf

3.1 计算msd,使用
  1. gmx msd -s init.gro -f dump.xtc -n system.ndx -rmcomm -o msd.xvg
复制代码

计算msd,根据提示选择目标原子,这里如果想计算某一方向上的msd也可以,例如前面命令中加入-type x即为计算x方向的msd,计算完会在msd.xvg的第20行得到扩散系数。如果需要指定拟合区间可以使用-beginfit和-endfit指定。-rmcomm一定得加上,lmp貌似没有移除质心位移。

3.2 计算rdf, 使用
  1. gmx rdf -s init.gro -f dump.xtc -n system.ndx -rmax 1
复制代码

根据提示选择计算原子和参考原子,还可以加入-cn顺带计算配位数,这里不再赘述

第一次写教程,本人水平有限,请各位老师多批评指正~



评分 Rate

参与人数
Participants 3
威望 +1 eV +4 收起 理由
Reason
FrancisCho + 1 谢谢分享
hdhxx123 + 3 好物!
sobereva + 1

查看全部评分 View all ratings

66

帖子

0

威望

6515

eV
积分
6581

Level 6 (一方通行)

2#
发表于 Post on 2024-5-31 06:46:35 | 只看该作者 Only view this author
谢谢分享!

252

帖子

3

威望

1874

eV
积分
2186

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2024-5-31 16:45:02 | 只看该作者 Only view this author
其实这里我有个小问题想请教下卢老师@sobereva ,就是这里gmx msd -rmcomm选项是从哪个文件中提取体系原子的质量信息的(没有质量的话自然没法算质心的位置)?我查了gmx手册没有查到,而这里的xtc和gro文件显然是不含有质量信息的...

6万

帖子

99

威望

5万

eV
积分
120165

管理员

公社社长

4#
发表于 Post on 2024-6-1 10:06:47 | 只看该作者 Only view this author
wangyueda 发表于 2024-5-31 16:45
其实这里我有个小问题想请教下卢老师@sobereva ,就是这里gmx msd -rmcomm选项是从哪个文件中提取体系原子 ...

可能是根据原子名猜的
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

252

帖子

3

威望

1874

eV
积分
2186

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2024-6-3 23:00:42 | 只看该作者 Only view this author
本帖最后由 wangyueda 于 2024-6-3 23:02 编辑
sobereva 发表于 2024-6-1 10:06
可能是根据原子名猜的

好的,谢谢卢老师,我之前担心这么操作会没法读取元素质量信息从而导致-rmcomm“形同虚设”,后面特地用sobtop生成了一个体系的伪top文件(并不是真正用来跑gmx mdrun,只是单纯的想把元素质量信息给出),结合一个mdp文件使用gmx grompp创建出体系的tpr文件,想着生成的tpr文件肯定包含体系中各个元素的质量信息,结果用
  1. gmx msd -s init.gro -f dump.xtc -n system.ndx -rmcomm -o msd.xvg
复制代码

  1. gmx msd -s init.tpr -f dump.xtc -n system.ndx -rmcomm -o msd.xvg
复制代码
计算得到的扩散系数完全一样(包括拟合误差),这才觉得第一条指令gmx确实是读取了(或者是猜了)原子质量的(ps 同时了对比了加了-rmcomm和不加-rmcomm的结果,发现得到的扩散系数不一致)

1

帖子

0

威望

105

eV
积分
106

Level 2 能力者

6#
发表于 Post on 2024-6-16 17:14:13 | 只看该作者 Only view this author
楼主您好,我用您的方法生成的rdf图有点奇怪呈现锯齿状,请问您生成的rdf是正常的吗,希望能得到解答。附上我用的.gro以及lammps输出文件与输入结构 solution.gro (12.49 KB, 下载次数 Times of downloads: 3) input.lammps (1.01 KB, 下载次数 Times of downloads: 2)

202406161713586406..jpg (83.05 KB, 下载次数 Times of downloads: 67)

202406161713586406..jpg

18

帖子

0

威望

439

eV
积分
457

Level 3 能力者

7#
发表于 Post on 2025-1-23 23:54:07 | 只看该作者 Only view this author
您好, 看了您这篇帖子于是尝试着想去使用gmx计算msd,我用vmd读取data文件并输出gro文件,使用dump输出的xtc文件,我也有一个关于masses的疑惑,就是在lammps中一般是使用数字去表示的原子类型,其输出的gro文件在原子类型一列也确实是数字,这导致我在使用gmx计算msd时,出现报错“Masses were requested”,所以您通过ovito将data文件转换为xyz时,再通过multiwfn将其转换为gro文件时,这一步骤和vmd直接得到的gro文件有什么不同吗?

365

帖子

5

威望

3868

eV
积分
4333

Level 6 (一方通行)

Nerv

8#
发表于 Post on 2025-1-24 10:40:41 | 只看该作者 Only view this author
Gonglinquan 发表于 2025-1-23 23:54
您好, 看了您这篇帖子于是尝试着想去使用gmx计算msd,我用vmd读取data文件并输出gro文件,使用dump输出的x ...

你在VMD里直接用下面的命令转换一下原子名就行了
[atomselect top "name 1"] set name C
God's in his heaven,all is right with the world

63

帖子

1

威望

2056

eV
积分
2139

Level 5 (御坂)

9#
发表于 Post on 2025-1-24 17:10:54 | 只看该作者 Only view this author
wangyueda 发表于 2024-5-31 16:45
其实这里我有个小问题想请教下卢老师@sobereva ,就是这里gmx msd -rmcomm选项是从哪个文件中提取体系原子 ...

考虑用我这个脚本。https://github.com/tamaswells/La ... /master/data2gmx.py

18

帖子

0

威望

439

eV
积分
457

Level 3 能力者

10#
发表于 Post on 2025-1-25 04:19:25 | 只看该作者 Only view this author
Lacrimosa 发表于 2025-1-24 10:40
你在VMD里直接用下面的命令转换一下原子名就行了
[atomselect top "name 1"] set name C

谢谢您的回复,我去试试看

7

帖子

0

威望

126

eV
积分
133

Level 2 能力者

11#
发表于 Post on 2025-3-21 11:00:32 | 只看该作者 Only view this author
您好,请问计算msd的方法中-rmcomm是不是现在不能用了?在官网manual搜gmx msd没有关于-rmcomm的说明,直接使用时也发生了”Error in user input:Invalid command-line options Unknown command-line option -rmcomm“报错。不带这个option会不会导致计算不准确?

9

帖子

0

威望

47

eV
积分
56

Level 2 能力者

12#
发表于 Post on 2025-3-27 11:04:20 | 只看该作者 Only view this author
“如何利用gmx读取LAMMPS(简称lmp)模拟的轨迹并进行后处理分析”,可是为什么过程看起来像是用初始结构进行格式转化后重新计算得到相关计算结果,并不是直接处理LAMMPS得到的轨迹文件呢(我不太懂GROMACS,但是想找一个可以处理LAMMPS输出轨迹文件melt.xyz的软件计算MSD)

本版积分规则 Credits rule

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

GMT+8, 2025-8-16 18:50 , Processed in 0.230913 second(s), 30 queries , Gzip On.

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