计算化学公社

标题: 求助轨迹分析 协方差作图细节 [打印本页]

作者
Author:
kunkun    时间: 2015-9-9 22:42
标题: 求助轨迹分析 协方差作图细节
请问下大伙,在MD完之后,如何统一化协方差的color scale...差异太....试了半天xpm2ps中所有的选项都没法搞定。打开xpm里的矩阵都被字母替代了。。难道要全部替换成原来的数值再放回MATLAB里作图么..有木有更简单快捷的方法!
(, 下载次数 Times of downloads: 29)




作者
Author:
sobereva    时间: 2015-9-10 08:58
字母就是表示的数据值,16进制而已,可以参考比如
https://en.wikipedia.org/wiki/X_PixMap
转换成数据得自行写程序。

你可以修改一下xpm2ps的代码,将color scale弄成固定值而不自动判断就行了,这应该很简单。
作者
Author:
kunkun    时间: 2015-9-10 15:17
sobereva 发表于 2015-9-10 08:58
字母就是表示的数据值,16进制而已,可以参考比如
https://en.wikipedia.org/wiki/X_PixMap
转换成数据得 ...

谢谢sob老师给的提示,已经解决了。
作者
Author:
kunkun    时间: 2015-9-10 15:22
更新解决办法:帮助有需要的同学~
应该是修改g_covar的相关代码。(看了半天xpm2ps没找到xpm输出color scale的相关判断语句)
在/Users/kunkun/Documents/gromacs-5.0.4/src/gromacs/gmxana下,修改gmx_covar.c。
if (xpmafile)
    {
        min = -1;
        max = 1;
        snew(mat2, ndim/DIM);
        for (i = 0; i < ndim/DIM; i++)
        {
            snew(mat2, ndim/DIM);
        }
        for (j = 0; j < ndim/DIM; j++)
        {
            for (i = 0; i <= j; i++)
            {
                mat2[j] = 0;
                for (d = 0; d < DIM; d++)
                {
                    mat2[j] += mat[ndim*(DIM*j+d)+DIM*i+d];
                }
                mat2[j] = mat2[j];
            }
        }
把最大值和最小值,分别改为-1 ,1 。(其他值也可以)
把下面的两个if判断最大值最小值的语句删掉 保存即可。
重新编译安装gromacs。运行gmx covar -xpma
直接就能得到下图。可以作为标准化的协方差图,观察原子内部的运动。
以下是更新后做的图~
(, 下载次数 Times of downloads: 36)


作者
Author:
tangzi_via    时间: 2023-6-28 21:42
楼主请问一下您,对角线的原子的协方差不应该是1吗?我看您的矩阵似乎对角线深浅不一,他原始的最大值和最小值是0.442和-0.12,不知道是哪里我理解得不对吗?





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