指数付けアルゴリズム総説

指数付けの目的は、逆空間の基底ベクトルを決定することである。3 つの基底ベクトル(縦ベクトルである)を横に並べて 3 x 3 行列にしたものを方位行列 A と呼ぶ。成分を書き下すと、
A = \begin{pmatrix}\mathbf{a^*} & \mathbf{b^*} & \mathbf{c^*} \end{pmatrix} = \begin{pmatrix}a^*_x & b^*_x & c^*_x\\ a^*_y & b^*_y & c^*_y\\ a^*_z & b^*_z & c^*_z \end{pmatrix}
である。
方位行列は 9 成分を持つから、自由度も 9 である。そのうち 6 つの自由度は逆格子定数(a, b, c, \alpha,  \beta, \gamma) であり、残り 3 つは結晶方位を表す。方位行列を、なんらかの基準方位(例えば a* 軸が実験室系の x 軸に一致し、b* 軸が x-y 平面上にあるとか)に合わせた基底行列と、それを実際の結晶の向きへ回転させる回転行列の積へと分解することもしばしば行われる。たとえば、MOSFLM における A = U B という分解がそれである。B が基底を表し、U が回転を表す。U は回転行列だから、det(U) = 1 である。逆格子定数から具体的に成分を求める方法は Orthogonalization matrix の導出と、格子定数による偏微分 - biochem_fan's note で説明した。

指数付けの結果得られた A 行列によって、反射の指数 \mathbf{h} = {}^t(h, k, l) から、逆空間座標 \mathbf{r} = {}^t(r_x, r_y, r_z) を求めることができる。すなわち、
\mathbf{r} = \begin{pmatrix}r_x \\ r_y \\ r_z \end{pmatrix} = \begin{pmatrix}\mathbf{a^*} & \mathbf{b^*} & \mathbf{c^*} \end{pmatrix} = A \begin{pmatrix}h \\ k \\ l \end{pmatrix}
である。逆に、観察された反射に指数をつけるには、
\mathbf{h} = A^{-1} \mathbf{r}
を計算すればよい。実際には、\mathbf{r} には実験誤差があるから、\mathbf{h} の成分は整数にはならない。最寄りの整数値になるように丸めるわけだが、あまりに小数成分が大きい場合は、(1) 指数付けが間違っている (2) 複数格子が存在する (3) ice ring などを spot finder が拾っている可能性が高い。

ここまでの議論から分かるように、観測された回折点の逆空間座標と指数のペアが 3 つ以上あれば、方位行列は確定する。一枚の回折画像には数十から数百の回折点があるのが普通だから、指数さえ決まれば方位行列は最小二乗法などで精密化できる。しかし、現実には、方位行列が分からないから指数がつかず、指数がつかないから方位行列が定まらないという問題に直面する。したがって、指数付けには、上の関係を超えた考察が必要となる。

続く!

  • 周期を見つける方法。1次元 FFT (DPS), 3 次元 FFT (Denzo ほか)
  • 差ベクトルによる方法。REFIX。
  • この 2 つが数学的に等価であること。Patterson 図。
  • 方位を優先的に調べる方法。DirAx, DIALS known cell, MOSFLM prior cell
  • 初期精密化。誤差に対して robust であるために。差ベクトル法

などを述べたい。