计算化学公社

标题: 请问gromacs能做出把rmsd和簇序号放在一张图上吗 [打印本页]

作者
Author:
alystone    时间: 2018-7-3 11:06
标题: 请问gromacs能做出把rmsd和簇序号放在一张图上吗
如题,请教gromacs是否能够把rmsd图 不同区域的的颜色用簇的序号来表示,就像下图一样。如果能做的话,该如何做呢。谢谢。

作者
Author:
sobereva    时间: 2018-7-4 02:10
自己写个程序,根据gmx cluster的归簇的输出,把RMSD曲线数据根据簇编号拆分成不同文件,然后在origin里绘制到一起,每套数据用不同颜色
作者
Author:
alystone    时间: 2018-7-4 07:39
sobereva 发表于 2018-7-4 02:10
自己写个程序,根据gmx cluster的归簇的输出,把RMSD曲线数据根据簇编号拆分成不同文件,然后在origin里绘 ...

好的,谢谢sob老师。
作者
Author:
alystone    时间: 2018-7-4 08:51
我写了这一过程,希望对需要的人有帮助。
#!/bin/bash

function usage {
echo "   Usage: gen_rmsd_clust.sh clust-id.xvg rmsd.xvg            "
exit 1
}

if [ $# -lt 2 ] ; then
  usage
  exit 1
fi

file1=$1
file2=$2

awk '{if($1~/[0-9]/){print $2}}' ${file1} > temp1_${file1}

awk '{sum[$1]+=1}END{for(i in sum)print i"\t"sum[i]}' temp1_${file1} > temp2_${file1}

awk '{printf $1" "}' temp2_${file1} > temp3_${file1}

clusters=`cat temp3_${file1}`

for cluster in $clusters
do
        awk -v cluster=$cluster '{if($1~/[0-9]/ && $2==cluster){printf $1".0000000 "}}' ${file1} > cluster_$cluster
        frames=`cat cluster_$cluster`
        rm -f rmsd_$cluster
                 for frame in $frames
                 do
                             awk -v frame=$frame '{if($1~frame){print $0}}' ${file2} >> rmsd_$cluster
                done

done







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