计算化学公社

 找回密码 Forget password
 注册 Register
楼主 Author: sobereva
打印 Print 上一主题 Last thread 下一主题 Next thread

[Gaussian/gview] 使用Gaussian时的几个实用脚本和命令

  [复制链接 Copy URL]

279

帖子

4

威望

2158

eV
积分
2517

管理员

16#
发表于 Post on 2015-5-30 20:21:41 | 只看该作者 Only view this author
大神,请收下我的膝盖
一花一世界,一叶一追寻。一曲一场叹,一生为一人

82

帖子

3

威望

1461

eV
积分
1603

Level 5 (御坂)

17#
发表于 Post on 2015-6-1 16:41:52 | 只看该作者 Only view this author
habigale 发表于 2015-3-18 14:15
例如将当前目录下包括任意级子目录下的.gjf中的M062X替换为B3LYP,执行:sed -i "s/M062X/B3LYP/g" `grep M ...

可能是因为你的13个gjf文件中都没有pbe1pbe这个关键词,或者大小写不匹配。所以··中的grep命令返回了空的文件列表,导致sed提示无输入文件。

27

帖子

0

威望

584

eV
积分
611

Level 4 (黑子)

18#
发表于 Post on 2015-7-15 23:09:32 | 只看该作者 Only view this author
有没有提取计算结果中freq计算结果的脚本,例如将zero-point correction,Thermal correction to Energy, Thermal Correction to enthalpy,Thermal correction to Gibbis Free Energy的相应的值输出到文件中的方法。谢谢!

6万

帖子

99

威望

5万

eV
积分
120060

管理员

公社社长

19#
 楼主 Author| 发表于 Post on 2015-7-16 02:06:53 | 只看该作者 Only view this author
habigale 发表于 2015-7-15 23:09
有没有提取计算结果中freq计算结果的脚本,例如将zero-point correction,Thermal correction to Energy,  ...

用grep命令加上重定向符号>就行了。
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

120

帖子

0

威望

3089

eV
积分
3209

Level 5 (御坂)

20#
发表于 Post on 2015-7-21 17:14:03 | 只看该作者 Only view this author
tanks for sharing

239

帖子

0

威望

2340

eV
积分
2579

Level 5 (御坂)

21#
发表于 Post on 2015-10-20 20:36:22 | 只看该作者 Only view this author
本帖最后由 brothers 于 2015-10-20 21:25 编辑

批处理的shell脚本,如何避免SSH连接hangup导致任务中断呢?
十室之邑,必有忠信如丘焉,不如丘之好学也。

6万

帖子

99

威望

5万

eV
积分
120060

管理员

公社社长

22#
 楼主 Author| 发表于 Post on 2015-10-20 21:42:09 | 只看该作者 Only view this author
brothers 发表于 2015-10-20 20:36
批处理的shell脚本,如何避免SSH连接hangup导致任务中断呢?


nohup ./runall.sh &
然后exit登出,就没问题了

或者用setsid代替nohup,这样连接断了应该也没关系
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

239

帖子

0

威望

2340

eV
积分
2579

Level 5 (御坂)

23#
发表于 Post on 2015-10-20 22:05:32 | 只看该作者 Only view this author
sobereva 发表于 2015-10-20 21:42
nohup ./runall.sh &
然后exit登出,就没问题了

谢谢老师,明天试试。
我今天用的是sh filename.sh来运行的,加上nohup没用,不知道是不是没加&的原因
前述脚本可以很方便地组合一下,依次运行所有子文件夹中的gjf,然后将chk文件转化为fchk。老师有时间可以更新一下~
十室之邑,必有忠信如丘焉,不如丘之好学也。

5

帖子

0

威望

9

eV
积分
14

Level 1 能力者

24#
发表于 Post on 2015-11-12 09:40:00 | 只看该作者 Only view this author
学习学习

81

帖子

0

威望

1103

eV
积分
1184

Level 4 (黑子)

25#
发表于 Post on 2015-11-12 20:48:02 | 只看该作者 Only view this author
如果不想有额外的list文件的话 ls *.chk|xargs -I @ echo "formchk  @"  >list;sh list;rm list

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
sobereva + 2

查看全部评分 View all ratings

124

帖子

0

威望

2775

eV
积分
2899

Level 5 (御坂)

26#
发表于 Post on 2016-1-8 15:53:28 | 只看该作者 Only view this author
本帖最后由 hxd_yi 于 2016-1-10 13:46 编辑

这个脚本可以用以显示计算结果,包括最小的频率,homo,lomo,电子能量,热力学校正数值。提醒:执行方式为:./a.sh b.com,后面参数可以更换成其他需要抓取数据的文件。
#!/bin/bash
for inf in $@; do
if ! [ -f $inf ]; then
   continue
fi
echo ' '$inf':'
echo ' -----------------------------'
if [ -z "$(head -n 1 $inf | grep 'Entering Gaussian System,')" ]; then
    echo " This File Is Not a Gaussian Log File."
    echo ''
    continue
fi
if [ -z "`tail -n 1 $inf| grep 'Normal termination of Gaussian 09'`" ]; then
   echo ' This Job Do Not Normally terminate.'
   echo ''
   tail $inf
   echo ''
   continue
fi
nf=`grep 'imaginary frequencies (negative Signs)' $inf | awk '{print $2}'`
if [ -z $nf ]; then
    nf=0
fi
# echo $nf
if [ $nf -gt 1 ]; then
    echo ' grep '$nf' imaginary frequencies'
    echo -n -e ' Max imaginary frequency is:\t'
    grep 'Frequencies --' $inf | head -n 1 | awk '{print $3}'
elif [ $nf -gt 0 ]; then
    echo ' grep '$nf' imaginary frequency'
    echo -n -e " Max imaginary frequency is:\t"
    grep 'Frequencies --' $inf | head -n 1 | awk '{print $3}'
fi
if [ $nf -eq 0 ]; then
#     echo ' no imaginary frequency'
    echo -ne " Min Frequency is:\t"
    grep 'Frequencies --' $inf | head -n 1 | awk '{print $3}'
fi
echo -ne "\n"
# str=`grep -e "Freq
# grep -e "^ Alpha  occ. eigenvalues" $inf | tail -n 1 | awk '{print "HOMO of Alpha:\t" $NF}'
# grep -e "^ Alpha virt. eigenvalues" $inf | head -n 1 | awk '{print "LUMO of Alpha:\t" $5}'
grep " SCF Done" $inf | tail -n 1 | awk '{print " SCF Energy:\t" $5}'
a=`grep -n 'Zero-point correction' $inf | cut -d ':' -f 1`
b=`expr $a + 7`
if [ -n "$a" ]; then
  sed -n -e "$a,$b"p $inf
else
  echo 'No Energy corrections Greppd!'
fi

str=`grep -e "Alpha  occ. eigenvalues" $inf | tail -n 1`
if [ ! -z "$str" ]; then
    echo "$str" | awk '{print " HOMO of Alpha:\t" $NF}'
fi

str=`grep -e "Alpha virt. eigenvalues" $inf | head -n 1`
if [ ! -z "$str" ]; then
    echo "$str" | awk '{print " LUMO of Alpha:\t" $5}'
fi

str=`grep -e "Beta  occ. eigenvalues" $inf | tail -n 1`
if [ ! -z "$str" ]; then
    echo "$str" | awk '{print " HOMO of Beta:\t" $NF}'
fi

str=`grep -e "Beta virt. eigenvalues" $inf | head -n 1`
if [ ! -z "$str" ]; then
    echo "$str" | awk '{print " LUMO of Beta:\t" $5}'
fi
echo ''
done

和下一个不同的是,下一个脚本抓取的结果输出为表格格式(用\t分隔数据),结果可以直接复制到excel中。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
柒月小鱼 + 5 好物!

查看全部评分 View all ratings

124

帖子

0

威望

2775

eV
积分
2899

Level 5 (御坂)

27#
发表于 Post on 2016-1-8 15:57:30 | 只看该作者 Only view this author
本帖最后由 hxd_yi 于 2016-1-8 16:04 编辑
habigale 发表于 2015-7-15 23:09
有没有提取计算结果中freq计算结果的脚本,例如将zero-point correction,Thermal correction to Energy,  ...

这个脚本可以帮你,使用方法:脚本保存为gt.sh,然后执行./gt.sh *.out,就可以把out文件中结果提取出来了,也可以换成其他文件。
#!/bin/bash
echo -e "filename\tnumber of imaginary frequencies\tmin freq\tElectronic energy\t\
Zero-point correction\t\
Thermal correction to Energy\t\
Thermal correction to Enthalpy\t\
Thermal correction to Gibbs Free Energy"
for inf in $@; do
    if ! [ -f $inf ] ; then
        continue
    fi
    if [ -z "$(head -n 1 $inf | grep 'Entering Gaussian System,')" ]; then
        continue
    fi
    echo -ne $inf'\t'
    tf=`tail -n 1 $inf| grep 'Normal termination of Gaussian 09'`
    if [ -z "$tf" ]; then
        echo 'Error'
        continue
    fi
    nf=`grep 'imaginary frequencies (negative Signs)' $inf | awk '{print $2}'`
    if [ -z $nf ]; then
        nf=0
    fi
    echo -ne $nf'\t'
    grep 'Frequencies --' $inf | head -n 1 | awk '{printf("%s\t",$3);}'
    grep "SCF Done" $inf | tail -n 1 | awk '{printf("%s\t",$5);}'
    # a=`grep -n 'Zero-point correction' $inf | cut -d ':' -f 1`
    # b=`expr $a + 7`
    # sed -n -e "$a,$b"p $inf
    grep 'Zero-point correction' $inf | awk '{printf("%s\t",$3);}'
    grep 'Thermal correction to Energy' $inf | awk '{printf("%s\t",$NF);}'
    grep 'Thermal correction to Enthalpy' $inf | awk '{printf("%s\t",$NF);}'
    grep 'Thermal correction to Gibbs Free Energy' $inf | awk '{printf("%s",$NF);}'
    echo -e ""
###############################################################
#    str=`grep -e "Alpha  occ. eigenvalues" $inf | tail -n 1`
#    if [ ! -z "$str" ]; then
#        echo "$str" | awk '{print " HOMO of Alpha:\t" $NF}'
#    fi
#
#    str=`grep -e "Alpha virt. eigenvalues" $inf | head -n 1`
#    if [ ! -z "$str" ]; then
#        echo "$str" | awk '{print " LUMO of Alpha:\t" $5}'
#    fi
#
#    str=`grep -e "Beta  occ. eigenvalues" $inf | tail -n 1`
#    if [ ! -z "$str" ]; then
#        echo "$str" | awk '{print " HOMO of Beta:\t" $NF}'
#    fi
#
#    str=`grep -e "Beta virt. eigenvalues" $inf | head -n 1`
#    if [ ! -z "$str" ]; then
#        echo "$str" | awk '{print " LUMO of Beta:\t" $5}'
#    fi
##############################################################
done

评分 Rate

参与人数
Participants 1
eV +4 收起 理由
Reason
sobereva + 4

查看全部评分 View all ratings

325

帖子

0

威望

5168

eV
积分
5493

Level 6 (一方通行)

28#
发表于 Post on 2016-1-27 15:25:37 | 只看该作者 Only view this author
期待sob老师写个《使用GMX时的几个实用脚本和命令》
譬如:计算PMF时依次执行多个计算
  1. #!/bin/bash
  2. for i in 0 1 2 3 4
  3. do
  4. grompp -f md_umbrella.mdp -c conf$i.pdb -p out.top -n index.ndx -o umbrella$i.tpr
  5. mdrun -np 10 -s umbrella$i.tpr -deffnm umbrella$i -pf pullf-umbrella$i.xvg -px pullx-umbrella$i.xvg </dev/null
  6. done
复制代码

63

帖子

0

威望

860

eV
积分
923

Level 4 (黑子)

29#
发表于 Post on 2016-5-4 15:22:43 | 只看该作者 Only view this author
真爱粉~~简直不要太厉害

55

帖子

0

威望

188

eV
积分
243

Level 3 能力者

30#
发表于 Post on 2018-1-18 09:16:36 | 只看该作者 Only view this author
hxd_yi 发表于 2016-1-8 15:53
这个脚本可以用以显示计算结果,包括最小的频率,homo,lomo,电子能量,热力学校正数值。提醒:执行方式为 ...

试了一下,两个都没有输出为表格格式,都是在屏幕上直接显示啊?

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-12 17:31 , Processed in 2.354123 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list