使VMD读取Gromacs轨迹文件中速度信息方法.pdfVIP

  • 0
  • 0
  • 约5.1千字
  • 约 8页
  • 2026-01-30 发布于北京
  • 举报

使VMD读取Gromacs轨迹文件中速度信息方法.pdf

思想家公社的门口一量化·分子模拟·二次元

此blog全部文章索引:

。计算化学公坛:

。思想家公社(讨论计算化学为主,加入

需注明研究方向)。Sobereva的硬件资料库:

[]使VMD读入Gromacs产生的trr轨迹中速

度信息的方法

2012-01-0704:09

使VMD读入Gromacs产生的trr轨迹中速度信息的方法

文/SoberevaFirstrelease:2012-Jan-6

1.前言

Gromacs的trr轨迹文件中不仅包含坐标,还可以包含速度、受力等信息。只要让

mdp文件中nstvout等于nstxout,trr里每帧结构信息都将伴随对应的速度信息。

gro文件中也记录着速度信息,也就是第45列后面的三列。

VMD里面每帧都有vx,vy,vz三个字段用于记录速度,如同每帧的x,y,z字段记录原

子坐标。但是,一直到目前的1.9.1a版本中,VMD仍然在trr或gro

文件时只坐标不速度,因此vx,vy,vz三个字段在trr/gro后仍然是空白。

竟然丢弃速度这么重要的信息,VMD的这一点十分令人匪夷所思,何况解决这个

问题对开发者来说只是举手之劳。而VMD在Iammps的轨迹时则已经可以读

取速度、受力等诸多信息了。

2.思路

让VMD能trr文件中的速度,出来三个办法:

1修改VMD的molfie插件。各种格式的文件在VMD中都是通过这个插件来,

修改其中trr文件的代码,然后重新编译VMD就可以达到目的。但是C语言

看起来太累,而且重新编译毕竟是事,尤其是对于图形程序,总得跟乱七八糟

的图形库文件相。尽管这个方法是,但经过初步研究后我不打算这么做,

还是留待以后由修改molfie插件吧。

2修改Gromacs的trjconv代码,使转换出的trr或xtc文件中的坐标部分记录速度

信息,然后在VMD载入这文件,再将其“坐标”通过tcl挪到体系轨迹的速

度字段里。但是这种做法显得古怪,改trjconv的代码也同样是事。

3第三个办法就这是本文将介绍的方法。首先将trr文件的每一帧都转换成相应的

gro文件,然后在VMD里照常轨迹文件,通过tcl将这些gro文件里记录

的速度信息写入相应帧的vx,vy,vz字段里。这种方法的好处是不需要修改和编译

VMD或Gromacs的代码,原理很透明,还可以通过修改实现一些特殊目的。

不足之处是使用tcl批量gro文件中的信息相对于VMD利用molfie

插件载入轨迹文件慢不少,但仍然是可以接受的。另一个缺点是转换出的gro文件

总大小是相应trr文件的6倍,不过一般绝不至于没有地方存它们(何况本文的脚

本很灵活,可以将整条轨迹的速度信息分次逐步载入完,对硬盘临时空间其实没有

绝对要求)。

3.方法

假设我们不仅想在VMD中观察MIO.trr中的坐标,还想将其中原子的速度信息也

载入,以供后续分析(比如通过分析局部的温度)。那么首先应当确保生成

MIO.trr所用的mdp文件中的nstvout等于nstxout。此轨迹生成后,建立一个文件

夹,比如vel。然后执行比如

trjconv-fMIO.trr-sMIO.tpr-omiku/t.gro-sep

选择system。假设轨迹有101帧,就会在miku目录下生成t0.gro,t1.gro,t2.gro…

t100.gro。

在VMD里载入一个与MIO.trr相对应的gro文件(比如生成相应mpr文件所用的

gro文件),此时VMD中会有1帧,通过选择deleteframe将这

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档