自写小工具集合

分享一些小工具(Windows平台)。

gmx energy产生的数据平滑

参考博文xvg曲线中心移动平均平滑脚本,平滑结果与xmgrace/qtgrace保持一致。下载地址,使用方式:

  • 假如使用数据点及其前后两点的平均值作为平滑值,则用:

    1
    echo 5 | smoothxvg.exe data.xvg

    输出文件smooth.dat即为平滑后的数据

计算蛋白的二级结构占总氨基酸的百分比

首先利用dssp或者stride得到输出文件,然后自写小程序进行分析即可。下载链接

计算红外光谱

相关文献参看使用GROMACS计算红外光谱,文中提到的采用电流矢量vq来进行自相关分析得到红外光谱。实际操作起来也比较耗时,特别是进行轨迹转换的时候,因此我这里提供了一个工具gmx_trr2vq,能够直接将trr二进制文件中的原子速度乘以其电荷,将整体的电流矢量写入单个原子的速度中,产生新二进制vq.trr,和文章中提到的方法一致。直接通过对其轨迹的处理能够更加高效。最后你可以通过gmx velacc -f vq.trr -s md.tpr -n index.ndx -os得到红外光谱。

tpr文件中提取原子电荷信息

相关文章参看使用GROMACS计算红外光谱将GROMACS的原子电荷信息读入VMD的方法。但是这两篇博文中的脚本存在bug,比如前面的那个bash脚本受gromacs版本的限制,以及无法合并重复分子组;后面的那个我测试过,当分子组大于60好像报错,当然自己改一改就能用。这里我也自个写了个C版本的(支持所有GROMACS版本),记之。【新增】:gmx_tpr2chg

计算多对原子之间的距离

阅读GROMACS计算距离的方法及注意点一文,可以看出gmx distance对于计算多对原子距离存在缺陷,且当对数很多的时候(我测试的是2200对)就会产生Segmatation fault,因此我给出gmx_distance,能够解决此问题。因为实际上轨迹文件中的原子顺序编号与index中的原子编号是对应的,因此这个工具不需要tpr文件。index.ndx文件中只能包含需要计算的组(一个group),如果你用gmx工具产生,请删除其他不需要计算的组

Pi-Pi堆积距离和角度

参考博文Pi-Pi堆积距离和堆积角度的计算,这里我给出Windows系统下的程序gmx_pistack

三点水模型(OW-HW1-HW2)转换四点(OW-HW1-HW2-MW)

这是为了便于在用三点水模型构建好的分子结构(.gro格式)基础上进行修改为带虚拟位点[MW]的四点水模型。虽然网上也有用awk去做,但是对于总原子数超过10000时候是有bug的,你需要进行适当修改。
下载链接:3p_to_4p

平面与直线的夹角

用过GROMACS工具的人可能了解gmx gangle对线性/平面分子仅限于两点/三点拟合,无法对柔性分子进行多点拟合。因此我给出下面工具gmx_lp,能够进行多数据拟合,只需要定义原子组即可。也可以得到线性分子与其他平面型分子的夹角。
下载链接:gmx_lp

计算水分子三体序参数[F3/AOP]程序

以前写过以gmx trjconv -exec外挂形式的脚本,现在采用GROMACS库来完成。能够计算水分子角序参数(或者又叫三体序参数),参看博文GROMACS分析教程:水分子序参数的计算
下载链接:gmx_aop