XDS の謎

XDS には謎が多い。ソースコードが公開されていない以上、いくら悩んでも答えが出ないことも多い。そういう疑問点を、自分が忘れないために列挙しておく。もし答え(かもしれないもの)をご存知のかたは、ぜひ教えてほしい。

GAIN.cbf と BKGINIT.cbf

GAIN.cbf と BKGINIT.cbf はどう作られるのか。

人工的な入力に対する反応を見ると、BKGINIT.cbf は 2 * NBX + 1, 2 * NBY + 1 の範囲から計算されているようだが、少なくとも単純な平均ではない。例えば、ある画素だけ極端な値 outlier にしても結果は不変である。

GAIN.cbf については XDS wiki にも記述があるが、この方法では説明がつかない挙動が多い。特に、一部の値が -3 になってしまうが、どういうときにこうなるのか分からない。-3 になった画素は MGAIN の値から減算されるようだ。

 GAIN LOOK-UP TABLE IS DETERMINED FROM DATA IMAGES       1       1
 AND SAMPLED AT   352 X   361 EQUIDISTENT POINTS ALONG X- AND Y.
 *** DEFINITION OF SYMBOLS ***
  GAIN     = MEAN OF THE GAIN-VALUES ON DATA IMAGE
             "GAIN" RELATES POISSON-DISTRIBUTED X-RAY COUNTS
             TO DATA IMAGE PIXEL VALUES SUCH THAT
             GAIN * X-RAY COUNTS = PIXEL VALUE - DARK CURRENT
 MGAIN     = NUMBER OF SAMPLING POINTS ON DATA IMAGE
             USED FOR DETERMINATION OF GAIN
 I/O-FLAG  = ERROR CODE AFTER ACCESSING DATA IMAGE 
              0: NO ERROR
             -1: CANNOT OPEN OR READ IMAGE FILE
             -3: WRONG DATA FORMAT

 FRAME #    GAIN     MGAIN

       1   0.984     30618

lambda = 1 となる Poission 分布から 30x30 ピクセルの画像をいくつも作って走らせると、画像によって -3 となる画素の個数が異なる。

SIGNAL_PIXEL, STRONG_PIXEL, BACKGROUND_PIXEL

STRONG_PIXEL と SIGNAL_PIXEL はどう違うのか(デフォルトはどちらも3)。前者が COLSPOT 用で、後者が INTEGRATE 用ということか?

BACKGROUND_PIXEL は両者から使われているようだが、何の意味があるのか?

if the variation in the pixel contents of neighbouring pixels (region defined by NBX= and NBY=) does not exceed the specified number of standard deviations.

http://xds.mpimf-heidelberg.mpg.de/html_doc/xds_parameters.html#BACKGROUND_PIXEL=

ここでいう standard deviation とはどこから計算するのか?

Reflection mask

(iv) For each strong reflection find the rectangular box that encloses all of the strong pixels belonging to the reflection.
(v) Increase the box slightly and use all pixels within the box that are not strong for background determination.

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2815666/

とあるが、このステップは複数の画像に跨って行うのか、1つの画像の上で考えるのか。(iv) の strong pixel は STRONG_PIXEL パラメータ(デフォルト3)で決められると思われるが、それらは連結している必要はあるのか? つまり、マスクの外縁部に1つだけ異常に強い pixel があったとして、それも strong pixel に加わるのか?

このような strong pixel の分布から得た BEAM_DIVERGENCE_E.S.D を数倍してBEAM_DIVERGENCE にすると書いてあるが、具体的にどう決めているのか? STRONG_PIXEL次第で、何σ未満が strong でなくなるか変わってしまいそうだが。

反射の背景はどう決めるのか

"Integration, scaling, space-group assignment and post-refinement" (Wolfgang Kabsch, Acta D, 2010) では 3.2 節に background についての記述がある。それによると、反射マスクの周辺について、正規分布になるように強いピクセルを取り除いていって、残ったピクセルの平均が背景となる。この閾値はどう決めるのか? BACKGROUND_PIXEL ではなさそうだが。このマスクとは、1枚の画像の上で考えるのか、それとも複数の画像に跨ったものなのか。検出器上で考えるのか、Kabsch transform 後の空間で行われるのか?

transformation to local coordinate system: some of these pixels will mostly allow the background estimation, others will mostly contribute to the integration area (but there is not a 1:1 relationship).

http://strucbio.biologie.uni-konstanz.de/xdswiki/index.php/INTEGRATE

によると変換後の空間で行われるようだが、本当か?

Pixels which are mostly background but whose counts are higher than expected (e.g. due to overlap) are rejected.

http://strucbio.biologie.uni-konstanz.de/xdswiki/index.php/INTEGRATE

とあるが、これはどのパラメータか。

3.4 節における profile fitting は、Kabsch transform 後の {e1, e2, e3} で張られた空間 D0 で行われる。peak mask 内の pixel における背景の寄与はどう計算するのか? すべて共通だと仮定するのか?

The background bi underneath a diffraction spot is often assumed to be a constant

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2815666/

という記述は、XDS のことを指しているのか、それとも、積分ソフト全般における一般論なのか。なお、MOSFLM や CrystFEL では、背景値は平面方程式によって求められている。また、"Evaluation of single-crystal X-ray diffraction data from a position-sensitive detector" (Wolfgang Kabsch, J. Appl. Cryst, 1988) では、X, Y 方向に線形性を仮定しない、より自由なモデルでフィットしている。

Postrefinement はいつ行うのか

Postrefinement についての記述は、"Integration, scaling, space-group assignment and post-refinement" (Wolfgang Kabsch, Acta D, 2010) では scaling の次にある。しかし、CORRECT の時点では、1つの反射に由来する強度が複数のフレームにどう分布していたかという情報は失われているはずだ。INTEGRATE.HKL にあるのは、三次元プロファイル・フィッティングによって得られた full intensity だけである。したがって、postrefinement は INTEGRATE の段階で行わなければならない。

だが、三次元プロファイル・フィッティングを行う XDS では partiality に基づく強度の補正は不要なはずである(nXDS では必要だが)。となると、post-refinement は、方位などのパラメータを精密化するためだけに行っている(MOSFLM と同じ)と考えるべきだが、それで合っているのか?