XDSを使ってみよう

インプットファイルリファレンス  

DETECTORコマンド  

DIRECTION_OF_DETECTOR_X_AXIS=ED(1,1)ED(2,1)ED(3,1)  

DIRECTION_OF_DETECTOR_Y_AXIS=ED(1,2)ED(2,2)ED(3,2)  

テクニック どうやってFAST軸、SLOW軸を見分けるのよ?
という疑問にお答えしましょう。図をご覧ください。

#ref(): File not found: "detector_fast_slow.jpg" at page "XDS/インプットファイルの作成"

  1. まずディテクタの原点を見極めます。
  2. 左の図のように原点は左肩にあるか、右肩にあるでしょう。イメージビューアなどを用いてまず、それぞれの値を見に行ってみてください。
  3. パターンごとに説明します。イメージビューアで見てみて、X,Yというパラメータが座標で表示されている部分があると思います。そいつらをチェックしてみて、X,Y=(0,0)というのがイメージ上、左肩(図の赤)にあるか、左下(図の青)にあるのかを判断してください。
  4. 見つかったらそのまま、マウスを平行に右にずらしてみてちゃんとXの値が大きくなることをチェックしてみてください。それがFAST軸です。なぜFASTかっていうのは、バイナリイメージデータに1次元でデータが詰め込んであることから考えてみてね(XDSのマニュアルには載ってます)
  5. ということで、どちらのケース(図の青、赤どっちかが原点)でもFAST軸は左から右のはず(多分)。ま、ここはチェックしてみて違うって場合は考えてみて(無責任発言)。
  6. はい。というわけで、右肩(青)から始まった人は「Detector Coordinate System」のY軸と逆を向いてSLOW軸、つまりディテクタピクセル座標のY軸が走っているので、SLOW軸に限って言うと・・・
    (0 -1 0)
    になるわけです。フォローできます?「Detector Coordinate System」(すんません、以下DCSと呼びます)ではY軸は鉛直方向(地球の中心)に向かっているのでディテクタのY軸が上を向いていたらマイナスが入りますよね?
  7. 続いてFAST軸ですが、どちらの場合でもこいつはDCSのX軸に乗っていて+方向に走るのが基本のようです(一応、ビームストッパが生えている方向をイメージ上、それから、BLのコンポーネントの記憶から確認しておきましょう)。というわけで、FAST軸のベクトルは
    (1 0 0)
    になりまする。以上から、

    DIRECTION_OF_DETECTOR_X_AXIS=(1 0 0)

    DIRECTION_OF_DETECTOR_Y_AXIS=(0 -1 0)(青)or (0 1 0)(赤) ということになりまする。

ここがDCSと一緒に理解できていると後のキーワードの大半は「なるほどー」って感じで理解できると思います。

"XDS.INP"のテンプレートから抜粋したキーワード  

手始めにテンプレート上、必須と思われるキーワードについて調べてみました。
各キーワードにはJOBという項目がありますが、要するに「ピークサーチ」とか「インデキシング」とかっていうJOBをXDS.INP内で指定してやらすんですが、どのJOBのときにそれらの値が使用されるのか?ということを親切に書いてくれているんですね。カブシュってすげー。

MINIMUM_VALID_PIXEL_VALUE=  

ディテクタピクセルがもてる最小の値。デフォルトは0

JOB: INIT, COLSPOT, INTEGRATE

OVERLOAD=  

いわずと知れたサチり点のピクセル値。

TRUSTED_REGION=  

ディテクタの有効面積を中心から水平方向の端までの距離を1として表現したもの。

JOB: INIT, IDXREF

DIRECT BEAM  

3つの浮動小数によって規定する。ベクトルの値は付録参照。

JOB  

どんなJOBをやりますか?ってこと。

XYCORR各ピクセルの空間的な補正テーブルの作成
INIT各ピクセルのバックグラウンド決定。また、ディテクタの信用できる領域を決定する。
COLSPOTデータイメージの指定したサブセット(複数のイメージの塊)から強い反射を集める
IDXREF結晶格子を決定して回折パラメータを精密化する
DEFPIXディテクタの信用できる領域を決定。特に使用しない領域の認識・除外。指定された分解能以外の反射の除外を行う。
XPLANデータ収集のストラテジを計算してくれる。空間群がわからない場合はP1で処理されるので注意。
INTEGRATE3Dプロファイルを全ての反射から計算して強度を見積もる。
CORRECT強度の損壊(ディケイ)、吸収、ディテクタの感度による強度補正を行って、データセットの統計値を表示してくれる。また回折パラメータの精密化を全反射を使って行う。

ORGX, ORGY  

サンプル-ディテクタ間で最短の距離になるディテクタ上の座標を指定(ディテクタ上のピクセル位置で)。

ディテクタに対する入射ビーム位置とは違う!(理想的には同じだが) デフォルトの値は無いので、ユーザがきちんと見積もること、とカブシュが言っていました。え?いや、マニュアルの中ですよ。
!!この値はかなりインデックスを左右します。きっちりと見積もりましょう。

JOB XYCORR, IDXREF

DETECTOR_DISTANCE  

符号付きのカメラ長。なぜ符合がつくのでしょうか?というわけで、付録のDCSをご覧ください。

JOB IDXREF

ROTATION_AXIS  

結晶の回転軸を方向余弦(direction cosine)であらわしたもの。方向余弦って難しそうやけど、定義は簡単で

直行座標系X,Y,Zで原点からある方向に向いた直線が

  1. X軸の正の方向と作る角をa
  2. Y軸の正の方向と作る角をb
  3. Z軸の正の方向と作る角をc とすると、その方向余弦(L,M,N)は
  4. L=cos(a)
  5. M=cos(b)
  6. N=cos(c)
    とあらわせる。と。

たいていのビームラインではX軸上に回転軸が乗っていると思いますので、それに限って説明しまする。

これにのっとって考えてみると、BL41XUはサンプルマウントポジション(かっこいいな・・・)から見た回転軸は時計と反対周りに回ってますので、

(-1 0 0)

ということから逆に考えてみると、回転軸に右ねじを置いてみて回転と同じ方向に回してみたらニューンとそのねじが進む軸と、この場合、X軸がなす角度であるといえるよね。

INCIDENT_BEAM_DIRECTION=  

光源から結晶の向きでのDCSにのっとった、ベクトルを規定。長さはXDS中で規格化されるので適当でいいよ。データプロセスの際にも精密化されまする。デフォルトの値はXDS.INPのテンプレートをご覧ください。

JOB: IDXREF

FRACTION_OF_POLARIZATION  

ダイレクトビームの偏光を縦横比(0.0<value<1.0)で指定。入力しないと偏光が無いことになるよ(0.5になる)。SR実験ではたいてい0.90だそうだ。CORRECTをひたすら流したら、ちゃんと精密化をやってくれますよ!

POLARIZATION_PLANE_NORMAL  

偏光面をDCSで規定。

AIR  

空気の吸収でロスっている回折強度を補正するパラメータ。

Icorr=I*exp(|AIR*F*(1/cos(oblique angle)-1))~
JOB: CORRECT

STARTING_ANGLES_OF_SPINDLE_ROTATION  

三つの値を入力する。最初、最後、増分を入力。ストラテジを立てるときに必要な結晶、回転角の指定。 例)0 180 10
180度の固定総振動幅でデータをとる場合、0, 10, 20,.....,180で撮った場合にデータの完全性がイカバカリカ?を見積もってくれる。

JOB: XPLAN

NAME_TEMPLATE_OF_DATA_FRAMES  

ファイル名、フォーマット、アクセスモードを指定。ファイル名は?を入れたところに数字を入れて読んでくれる。圧縮ファイル(対応フォーマット:.Z, .z, .gz, bz2)は自動認識で処理してくれるっす。フォーマットの拡張子には圧縮ファイルの拡張子は入れたらだめよ。
注意
50文字以上のファイルは読み込まないので、パスとかが長いんやったらリンクでも引っ張ってくれと。

ln -s /home/hoge/page/pige/image/ ./Images/~

とやれば少しは楽になるだろ?

アクセスとフォーマットについてはXDSにやらせてみて、無理やったらいろいろと値を変えるという方向でやってみてください。アクセスモードはたいていの場合、SEQUENTIALでございます。

JOB: INIT, COLSPOT, IDXREF, INTEGRATE

TOTAL_SPINDLE_ROTATION_RANGES=30 120 15  

STARTING_ANGLES_OF_SPINDLE_ROTATION=0 180 10  

これらを組み合わせた場合、スタートのΦを0,10,20,.....,180としたとき、トータルの回転角度を30,45,60,....,120にした場合の完全性を計算してくれる。

REFERENCE_DATA_SET=  

前にとったデータがあれば、XPLAN, CORRECTに使用することが出来る(結晶は同じタイプのものね)。

XPLAN どんなプランが良いか前のデータを見ながら教えてくれるよ

CORRECT Local scalingや現データとの比較をXDS-ASCIIフォーマットで記述してくれる。

JOB: XPLAN, CORRECT

DATA_RANGE  

最初と最後のイメージ番号。ここで指定した番号がファイル名のテンプレートの?マークに入れられるよ。

BACKGROUND_RANGE=  

初期のバックグラウンドを決定するためのイメージ。このパラメータが無ければ「最初の角度」から5度の振動領域分のデータが勝手に選ばれる。

JOB: INIT

SPOT_RANGE=  

COLPROF(ピークサーチ)で使用するイメージ領域を指定。10枚以上を指定してください。スポット情報は「SPOT.XDS」にセーブされます(VIEWコマンドで確認可能)。
i) MINUTE>=0の時
SPOT_RANGE=BACKGROUND_RANGE
ii) MINUTE<0
SPORT_RANGE=DATA_RANGE
このパラメータはIDXREFステップで使用する反射をSPOT.XDSファイルから選択するのに使用する。IDXREFでSPOT.XDS中の全ての反射を使用して失敗した場合、編集すると良い。
COLSPOTは何度もやる必要が無い(後述しております)。
例) SPOT_RANGE=1 10
SPOT_RANGE=21 30
SPOT_RANGE=45 60
SPOT_RANGE=70 71
この4行の指定で1-10, 21-30, 45-60, 70-71のイメージ全てでピークサーチ(COLSPOT)を行います。見つかったピークはSPOT.XDSに書き込まれる。SPOT.XDSに書き込まれたピークはIDXREF(indexing)ステップで使用される。
という流れ。
結晶が滑っていない(動いていない)のであれば、全ての振動領域をカバーするようにを使用した方が信頼度は高いのでなるべくたくさんのイメージを使いましょう。
ではさらに具体的に
1-10, 21-30, 45-60, 70-71のイメージを使ってピークサーチ(COLSPOT)後、インデックス(IDXREF)してみたけどうまいこといかんかった。なので、1-10をはずしたい(ピンの台で氷が解けたかもしれん)場合。
1) JOB=パラメータからCOLSPOTをはずす(1-10のピークも含まれてはいるが既にSPOT.XDSにピーク情報はある!)
2) JOB=パラメータにIDXREFを入れる(既に入っているか?)
3) SPOT_RANGE=パラメータから "1 10" を抜く。これによりSPOT.XDS中の1-10のピークを抜いてIDXREFをやってくれる
※注意:COLSPOT(ピークサーチ)プロセスをやり直すことによってSPOT.XDSは上書きされてしまいます。何度もIDXREF(indexing)をやり直したい場合は時間的効率を考えて最初に多目のイメージでCOLSPOTをやっておいて、その後、IDXREFをやり時にはSPOT_RANGE=パラメータを編集して最初に集めておいたピークから「選択する」感覚で処理をすると良いかと思います。COLSPOTプロセスは処理初期段階で最も時間がかかるので。

JOB: COLSPOT, IDXREF

VALUE_RANGE_FOR_TRUSTED_DETECTOR_PIXELS=(これもよくわからんのでちゃんと読み直します)  

DEFPIXで使用される⇒Shaded Regionの決定
DEFPIX後、"ABS.PCK"というコントロールイメージが出力される。コントロールイメージはShaded領域が10000程度。Unshaded領域はshaded領域よりも低い値を持っている。
指定した範囲に無ければその領域は「信頼度が低い」と判断され、"BKGPIK.PCK"中で「-3」の値を持たされる。これらのフラッグが立った場合、「trusted detector region」からはずされます。
BKGPIX.PCKはVIEWプログラムで検閲しましょう(除外されたエリアが正しいかどうかを)。おかしなShaded RegionがBKGPIX.PCKに含まれている場合、JOB=DEFPIXをいじって(6000-30000⇒7000-30000とか)何度もやってみましょう。
与えてあげる値の範囲が狭い場合、使える領域のデータも飛ばしてしまうので気をつけましょう。

JOB: DEFPIX~

INCLUDE_RESOLUTION_RANGE=  

使用する分解能を指定します。この範囲外であれば、範囲外のDetector pixelはUntrusted Regionとして認識されます(INTEGRATEやCORRECTにも使われないです)。
ちゃんと合っているかどうかはBKGPIX.PCKで「-3」が入っている部分が正しいのかどうかをきっちりと各自でチェックすることを忘れないようにしましょう。
CORRECTオプションでも使用する。XDS_ASCII_HKLに入っている反射を削るのに便利です。この場合、INCLUDE_RESOLUTION_RANGEを修正してCORRECTを流しましょう。high resolutionの方に0.0を入れたら全てを使用するという認識をします。

JOB: DEFPIX

さしあたり以上です。適宜更新予定。