MOL format
MDLのMOLファイルについて
MOLファイルは化学構造を記述する標準的なフォーマットです。MDL Information Systemsという会社が提唱し、ほぼ世界中で利用されています。古い仕様のため計算機言語Fortranの書式で記述されます。各値をあらわす文字数が決まっている点がFortran formatの特徴です。詳細はCTFile formatというガイドに記述されていますが、ここではその概略を紹介します。
例:L-AlanineのMOLフォーマット
6 5 0 0 1 0 3 V2000 <-- counts line -0.6622 0.5342 0.0000 C 0 0 2 0 0 0 <-- atom block start 0.6622 -0.3000 0.0000 C 0 0 0 0 0 0 -0.7207 2.0817 0.0000 C 1 0 0 0 0 0 -1.8622 -0.3695 0.0000 N 0 3 0 0 0 0 0.6220 -1.8037 0.0000 O 0 0 0 0 0 0 1.9464 0.4244 0.0000 O 0 5 0 0 0 0 <-- atom block end 1 2 1 0 0 0 <-- bond block start 1 3 1 1 0 0 1 4 1 0 0 0 2 5 2 0 0 0 2 6 1 0 0 0 <-- bond block end M CHG 2 4 1 6 -1 <-- M line M ISO 1 3 13 M END
MOLフォーマットは、先頭のcounts lineと呼ばれる行、各原子を記述するatom block, 各化学結合を記述するbond block, 補足説明をするM行の4つからなります。
- counts line ... 原子数と結合数を記述する1行です。始めの3文字で原子数、次の3文字で結合数を示します。その後のフィールドは本質的に重要ではありません。 上の例では、原子数が6個、結合数が5個であることが記されています。残りのフィールドについてはCTFile formatを参照してください。
- atom block ... counts lineで指定された原子の数だけ行を繰り返します。各行は、x座標(10文字), y座標(10文字), z座標(10文字), 元素記号(3文字), 質量の差違(-3, -2, ... +3, +4), 電荷(0=none, 1=+3, 2=+2, 3=+1, 4=radical, 5=-1, 6=-2), 不斉情報(0=no stereo, 1 or 2 = stereo)を意味します。上の例では6つの原子が記述されており、行番号の順にC, C, C, N, O, Oです。各原子には以下の情報が記述されています。
- 炭素 ... パリティ2の不斉炭素 (パリティに関しては別ページで解説します。)
- 炭素 ... 何もなし
- 炭素 ... 質量が+1 (よって13Cに相当)
- 窒素 ... +1の電荷を持つ
- 酸素 ... 何もなし
- 酸素 ... -1の電荷を持つ
- bond block ... counts lineで指定された結合の数だけ行を繰り返します。各行は、結合元の行番号(3文字), 結合先の行番号(3文字), 結合のタイプ(1=single, 2=double, 3=triple, 4=aromatic), 描画した際の結合の上下(0=none, 1=up, 4=either, 6=down)となります。上の例でbond blockの2行目(1 3 1 1 0 0 )は、Atom block1行目の炭素と3行目の炭素が単結合で結ばれて、その結合は上向き(黒いくさび)に描くことを意味します。
- M lines ... さまざまな表記法があります。詳しくはCTFile formatを読んでください。
- "M CHG 2 4 1 6 -1" ... 電荷を変更する原子が2つ、それぞれ位置4が電荷+1、位置6が電荷-1という意味です。
- "M ISO 1 3 13" ... 同位体元素が1つあり、位置3が質量13になるという意味です。
- "M END" ... M行による指定の終わりを意味します。
MOLフォーマット表記の特徴
水素は省略する
明示的に水素原子を記述しても問題はありませんが、通常、水素原子はMOLフォーマットに記入しません。水素の数は各原子における結合の数と価数から割り出します。
原子の順番、結合の順番は任意
Atom block, bond block内の順番には規則はありません。したがって構造が同一の物質が、同じMOLフォーマット表記になるとは限りません。
文字の桁数は固定
原子のxyz座標は10桁の小数表記、bond blockでの原子番号は3桁、という風に各フィールドの文字数は固定です。よって原子数が1000を超える分子はMOLファイルで記述できません。
お絵かき情報と構造情報が混在
不斉炭素の種類(D,LまたはR,S)は、atom blockのパリティと、bond blockのup/downの2通りの指定法があります。Atom blockのパリティは原子座標に依存しませんが、bond blockのup/downは依存します。たとえば分子のx座標に全て-1をかけたとき(左右反転)、bond blockのup/downも全て反転しなくてはなりません。Atom blockのパリティはこの必要がありませんが、ブロック内の原子の順番に依存するため、atom blockの並び順を変えるときパリティが変化する場合があります。