回折強度積分ソフトウェアである『XDS』と、そのヘルパースクリプト『xdsme』を使ってみました。
XDS は、ディテクタ設定や測定条件なんかを全てインプットファイルに書かないといけないので、面倒くさくて敬遠してたんですが、xdsme という python スクリプトを用いることで、そのほとんど全てをイメージファイルのヘッダ情報から抽出し、インプットファイルを自動生成してくれてとても楽チン、と風の噂で聞いたので、やってみることにしました。
評判に違わず、なかなかイイですね、コレ。
XDS はココを参考にしてダウンロードとインストール、次にココから xdsme をダウンロードしてインストールし、PATHを設定します。
ついでに『XDS-Viewer』もダウンロードして、XDS と同じ場所にインストールしておきました。
ココとかコレとかを読んで、なんとなく概要と使い方がぼんやりとわかったところで、素性の知れた標準サンプルでも処理してみることにしました。使ったサンプルは、以前 SPring-8 BL41XU で取った波長 1.5 Åのリゾチーム結晶のデータ。
早速やってみましょう。
ubuntu-vm:~/testXDS> xdsme IMG/Lys15A03_*.img >> Interpreting header of image: IMG/Lys15A03_00001.img >> Image format: adsc >> Detector type: ADSC 315 Simplified XDS Processing Diffraction Setup Parameters: Detector distance: 80.00 mm X-ray wavelength: 1.5000 A Oscillation range: 1.0000 degree Beam coordinate X: 1538.0 pixel Y: 1534.0 pixel Resolution range: (45.0, 0.0) Image range: [1, 360] …
おお、ちゃんとヘッダから読んでますねぇ…
… !!! WARNING in IDXREF. Percentage of indexed reflections bellow 50%. Unit cell parameters: 36.82 78.25 97.03 87.95 87.99 88.50 Space group number: 1 Indexed spots: 13.3% (1293/9708) Spot prediction ESD: 2.26 pixels and 1.14 degrees Refined beam position (in mm): ( 158.214, 157.017) Refined beam position (in pixels): ( 1542.23, 1530.56) Shift in beam position: 0.55 mm (5.4 pixels) Size of the origine index table: 60 Origin ranking for the best 5 solutions: Quality: 1.10, 1.50, 1.90, 2.10, 2.50 Shift (mm): 0.55, 1.74, 2.74, 1.37, 3.00 Shift (pixels): 5.4, 17.0, 26.7, 13.4, 29.2 Beam X (mm): 157.3, 157.8, 160.4, 156.9, 159.9 Beam Y (mm): 157.0, 155.6, 158.1, 158.4, 159.4 Index Origin: 0 0 0, 0 1 0, -1 0 0, 0 -1 0, -1 -1 0 TABLE OF POSSIBLE LATTICES: num Symm quality mult a b c alpha beta gamma ------------------------------------------------------------------- 1) P1 0.00 1 36.8 78.2 97.0 87.9 88.0 88.5 2) P1 27.80 1 36.8 78.2 97.0 92.1 92.0 88.5 …
…あれ? 格子が上手く決まってませんので、一旦止めましょう。
… 9 - 16 38 0.908 0 17 - 24 28 0.991 0 ^CTraceback (most recent call last): File "/usr/local/xdsme/bin/noarch/xdsme", line 1614, inR4 = newrun.run_integrate(collect.imageRanges) File "/usr/local/xdsme/bin/noarch/xdsme", line 997, in run_integrate self.run(rsave=True) File "/usr/local/xdsme/bin/noarch/xdsme", line 731, in run lines = xdsProcess.stdout.readline() KeyboardInterrupt ubuntu-vm:~/testXDS>
そういえば、BL41XU はゴニオの回転方向が他と逆(いわゆる『ReversePhi』)でしたねw
BL41XU解析パラメータのページにある Q315 用の XDS.INP を参考に、パラメータを追加してみましょう。
xdsme に、-i オプションで "ROTATION_AXIS=-1 0 0" とパラメータを追加しました。
ubuntu-vm:~/testXDS> xdsme -i "ROTATION_AXIS=-1 0 0" IMG/Lys15A03_*.img >> Interpreting header of image: IMG/Lys15A03_00001.img >> Image format: adsc >> Detector type: ADSC 315 Simplified XDS Processing Diffraction Setup Parameters: Detector distance: 80.00 mm X-ray wavelength: 1.5000 A Oscillation range: 1.0000 degree Beam coordinate X: 1538.0 pixel Y: 1534.0 pixel Resolution range: (45.0, 0.0) Image range: [1, 360] (中略) ---> Running job: IDXREF Unit cell parameters: 37.06 79.03 79.04 90.01 90.01 90.02 Space group number: 1 Indexed spots: 96.1% (9330/9708) Spot prediction ESD: 0.33 pixels and 0.20 degrees Refined beam position (in mm): ( 157.800, 157.672) Refined beam position (in pixels): ( 1538.19, 1536.94) Shift in beam position: 0.28 mm (2.7 pixels) Size of the origine index table: 9 Origin ranking for the best 5 solutions: Quality: 1.00, 4.50, 4.70, 5.50, 6.70 Shift (mm): 0.28, 3.35, 3.78, 4.80, 6.79 Shift (pixels): 2.7, 32.7, 36.8, 46.8, 66.2 Beam X (mm): 157.8, 155.2, 160.4, 153.6, 151.0 Beam Y (mm): 157.6, 155.2, 160.1, 159.7, 157.3 Index Origin: 0 0 0, -1 1 0, 1 -1 0, -1 -2 -1, -2 -1 -1 TABLE OF POSSIBLE LATTICES: num Symm quality mult a b c alpha beta gamma ------------------------------------------------------------------- 1) P1 0.00 1 37.1 79.0 79.0 90.0 90.0 90.0 2) P1 0.20 1 37.1 79.0 79.0 90.0 90.0 90.0 3) P2 0.50 2 79.0 37.1 79.0 90.0 90.0 90.0 4) C2 0.60 4 111.8 111.8 37.1 90.0 90.0 90.0 5) P2 0.60 2 37.1 79.0 79.0 90.0 90.0 90.0 6) P2 0.70 2 37.1 79.0 79.0 90.0 90.0 90.0 7) P222 0.90 4 37.1 79.0 79.0 90.0 90.0 90.0 8) C2 1.00 4 111.8 111.8 37.1 90.0 90.0 90.0 9) C222 1.00 8 111.8 111.8 37.1 90.0 90.0 90.0 10) P4 1.30 4 79.0 79.0 37.1 90.0 90.0 90.0 …
今度は上手くいってそうです。
… -> New high resolution limit: 1.54 Å -> Usging spacegroup: P4(1)2(1)2 #92 ---> Running job: CORRECT RMSd spot position: 0.63 pix, 0.14 deg. Refined Mosaicity: 0.13 deg. Rsym: 5.9 I/sigma: 9.6 Suggested high resolution cutoff: 1.54 Compared reflections: 477910 Total number of measures: 477920 Traceback (most recent call last): File "/usr/local/xdsme/bin/noarch/xdsme", line 1617, innewrun.run_correct((h, l), spgn) File "/usr/local/xdsme/bin/noarch/xdsme", line 1072, in run_correct s = resum_scaling(lpf=os.path.join(self.run_dir,"CORRECT.LP")) File "/usr/local/xdsme/XDS/xupy.py", line 843, in resum_scaling sp1 = lp.index(" INPUT DATA SET") ValueError: substring not found ubuntu-vm:~/testXDS
終わったみたいです。
Rsym は、5.9 % と悪くないデータですが、空間群が勝手に【P 41212】にされています。
なので、-s オプションで空間群を指定してやり直しです。
また、後でS-SADをかけるために -A オプションをつけてバイフット対で出力させて、-3 オプションで IDEXREF から処理させます。
ubuntu-vm:~/testXDS> xdsme -A -3 -s P43212 -i "ROTATION_AXIS=-1 0 0" IMG/Lys15A03_*.img
… Rsym: 8.7 I/sigma: 7.5 Suggested high resolution cutoff: 1.54 Compared reflections: 637929 Total number of measures: 638068 Traceback (most recent call last): File "/usr/local/xdsme/bin/noarch/xdsme", line 1617, innewrun.run_correct((h, l), spgn) File "/usr/local/xdsme/bin/noarch/xdsme", line 1072, in run_correct s = resum_scaling(lpf=os.path.join(self.run_dir,"CORRECT.LP")) File "/usr/local/xdsme/XDS/xupy.py", line 843, in resum_scaling sp1 = lp.index(" INPUT DATA SET") ValueError: substring not found ubuntu-vm:~/testXDS>
ログファイル(COLLECT.LP)の統計値を確認…なかなかイイ感じです。
RESOLUTION NUMBER OF REFLECTIONS COMPLETENESS R-FACTOR R-FACTOR COMPARED I/SIGMA R-meas Rmrgd-F Anomal SigAno Nano
LIMIT OBSERVED UNIQUE POSSIBLE OF DATA observed expected Corr
3.89 31171 2067 2069 99.9% 2.8% 2.9% 31171 93.40 2.9% 0.9% 94% 2.889 825
2.76 55935 3699 3699 100.0% 2.9% 3.1% 55935 84.13 3.0% 1.0% 68% 1.843 1642
2.26 68585 4755 4756 100.0% 4.0% 3.9% 68585 60.80 4.2% 1.6% 54% 1.584 2172
1.95 81638 5643 5647 99.9% 6.1% 6.0% 81636 41.52 6.3% 2.6% 33% 1.222 2615
1.75 90417 6335 6377 99.3% 13.0% 13.3% 90417 20.95 13.5% 6.7% 19% 0.975 2972
1.60 98492 7025 7089 99.1% 31.8% 32.9% 98491 9.14 33.1% 17.5% 3% 0.839 3314
1.48 104729 7556 7671 98.5% 86.2% 88.6% 104728 3.47 89.5% 47.7% -2% 0.735 3577
1.38 84855 7894 8263 95.5% 256.4% 263.3% 84841 0.96 270.0% 184.4% 1% 0.680 3759
1.30 22199 4857 8812 55.1% 857.7% 896.9% 22078 0.16 976.0% 1110.3% 2% 0.550 2233
total 638021 49831 54383 91.6% 8.7% 8.9% 637882 25.27 9.1% 19.7% 20% 1.045 23109
同じイメージを、HKL2000 + scalepack で処理した統計値が以下の通りですから、まぁ遜色ないでしょう。
Shell Lower Upper Average Average Norm. Linear Square
limit Angstrom I error stat. Chi**2 R-fac R-fac
50.00 3.45 368.9 4.0 2.7 0.868 0.030 0.036
3.45 2.74 220.4 2.7 2.0 0.944 0.036 0.042
2.74 2.39 106.9 1.7 1.5 0.865 0.046 0.051
2.39 2.17 81.3 1.6 1.4 0.872 0.057 0.060
2.17 2.02 60.2 1.4 1.3 1.170 0.082 0.090
2.02 1.90 38.5 1.3 1.3 0.913 0.103 0.104
1.90 1.80 25.3 1.3 1.3 0.590 0.124 0.114
1.80 1.72 17.5 1.4 1.4 0.525 0.176 0.163
1.72 1.66 13.6 1.5 1.5 0.528 0.245 0.223
1.66 1.60 11.5 1.8 1.8 0.528 0.326 0.301
All reflections 94.8 1.9 1.6 0.785 0.052 0.043
さて、このままスケーリングいってみましょう。
ubuntu-vm:~/testXDS> cd xds_process_Lys15A03 ubuntu-vm:~/testXDS/xds_process_Lys15A03> xscale2.py XDS_ASCII.HKL
スケーリングされた unmerged なデータが「XSCALE.HKL」という名前で出力されます。
では shelxC/D/E でS-SAD解析をやってみましょう。
xdsconv.py を使って、shelx 形式にフォーマット変換します。
このとき、以下のように重原子種と数を与えておくと、
ubuntu-vm:~/testXDS/xds_process_Lys15A03> xdsconv.py XDS_SCALE.HKL 10 S shelx
【shelx】というディレクトリが作られて shelxC が実行され、
- XSCALE_F4.hkl (フォーマット変換された回折データファイル)
- XX1.hkl ( shelxC で処理された回折データファイル)
- XX1_fa.hkl (重原子部分構造ファイル)
- XX1_fa.ins ( shelxD のインプットファイル)
- run_shelx.sh ( shelx 実行用スクリプト)
…生成されますが、shelxC の結果をグラフで見たいので、hkl2map で shelxC からやり直しますw
さすがに高分解能データだけあって、異様にキレイなマップですw
とりあえず、これで一通り終わりました。なかなかイイ感じのソフトウェアですね。
もっと早くに使わなかったのがちょっと悔やまれます。…まぁ xdsme なしでは使い始めなかったでしょうけどねw
スケーリングを XSCALE ではなく、Scala でやってみたり、愛しき Thaumatin のデータで試してみたりは、また後日に。
0 件のコメント:
コメントを投稿