计算化学公社
标题:
计算双氢键模型的个数出错
[打印本页]
作者Author:
退休老干部
时间:
2021-10-11 11:15
标题:
计算双氢键模型的个数出错
本帖最后由 退休老干部 于 2021-10-11 11:16 编辑
我先用amber里的distance和angle计算每一帧轨迹的两个分子中特定重原子之间的距离和角度,然后选取满足小于3.5埃大于120度的帧,把满足条件的帧相加,得到总帧数。(两种分子各20个),我想问问下面这个脚本写得有问题吗?我算出来结果跟预期不符,在使用distance和angle之前不需要image轨迹吧?
--------------------------------------------------------------------------------------------------------------------------------------
cat > trajin.in << EOF
parm com.prmtop
trajin md1.crd
trajin md2.crd
trajin md3.crd
trajin md4.crd
trajin md5.crd
trajin md6.crd
trajin md7.crd
trajin md8.crd
trajin md9.crd
trajin md10.crd
EOF
let "i=1"
while [ $i -le 20 ]
do
let "j=21"
while [ $j -le 40 ]
do
cat >> trajin.in << EOF
distance name1${j}_${i} :$j@O2 :${i}@N2 out d${j}_${i}.dat
distance name2${j}_${i} :$j@O1 :${i}@N1 out d${j}_${i}.dat
angle name3${j}_${i} :$j@O2 :${i}@H13 :${i}@N2 out d${j}_${i}.dat
angle name4${j}_${i} :$j@O1 :${i}@H12 :${i}@N1 out d${j}_${i}.dat
EOF
let "j++"
done
let "i++"
done
cpptraj < trajin.in >trajin.out
let "i=1"
while [ $i -le 20 ]
do
let "j=21"
while [ $j -le 40 ]
do
printf "%10s%10s%10s%10s%10s" "0" "0" "0" "180" "180" >> d${j}_${i}.dat
cat d${j}_${i}.dat |awk 'NR>1{if($2<=3.5 && $3<=3.5 && $4>=120 && $5>=120 ) {print $0}}' >${j}_${i}.dat
printf "%10d%10d" ${j} ${i} >> result
cat ${j}_${i}.dat |awk 'END{printf "%10.2f\n", NR-1 }' >> result
let "j++"
done
let "i++"
done
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3