计算化学公社

标题: Gromacs动力学后处理关键帧快速提取 [打印本页]

作者
Author:
jackshoulder    时间: 2025-7-28 15:06
标题: Gromacs动力学后处理关键帧快速提取
本帖最后由 jackshoulder 于 2025-7-28 15:06 编辑

Gromacs动力学后处理关键帧快速提取



1、前言

此脚本为一个适用于gromacs跑完动力学之后,进行快速的关键帧提取的脚本。为什么做这样一个东西,由于之前每次跑完动力学之后,需要观察一个动态变化过程,但做成动画比较麻烦且有些期刊在投稿时,对上传文件有要求,可能视频上传太大,把图片转动图又比较模糊。因此我在众多文献的补充材料以及正文中,发现大家都是将动力学过程截取关键帧做成可视化的图片,进行静态展示,这种需要提取很多帧,一般是10帧以上,这个一一般就情况而定。例如:

(1)你跑了100ns,如果每5000步保存一帧,步长2fs,那你100ns则有1万帧构象,那么你也不能全部都保存为pdb再去做可视化,所以一般就每隔10ns取一帧(共10个pdb),或者5ns取一帧(共20个pdb);这里基本上是一些常规体系,比如蛋白-蛋白,蛋白-小分子,适配体-小分子,核酸-核酸,蛋白-核酸等体系。如下图Fig. 3B


(2)另一种体系,则是需要导很多帧,比如两个小分子,相互作用,尤其是多环芳烃与小分子的相互作用(主客体相互作用)。例如:https://doi.org/10.1021/acs.jctc.4c01361;这篇文献中的图2D,从图上目测应该有100帧进行了叠加,以展示主客体分子中,主体的结构稳定性和波动程度,这种就需要导很多帧进行叠加可视化。

因此此脚本,主要目的就是用于动力学轨迹中,从0ns-XXns,每隔XXns导一帧。此脚本稍微简单,这里做一个简单分享。脚本为bash脚本,大家在ubuntu系统看可以直接bash ./脚本即可运行。





2、脚本细节

名称:auto_frame.bash

  1. for i in {0..500..5}; do
  2.     time=$(($i * 1000))
  3.     gmx trjconv -s md_0_1.tpr -f fit.xtc -o frame_${i}ns.pdb -b $time -e $time -n index.ndx<<EOF
  4. 6
  5. EOF
  6. done
复制代码
逻辑:第一行,“0”为起始(ns),“500”结束节点(ns),“5”为间隔多少ns。

          第三行,则是命令,-s后边需要提供你的tpr文件,-f后边需要提供你的轨迹,-o -b -e后边内容基本可以保持不变;

          第四行,“6”是你当前要导出关键帧的组号(在index.ndx中的组号)

使用方法:大家直接下载 (, 下载次数 Times of downloads: 0)    修改后运行即可,如:“bash ./auto_frame.bash”即可。

注意:修改,建议只修改第一行中的起始,结束,间隔的数字,第三行,自己的输入文件,tpr和xtc;第四行的组号。

3、结语

脚本很简单,大家也可以视情况,根据自己所需,进行DIY。
作者
Author:
student0618    时间: 2025-7-28 15:30
gmx trjconv -skip 也可以实现每N帧提取。

(, 下载次数 Times of downloads: 1)
作者
Author:
jackshoulder    时间: 2025-7-28 16:11
student0618 发表于 2025-7-28 15:30
gmx trjconv -skip 也可以实现每N帧提取。

好的,我学到了,感谢!




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