3D分子モデリングのファイル形式 : xyzファイルフォーマットについて簡単なまとめ

何回かオープンソースのAvogadroというソフトを使って3Dの分子模型を作ったりしてますが、ちょっと興味が湧いたのでそこで使われるファイル形式について調べてみることにしました。
 分子モデリングソフト Avogadro を使ってみる
 カメムシ襲来!(秋の風物詩)

3D分子モデリングソフトで使われるファイル形式はかなり多岐に渡っているのですが、今回はその中のxyzフォーマットのファイルについて見ていきます。
以下はAvogadroで作成したヘキサナール分子をxyzフォーマットで出力したものです。

19
Energy:      -1.2963865
C         -3.10801        1.54119       -0.01611
C         -1.98911        0.51172       -0.00651
H         -3.03107        2.21469        0.84346
H         -4.08177        1.04347        0.02813
H         -3.07614        2.14423       -0.92919
C         -0.61452        1.17987       -0.00730
H         -2.09119       -0.13997       -0.88185
H         -2.09142       -0.12093        0.88305
C          0.50986        0.14459       -0.04847
H         -0.51212        1.80130        0.89074
H         -0.52732        1.84741       -0.87328
C          1.87735        0.80789        0.07828
H          0.45643       -0.42368       -0.98560
H          0.37858       -0.58071        0.76438
C          2.97498       -0.21783       -0.02622
H          1.97083        1.29789        1.05305
H          2.02072        1.55694       -0.70755
O          4.04790        0.00292       -0.57907
H          2.80834       -1.16461        0.51586

3Dモデリングとしては以下のGIFアニメに示す分子になります。


このxyzフォーマットのファイルは比較的よく見かけるファイル形式ですが、どうもちゃんとしたフォーマットの規定というのはないようです。ファイルの中身が元素名とその3次元空間での配置のみと単純な記述で済むため、規定はなくてもほぼ統一された解釈が可能なのだと思われます。

このファイルの形式は大まかには
  • 1行目に分子を構成している原子数
  • 2行目に分子の名前やタイトル、ファイル名やその他付加情報など
  • 3行目以降に原子の三次元位置情報
となります。

原子の位置情報はオングストローム(Å)単位で、x, y ,zで指定されます(直交座標系)。それぞれの位置情報はスペースで区切られます。また行頭には元素名が来ますが、原子番号が用いられるスタイルもあるようです。また一つのファイルに複数の分子が記述される場合もあるようです。
ファイルの形式が単純なので簡単な分子なら手動で原子の配置を決めて書くということも出来ます。

さて意外なことにこのファイル形式では元素名と位置情報が書かれますが、原子同士の結合に関する情報は含まれていません。つまりそのままファイルの情報を読み取っても、三次元空間に原子が浮かんでいるだけで分子の姿はおぼろげにしか見えて来ません。ですが多くの分子モデリングソフトではxyzファイルを読み込むと、ちゃんと原子同士が結合して分子として表示されます。どの原子とどの原子が結合しているかはモデリングソフト側で位置情報や周囲にある原子情報から判別して決められているようです。
結合といっても共有結合には単結合、二重結合、三重結合があるため、それらの情報が再現出来るかはソフトの判別能力の出来にかかっているかと思われます。
(もちろん結合の情報も含まれるファイル形式もあります)


<参考資料>
Chemical file format - Wikipedia
XYZ file format - Wikipedia
XYZ (format) - Open Babel


コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

gnuplot : グラフにグリッド線を描く方法(set grid)