グラフ作成plotツール「Grace」で画像をコマンド

分子動力学計算ソフトGromacsはグラフ作成ソフトGraceに対応しているので、エネルギーの結果などを以下のコマンドでGraceに投げると簡単にグラフを作成してくれます。

Grace 公式サイト
RedHat系ならyumで簡単にインストールできます。コマンドラインはgraceではなくxmgraceであることに注意。インストール方法はこちらに説明がありました

簡単なサンプル

# gromacsでエネルギーを出力
g_energy -f dynamics.edr -o energy.xvg <<_EOT_
Potential
Kinetic-En.
Total-Energy

_EOT_

# graceで表示
xmgrace -nxy energy.xvg

Gromacsはg_から始まる各解析ツールでxvgという拡張子を持ったファイルを生成します。Gnuplotでも似たようなことができるのだけど、こっちの方が操作しやすいので個人的にはオススメ。

ただ、大量にxvgファイルがあってそれぞれを確認しないといけない時、xmgraceでいちいち開くのが面倒くさい。前置きが長くなりましたがこれからが本題。

そこで、Graceのコマンドライン機能を使って、自動でxvgファイルをpngファイルに書き出します。あとはLinuxの画像ビューワ(なんでもいいけど、僕はeogを愛用)を使えば、ぱぱっと確認できて計算が上手くいっているかどうかを確認できます。
コマンドライン用Graceのコマンドは、「gracebat」。

gracebat -nxy [入力xvgファイル] -hdevice PNG -printfile [出力pngファイル名]

これを使ってシェルスクリプトを書けば、「あるフォルダ内にあるxvgファイルを自動でPNGファイルに変換」ってこともできる。

#!/bin/bash
ext=xvg
files=(`ls *.${ext}`)
for file in ${files[@]}; do
  echo ${file%%.${ext}}
  gracebat -nxy ${file} -hdevice PNG -printfile png_${file%%.${ext}}.png 
done

それでeog *.pngとすると、だーっとグラフを確認できる。ちなみに、gracebatの引数に色々加えることで生成されるグラフの設定ができるらしい。例えば、-worldオプションを加えると、縦軸と横軸の範囲を設定できる。こういう情報がなかなか見つからないので、チュートリアルなんかを見ながら試行錯誤してます。

これで仕事の効率が上がったのかは定かではないが、こういう積み重ねで時間を節約できてると信じてやってます。そういえば年が明けましたね。今年の目標は、「BashPythonとお友達になる」で行こうかと。