计算化学公社

标题: 请问有人知道如何使用VMD合并NAMD跑出来的两段轨迹嘛 [打印本页]

作者
Author:
yusang    时间: 2022-9-2 20:59
标题: 请问有人知道如何使用VMD合并NAMD跑出来的两段轨迹嘛
                 用的是NAMD进行分子动力学模拟,准备跑30ns平衡,但中途断电了,所以重新制作conf文件等继续完成平衡,最后共有两个dcd文件(一个是第一次跑的,另一个是接着续跑的),现在想把两段轨迹合并接成完整的一条,再去source各类脚本,出来的就是完整30ns的数据。请问在VMD中有什么方法可以实现嘛?感谢大佬们

作者
Author:
fhh2626    时间: 2022-9-3 10:04
把两段dcd读进来,然后另存为一个新的dcd...
作者
Author:
乐平    时间: 2022-9-3 10:21
如果前一段轨迹文件的末尾没有什么报错,或者坐标不完整的情况。那么直接在 Linux 命令行输入

  1. cat file1 file2 >> all
复制代码


cat 命令会将 file1 和 file2 按顺序合并成 all.

这里的 file1 是你的第一段轨迹文件,file2 是你的第二段轨迹文件, all 是合并后的轨迹文件。


作者
Author:
ene    时间: 2022-9-8 01:33
乐平 发表于 2022-9-3 10:21
如果前一段轨迹文件的末尾没有什么报错,或者坐标不完整的情况。那么直接在 Linux 命令行输入

这怎么可能。。。DCD是个有内部格式的二进制文件,它的文件头里面记录了轨迹的帧数。。。你光把两个文件拼起来,不去修改文件内部的数据有什么意义。。。
作者
Author:
lyj714    时间: 2022-9-8 13:39
本帖最后由 lyj714 于 2022-9-8 13:48 编辑
ene 发表于 2022-9-8 01:33
这怎么可能。。。DCD是个有内部格式的二进制文件,它的文件头里面记录了轨迹的帧数。。。你光把两个文件 ...

dcd轨迹开头记录了总帧数吗?不太了解这种格式,我觉得不应该记录总帧数,这样如果续跑岂不是程序要到头来改这个东西。xtc这种倒是可以cat,因为本身就是二进制读,如果不管每一帧时间戳的话。
作者
Author:
ene    时间: 2022-9-8 17:11
本帖最后由 ene 于 2022-9-9 01:59 编辑
lyj714 发表于 2022-9-8 13:39
dcd轨迹开头记录了总帧数吗?不太了解这种格式,我觉得不应该记录总帧数,这样如果续跑岂不是程序要到头 ...

因为DCD本质上是个FORTRAN unformatted binary,虽然读写比较快,但是扩展性和灵活性非常差,是一种很过时的标准。unformatted binary的每个record开头都会有个header,里面记录了数据的大小,这就是总帧数的来源。就像你说的,新的程序就不该再用FORTRAN unformatted binary这种垃圾格式。你可以看看NAMD开发者是怎么评价DCD的:
https://www.ks.uiuc.edu/Research ... dlib_8C_source.html
  1.     7 /*
  2.     8    dcdlib contains C routines for reading and writing binary DCD
  3.     9    files.  The output format of these files is based on binary FORTRAN
  4.    10    output, so its pretty ugly.  If you are squimish, don't look!
  5.    11 */
  6. ...
  7.   795 /*   No useful file format description of the DCD format can be found.  */
  8.   796 /*   The closest approximation purporting to be a format description is */
  9.   797 /*   a block of fortran formated statements.  Ultra lame.               */
  10.   798
  11.   799 /*   Therefore I simply reverse engineered the sequential output.       */
  12.   800 /*    -EJB */
复制代码

作者
Author:
人生若只如初见    时间: 2024-9-22 16:40
请问您最后怎么 解决的呢 我也遇到了同样的问题
作者
Author:
xinlanyh    时间: 2024-9-25 20:39
人生若只如初见 发表于 2024-9-22 16:40
请问您最后怎么 解决的呢 我也遇到了同样的问题

有个插件叫catdcd,可以解决这个问题
作者
Author:
woxun    时间: 2025-11-8 18:11
可以借助DS软件里面的Process Trajectory File功能




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3