Z-行列 (化学)

化学において、Z-行列（ぜっとぎょうれつ、Z-matrix）は、原子で構成された系を表現する方法である。Z-行列は、内部座標表現（internal coordinate representation）とも呼ばれている。これは、分子内の各原子を、原子番号、結合長、結合角、二面角、いわゆる内部座標（internal coordinates）で表したものである。ただし、Z-行列は空間における原子の向きを表す一連のベクトルに基づいているため、必ずしもZ-行列が結合に関する情報を与えるとは限らない。しかし、Z-行列を結合長、角度、および二面体で記述することは、実際の結合特性が保持されるので便利である。この名前は、Z-行列が、原点にある最初の原子からZ軸に沿って2番目の原子を割り当てることに由来している。

Z-行列は、構造情報の内容（空間内の位置と向き）が同じであるため、直交座標に変換して戻すことができる。しかし、復元された直交座標が原子の相対的な位置を正確に示すという意味ではなく、直交座標をZ-行列に変換しても、元の直交座標と同じになるとは限らない。この変換は概念的には簡単であるが、変換を行うアルゴリズムは、速度、数値精度、並列性が大きく異なる。これらの問題は、ポリマー、タンパク質、DNAなどの高分子鎖では、数千の原子がつながっていたり、鎖に沿って連続して離れた原子が直交空間では近くにあったりするため、小さな丸め誤差が累積して大きな力場誤差になってしまうことがあるためである。ねじれ空間から直交空間への変換で、最も高速で数値的に正確なアルゴリズムは、Natural Extension Reference Frame法（NERF法）である。デカルト角からねじれ角への逆変換は簡単な三角法であり、累積誤差のリスクはない。

これらは、多くの分子モデリングプログラムや計算化学プログラムにおいて、分子システムの入力ジオメトリを作成するために使用されている。内部座標を巧みに選択することで、結果の解釈を簡単にすることができる。また、Z-行列には分子の接続情報を含めることができるため（ただし、常に含まれているとは限らない）、初期ヘッセ行列について知識に基づいた推測が可能であり、直交座標よりも自然な内部座標の使用が可能なので、ジオメトリ最適化などの量子化学計算をより高速に実行できる。Z-行列表現が好まれることがよくあるのは、特定の角度を一定にすることで、分子（またはその一部）に対称性を持たせることができるからである。Z-行列は、単純に原子の位置を相対的に配置するための表現であり、使用するベクトルが結合に容易に対応するという明らかな利便性を備えている。概念的な落とし穴は、すべての結合がZ-行列の中で一本の線として現れると想定することであるが、これは正しくない。たとえば、ベンゼンのような環状分子では、環内の6つの結合すべてをZ-行列に含めることはできない。これは、すべての原子が5つの結合の後に一意に配置され、6番目の結合が冗長になるからである。

例 
メタン分子は、次のような直交座標で表される。（単位：Å（オングストローム））

 C     0.000000     0.000000     0.000000
 H     0.000000     0.000000     1.089000
 H     1.026719     0.000000    -0.363000
 H    -0.513360    -0.889165    -0.363000
 H    -0.513360     0.889165    -0.363000

分子の向きを変えると、対称性がより明確な直交座標になる。これにより、明示的なパラメータから結合長1.089が削除される。

 C     0.000000     0.000000     0.000000
 H     0.628736     0.628736     0.628736
 H    -0.628736    -0.628736     0.628736
 H    -0.628736     0.628736    -0.628736
 H     0.628736    -0.628736    -0.628736

炭素原子から始まる対応するZ-行列は次のようになる。

 C
 H   1 1.089000
 H   1 1.089000  2  109.4710
 H   1 1.089000  2  109.4710  3  120.0000
 H   1 1.089000  2  109.4710  3 -120.0000

1.089000の値だけが、によって固定されない。

脚注

外部リンク 

NERF変換アルゴリズムのJava実装
NERF変換アルゴリズムのC ++実装
Z-Matrixからデカルト座標への変換ページ
Chemistry::InternalCoords::Builder - デカルト座標からZ-matrixを構築するためのPerlモジュール
計算化学
分子モデリング