计算化学公社

标题: 求助:gmx gangle 如何设置输出数据的小数位数 [打印本页]

作者
Author:
ChunLinX    时间: 2020-11-11 15:38
标题: 求助:gmx gangle 如何设置输出数据的小数位数
本帖最后由 ChunLinX 于 2020-11-12 23:21 编辑

各位老师好,在用gmx gangle生成二面角分布的数据时,输出的数据默认精确到小数点后第三位,这样绘图的时候曲线不光滑(如下图)。在论坛中看到可以编写vmd程序来得到,但因为要统计的二面角比较多,用vmd不太方便。
请问用什么方法可以设置gmx gangle输出的小数位数呢?谢谢!






作者
Author:
sobereva    时间: 2020-11-11 21:02
改源代码,重新编译
作者
Author:
liuyuje714    时间: 2020-11-11 21:32
本帖最后由 liuyuje714 于 2020-11-11 21:35 编辑

不光滑不应该是小数点精度问题,可能是你本身轨迹帧数太少。其次,如果你用的是xtc轨迹,那么默认保存数据精度就只有0.001 nm,因此你直接更改源码输出并不正确,除非你直接在mdp中同时定义xtc的输出精度到更高。当然如果你用的trr,那就不需要。
所以我还是觉得并不是精度问题。

作者
Author:
ChunLinX    时间: 2020-11-12 20:27
liuyuje714 发表于 2020-11-11 21:32
不光滑不应该是小数点精度问题,可能是你本身轨迹帧数太少。其次,如果你用的是xtc轨迹,那么默认保存数据 ...

谢谢您的回答。我的帧数为100帧,加大后结果没有什么变化。我试了修改xtc文件的数值精度,但最后输出的结果始终是三位小数,用trr文件也是三位小数。由于我得到的二面角分布比较“胖”,概率的最大值只有0.016,而精度为0.001,因此我觉得画图看起来不平整主要还是输出的位数太少引起的。
作者
Author:
ChunLinX    时间: 2020-11-12 20:30
sobereva 发表于 2020-11-11 21:02
改源代码,重新编译

谢谢老师,这样做确实有效,但是对我这种新手来说太难了,等我学会编程再尝试
作者
Author:
liuyuje714    时间: 2020-11-12 20:49
本帖最后由 liuyuje714 于 2020-11-12 20:52 编辑
ChunLinX 发表于 2020-11-12 20:27
谢谢您的回答。我的帧数为100帧,加大后结果没有什么变化。我试了修改xtc文件的数值精度,但最后输出的结 ...

你最好能给个图,帧数最好过千。区区小几百帧属实太少,如果你分的角度bin太小,根本不够
作者
Author:
ChunLinX    时间: 2020-11-12 23:22
liuyuje714 发表于 2020-11-12 20:49
你最好能给个图,帧数最好过千。区区小几百帧属实太少,如果你分的角度bin太小,根本不够

谢谢,我将图贴在上面了,bin为1°,900帧。
作者
Author:
sobereva    时间: 2020-11-13 08:59
ChunLinX 发表于 2020-11-12 20:27
谢谢您的回答。我的帧数为100帧,加大后结果没有什么变化。我试了修改xtc文件的数值精度,但最后输出的结 ...

100帧往往并不够得到平滑的结果

gmx gangle输出多少位和你用什么格式轨迹、轨迹记录精度没关系。
单纯想改输出位数,你就去把gmx gangle的输出信息里面的关键字句在gmx的源代码包里面用grep搜,很容易就能找到输出的语句,稍微一改就完了。




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