本帖最后由 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:
因此此脚本,主要目的就是用于动力学轨迹中,从0ns-XXns,每隔XXns导一帧。此脚本稍微简单,这里做一个简单分享。脚本为bash脚本,大家在ubuntu系统看可以直接bash ./脚本即可运行。
2、脚本细节
名称:auto_frame.bash
- for i in {0..500..5}; do
- time=$(($i * 1000))
- gmx trjconv -s md_0_1.tpr -f fit.xtc -o frame_${i}ns.pdb -b $time -e $time -n index.ndx<<EOF
- 6
- EOF
- done
复制代码逻辑:第一行,“0”为起始(ns),“500”结束节点(ns),“5”为间隔多少ns。
第三行,则是命令,-s后边需要提供你的tpr文件,-f后边需要提供你的轨迹,-o -b -e后边内容基本可以保持不变;
第四行,“6”是你当前要导出关键帧的组号(在index.ndx中的组号)
使用方法:大家直接下载
auto_frame.sh
(158 Bytes, 下载次数 Times of downloads: 0)
修改后运行即可,如:“bash ./ auto_frame.bash”即可。
注意:修改,建议只修改第一行中的起始,结束,间隔的数字,第三行,自己的输入文件,tpr和xtc;第四行的组号。
3、结语
脚本很简单,大家也可以视情况,根据自己所需,进行DIY。 |