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.
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2815666/
(v) Increase the box slightly and use all pixels within the box that are not strong for background determination.
とあるが、このステップは複数の画像に跨って行うのか、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 と同じ)と考えるべきだが、それで合っているのか?