15 09 2012 chemoinformatics q-chem Tweet
懇親会でpygamessじゃなくてもFacioで良かろうと言われたのだけど、対話環境よりも、スクリプトでやれたほうがいい場面が多いので書いておく。ちなみに僕はAvogadroユーザーです。
適当なsdfが手元になかったので
C CC CCC
というSMILESのリストを
babel -ismi carbons.smi -osdf carbons.sdf
とやってsdfにしたものを使いました。
sdfの分子群に対して計算したい場合、対話環境だとチマチマと作業しないといけないが、スクリプトだとforループを回せばよいし、結果がmoleculeオブジェクトで返ってくるので、そのあとのケモインフォマティクス的な取り回しが楽です。Gamessのアウトプット睨みながらコピペとか苦行だし、アウトプットの処理用のパーサー書くならinputから全てスクリプトで処理したほうがいいんじゃないかなと。
>>> import pybel >>> from pygamess import Gamess >>> g = Gamess() >>> mols = pybel.readfile('sdf', 'carbons.sdf') >>> for mol in mols: ... nmol = g.run(mol) ... print nmol, nmol.energy ... C -39.7265813363 CC -78.3052918313 CCC -116.885136991
ケミストのように化合物を個別のものとして一つ一つ丁寧に対応していくのか、情報論的にまとめて取り扱いたいのかとかそういうあたりで使い分ければいいのだと思う。オービタル見たい場合にはGUI必須だけど、エネルギーみたいな数字だけに関心があるのであればGUIは要らないかな。