Gaussian09のアウトプットファイルの整形スクリプト

このラボに入ってから最初のまとめ的な論文を書いている。実験系の1本目は先週投稿し、計算主体の2本目がだいたい終わりつつある。あとはSIまとめが主要な作業となる。

論文を書く際にGaussian09のアウトプットファイルを目視して処理するのが面倒だったので、AWKの練習がてら論文に必要な箇所だけ抜き出すスクリプトを書いた。ディレクトリ内の.log拡張子のファイルを全て読み込んでエネルギーや座標もろもろを抜き出してoutputファイルにまとめるだけの簡素なものである。
optオプションを使い構造最適化し、引き続きfreqオプションで振動を確かめるのを前提にしてるので、それ以外の計算結果だと変な挙動を示すかもしれない。例えばfreqオプションのみを使った結果だと、座標を表示しなかったりする。あと、if文のところとか、ファイルの切り取りなどが冗長なので気が向いたら直したい。

計算やってるラボだとこのような簡素なものは皆作れるだろうし、実際に現ボスもこれより優れたものを作って自動化している。だが、自分が実験化学系のラボにいた時にはわざわざスクリプト書いている人がいなかったように思える。皆手作業で処理していたかもしれない。SI作成が面倒な人の参考になったらいいなということで公開してみた。

#!/bin/sh
rm -f output
ls *.log > tempf

cat tempf | while read line
do

echo $line >> output
echo >> output
grep 'SCF Done' $line > temp
awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' temp > temprev
awk '{if (FNR == 1) print $3,$4,$5}' temprev >> output
grep Frequencies $line > temp
awk '{if (FNR == 1 && $1 == "Frequencies" && $3 > 0 && $4 > 0) print "0 imaginary frequency"}' temp >> output
awk '{if (FNR == 1 && $1 == "Frequencies" && $3 < 0 && $4 > 0) print "1 imaginary frequency"}' temp >> output
awk '/Zero-point correction/,/thermal Free Energies/ {print}' $line >> output
echo >> output
awk '/Redundant internal/,/Recover con/ {if (length($1)>20) print}' $line > temp
cat temp | sed 's/,0,/ /g'| sed 's/,/ /g' >> output
echo >>output

done

rm -f temprev
rm -f temp
rm -f tempf
                                                                                                                         

※ご利用は自己責任でお願いします

Vimiumを使い始めた

マウス腱鞘炎が悪化してきてしまい、もうちょっと指に優しい方法でブラウジングすることができればいいなと思っていたのだが、ところで普段からVimを使って作業しているので、Wordで作業している時も:wqで保存しようとしてしまうようになってしまっているような悲しい現状を考慮した結果、Vimiumが割と良さげではないかと思い早速使ってみたところ非常にいい感じであった。

Vimium - Chrome Web Store

再構造最適化せずに高精度計算をかける方法

TS・IRC上でG3やCBS-QB3計算がやりたくなったのだが、単にインプットファイルにG3やCBS-QB3と書いただけでは勝手に最適化されてしまう。

これを防ぐ方法が書かれていたのでメモ。

http://glab.cchem.berkeley.edu/glab/faqs/gaussian_tips.html#G3

 

具体的には、G3計算のMP2レベルからスタートさせるためにそれ以前の構造最適化を済ませたchkファイルを用意して読み込ませればよいらしい。なお、DFTで計算した結果を用いる場合はG3B3にしなければならない模様。

# G3B3(startmp2) Geom=allcheck

と入力したところうまく計算が始まった。

学会に参加した

渡米して初めて学会に参加した。ちなみに町から出るのも渡米後初である。

ポスター発表ではあるものの、精神的負担は結構なものだった。全て英語で発表しなければならないのは厳しいものがある。絶対に発表中に言葉が詰まると確信していたので、ポスターにそこそこの分量の文章を入れて読み上げるだけでどうにかなるようにデザインした。

 

学会は4日間に渡って開かれ、初日は午後7:00から深夜11:00まで、その他の日は午前8:30から深夜11:00まで続く。特に午後9:00から開始のBanquetが非常に良く、ビールやワインが飲み放題なので、毎日3本程飲んでほろ酔い気分になった挙げ句、いろんな人間に絡んでいた。

 

それにしても、アメリカという国はものすごいなと感じる。世界のトップをひた走る指導的研究者が集まり、今後の分野の方向性を変えるような未発表データを惜しげも無く発表しているのを見ると日本に留まってても置いていかれるなと感じてしまう。特に現在自分の取り組んでいるテーマは主にアメリカを中心に回ってる(というか現ボスをはじめとした2〜3人を中心に回ってる)ので、日本に帰ってからいろいろやるとなると周回遅れの内容になってしまうのではないかという恐れを感じる。

化学反応を引き起こすのは駆動「力」か?

 

Let's Drive "Driving Force" Out of Chemistry

http://pubs.acs.org/doi/abs/10.1021/ed082p827

 

古い論文だが、化学反応における自発的な変化に対して、Driving Force(駆動力)という言葉を使うのをやめようというお話。

著者はNorman C. Craig教授。ご専門は物理化学。

Norman C. Craig | Chemistry / Biochemistry | Arts and Sciences | Oberlin College

 

Driving Forceというと、なんと言えばいいのか非常にもやっとする概念だけど、一般に化学では反応を進行させる力みたいな意味で使われていて、反応を進行させるのがなんで「力」なのかと考えると更にまたもやっとするわけである。

そもそも減れば減るほど系が安定になる化学ポテンシャルの次元はJ/molなどのエネルギーを分子数で割った値であり、距離で割ってmolかけてあげないと力にならないわけです。つまり、力と言っても科学的な意味での「力」に分類できないからもやっとする。それに距離ってなんですか、と。

(分子反応動力学やメカノケミストリーでは実際に力が働いて反応が起きる訳ですが、少なくとも熱・統計力学の観点から化学反応を論じる際に力と言ってしまうと違和感が生じる)

 

まあ、実際の化学者の会話だともっと雑な感じが。

学会とかでは、

教員「この反応のドライビングフォースは何ですか?」

学生「ルイス酸による活性化です」

教員「分かりました、ありがとうございます」

みたいに、そもそも反応エネルギーを変えずに活性化エネルギー減らすだけの触媒反応レベルでも使ってるような印象が(※これは勝手なイメージです)。

 

で、軽く調べたところ、いろんな概念が実際にDriving Force扱いされている模様。

芳香族性がDriving Forcehttp://pubs.acs.org/doi/abs/10.1021/ja307213m

溶媒再配列がDriving Forcehttp://pubs.acs.org/doi/abs/10.1021/ja075975z

ひずみの解消がDriving Forcehttp://pubs.acs.org/doi/abs/10.1021/jacs.6b03247

分散力がDriving Force (これは次元が力)http://pubs.acs.org/doi/abs/10.1021/jacs.6b03560

 

そもそも言葉は使われるうちに適用範囲が広がってしまうもので、流行語なんかはすぐに色んな文脈で使われて死んでいくわけですが、学術論文でこういう言葉が使われてしまうのは何とも言い難い気持ちに。

言葉の使用の際には少しだけ気をつけたいなという話でした。特に面白いオチは無い。

 

おまけ

 

で、この論文に触発されて追い打ちをかけるように賛同の言葉が寄せられてたりします。

No "Driving Forces" in General Chemistry

http://pubs.acs.org/doi/abs/10.1021/ed083p702.2

 

あんまり使わないほうがいいんじゃないですかね、この言葉。

SCFの収束

SCFの収束の悪い系を扱っている。デフォルトだと間違ったエネルギー値が得られる。エラーが出ないので気づくのに相当時間を要した。

qcオプションは多くの場合よく動くのだが、たまにエネルギーが高い状態のまま収束して偽の解を与えてしまう。scf=(xqc, maxconventionalcycle=10)くらいにして一度デフォルトのアルゴリズムでエネルギーを下げて、そこからqc, vtlで動かすと上手く行っている。忘れないようにメモ。