コマンドラインからMOSFLM
MOSFLMを起動するとコマンドラインから使用できることに気づきます。
************ Version 6.2.6 for Image plate and CCD data 4th May 2006 *********** A.G.W. Leslie, MRC Laboratory Of Molecular Biology, HILLS ROAD, CAMBRIDGE CB2 2QH, UK E-mail andrew@mrc-lmb.cam.ac.uk New auto-indexing using DPS due to Ingo Steller Robert Bolotovsky and Michael Rossmann (1998) J. Appl. Cryst. 30, 1036-1040 Original auto-indexing using REFIX due to Wolfgang Kabsch (Kabsch,W. (1993), J.Appl.Cryst. 24,795-800.) X-windows interface using xdl_view due to John Campbell (Daresbury Laboratory, UK.) (Campbell,J.W. (1995) J. Appl. Cryst. 28, 236-242.
MOSFLM =>
LINUXなどのシステムと同様、MOSFLMは起動するとコマンドプロンプトを要求してきます。 これにたいしてどんなコマンドを入力すればどんなことをやってくれるかを見てみましょう。
最初の準備は・・・
基本的なパラメータ設定については以下のを利用したとします。
init.mac中のコマンド ! This input created from an interactive session DIRE ../ TEMPLATE deg01_0####.img !IMAGE 1 phi 0.0 to 0.1 DETECTOR ADSC DETECTOR OMEGA 90 WAVELENGTH 0.9197 DIVERGENCE 0.040 0.003 BEAM SWUNG_OUT 105.33 105.45 GAIN 1.00 ADCOFFSET 10 NULLPIX 50 DISTANCE 140.024 DISTORTION YSCALE 1.0007 TILT 31 TWIST 4 MOSAIC 0.30 OVERLOAD CUTOFF 60000
とりあえず必要なパラメータは上記で網羅されています。後は処理するだけ、という。 これらの基本的なパラメータについては各自準備してください。
Autoindex
パラメータ読み込み
私(ひらた)の知っている限りで書きますので他にもバリエーションがあることをお忘れなく。
MOSFLM => @init.mac
として init.mac 中のパラメータをMOSFLMにおぼえさせます。@を使うことにより作ったファイルをMOSFLMに読ませることができるということです。
ちなみに上記のコマンドはいちいち手で打っても問題ありません。面倒なので共通部分はなるべくとっといて使いまわそうということで上記ファイル「init.mac」を準備したということです。
Autoindexをする
MOSFLM => autoindex dps image 1
とすると1枚目のイメージを使ってAutoindexをしてくれます。
MOSFLM => autoindex dps image 1 91
とすると1、91枚目のイメージを使ってAutoindexしてくれます。 以下同様に
MOSFLM => autoindex dps image 1 91 181
なども使えます。
MOSFLM => symm p43212
とあらかじめ入力しておくと空間群はP43212である条件のもと結晶格子定数を確定してくれます。
Cell refinement
結晶格子定数の精密化を行います。
MOSFLM => postref segment 5 MOSFLM => process 1 5 MOSFLM => run MOSFLM => process 301 305 MOSFLM => run MOSFLM => process 601 605 MOSFLM => run MOSFLM => process 901 905 MOSFLM => run MOSFLM => process 1201 1205 MOSFLM => run
以上で計算が開始されます。終わったらログをよく確認して正しい格子定数が見積もられているかどうかをチェックしよう。
segment で指定するのはデータセットの角度領域のこと。上記の例では0.1deg. 振動で1800枚とったイメージのうち、
"0.1-0.5, 30.0-30.5, 60.0-60.5, 90.0-90.5, 120.0-120.5 deg."
を使って格子定数のリファインメントをやりますよ、という宣言。
LOG file の内容(端末に表示、あるいは MOSFLM.LPにあるはず)
Cell refinement is complete Starting cell 78.638 78.638 37.021 90.000 90.000 90.000 Refined cell 78.736 78.736 36.996 90.000 90.000 90.000 Error 0.001 0.001 0.001 0.000 0.000 0.000 Rms positional error (mm) as a function of cycle for each image. Image 1 2 3 4 5 301 302 303 304 305 Cycle 1 0.043 0.060 0.056 0.048 0.067 0.051 0.059 0.065 0.062 0.058 Cycle 2 0.066 0.058 0.050 0.065 0.048 0.051 0.067 0.052 0.073 0.050 Cycle 3 0.054 0.075 0.051 0.056 0.061 0.047 0.065 0.054 0.070 0.046 Image 601 602 603 604 605 901 902 903 904 905 Cycle 1 0.067 0.060 0.065 0.077 0.068 0.048 0.058 0.049 0.056 0.038 Cycle 2 0.064 0.053 0.079 0.061 0.059 0.050 0.050 0.054 0.070 0.054 Cycle 3 0.052 0.061 0.068 0.076 0.056 0.056 0.055 0.051 0.063 0.052 Image1201 1202 1203 1204 1205 Cycle 1 0.041 0.053 0.050 0.048 0.048 Cycle 2 0.042 0.046 0.053 0.048 0.048 Cycle 3 0.040 0.057 0.047 0.049 0.045 YSCALE as a function of cycle for each image: Image 1 2 3 4 5 301 302 303 304 305 Cycle 1 1.001 1.001 1.001 1.001 1.001 1.002 1.001 1.001 1.002 1.002 Cycle 2 1.000 1.000 1.000 1.001 1.000 1.001 1.000 1.000 1.000 1.000 Cycle 3 1.000 1.000 1.000 1.001 1.000 1.000 1.000 1.000 1.000 1.000 Image 601 602 603 604 605 901 902 903 904 905 Cycle 1 1.001 1.002 1.002 1.001 1.002 1.001 1.001 1.001 1.001 1.001 Cycle 2 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 Cycle 3 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 Image1201 1202 1203 1204 1205 Cycle 1 1.000 1.001 1.000 1.001 1.001 Cycle 2 1.000 1.001 1.000 1.000 1.001 Cycle 3 1.000 1.000 1.000 1.000 1.001 Detector distance as a function of cycle for each image: Image 1 2 3 4 5 301 302 303 304 305 Cycle 1 140.0 140.1 140.0 140.0 140.0 140.0 140.1 140.1 140.1 140.1 Cycle 2 140.2 140.1 140.2 140.1 140.2 140.2 140.2 140.2 140.2 140.2 Cycle 3 140.2 140.2 140.2 140.1 140.2 140.2 140.2 140.2 140.2 140.2 Image 601 602 603 604 605 901 902 903 904 905 Cycle 1 140.1 140.0 140.0 140.0 140.1 140.1 140.0 140.0 140.1 140.1 Cycle 2 140.2 140.2 140.2 140.2 140.2 140.2 140.2 140.2 140.2 140.2 Cycle 3 140.2 140.2 140.2 140.2 140.2 140.2 140.2 140.2 140.2 140.2 Image1201 1202 1203 1204 1205 Cycle 1 140.0 140.0 140.0 140.0 140.0 Cycle 2 140.2 140.2 140.2 140.2 140.2 Cycle 3 140.2 140.2 140.2 140.2 140.2 Refined mosaic spread (excluding safety factor): 0.12 Missets for first image ( 1) 0.00 0.02 0.04 Missets for last image (1205) 0.05 0.02 0.05
注意すべきなのは、格子定数が最初のイメージと最後ので相当違っているとか(数Å)、カメラ長が数ミリ違ってきているとか、とかいうおかしな現象。
ただし、このプロセスがうまく終了していたらまずはデータ処理くらいはできます、という目安になります。
数値的にうまく処理できているかを判断したい場合は RMS positional errorの表です。よい結晶データの場合、この値が0.01-0.05くらいでしょうか。上記の例だと少し高いですが、0.10を超えなければ私はよしとしています。
おかしな現象というのは大体、上記の確認で見付けることができると思います。
この場合、ビームラインやカメラ長など、パラメータの設定(init.mac)がおかしい、か、処理のプロトコルを再考する必要がある。
missets というパラメータは最初にAutoindexで決まっていた結晶のX線に対する向きがどの程度の角度ずれているか、ということを示すパラメータ。
最初にAutoindexできめた結晶の方位(向き)はざっくり見積りである。このざっくり見積をさらに正確に決めた後に、初期のパラメータからずれたよ、ということを示すのがMISSETSである。
上記の例では最初と最後の角度セグメントの1枚目(ややこしい?)で結晶の方位が若干違っていたよ、ということを示しています。これらの情報はイメージ上にある回折点の位置を見てMOSFLMが見積もってくれるものです。
MOSAICITY の見積り
実はMOSAICITY(mosaic spread)の見積りは上記の格子定数精密化をやるとほぼ正確に行えます。以下に記す方法は「若干精度を欠くMOSAICITYの見積りである」ことを認識しておいてください。
MOSFLM => mosaic estimate 901
このコマンドで901枚目のイメージを使ってmosaicityを見積もります。 ちなみにこの見積り計算は1枚のイメージしか使いません。ということでmosaicityの見積りとしては相当甘いものになります。最初に積分を行うときのざっとした見積値としてどうしても(上記)格子定数精密化ができない場合やむなく使う、という位置づけとして考えましょう。
積分
MOSFLM => process 1 to 180 MOSFLM => go
以上でこれまで決めてきた結晶のパラメタ(格子定数、mosaicity, orientation matrix)を使って反射イメージの積分を行うことができます。
どうしたらええのん?
プロファイルフィッティングでこける
MOSFLM積分作業を開始してしばらくすると「プロファイルフィッティングがプアーです」といって勝手にMOSFLMが停止することがあります。そんなときには、以下をお試しください。この問題以外での用途にも使えるコマンドもあります。
氷のリングがあるのかも
氷のリングでバックグラウンドがうまく決まっていないかも知れないので、
resolution exclude 3.66 3.72
などとして、リングがある分解能領域(2 theta)のみ、計算に使わない。
部分反射をリファインメントに入れてみる
フィッティングするパラメータの数とリファインメントに使う反射の数が、つりあっていないかも知れない。
refinement include partials 0.3
0.3以上の部分度(partiality)を持つ反射をリファインメントに使う。
プロファイルがだめ、と判断するためのパラメータをいじる
MOSFLM処理では、どんなパラメータも「良い結晶」基準で、デフォルトパラメータがある。プロファイルフィッティングについてもそうで、以下のようにパラメータに規制がかかっています。
- 標準プロファイルを決めるための反射が10個以上あるか?
- バックグラウンド平面のRMSが大きすぎないか?(10以下)
これらを意図的に、ゆるくしてあげることで、リファインメントに使用する反射を増やすことが出来ます(ただし、得られるデータが良くなるわけではありません)。
PROFILE RMSBG 20 NREF 5
この指定によって、バックグラウンド平面のRMSは'20以下'だと許容、反射数も'5個'あれば良い、という設定が可能です。
プロファイルを作るピーク
標準プロファイルを計算している時に、「変な形(プロファイル)の反射ピーク」を使うと、この問題が起きるケースもあります。特に、CCDモジュールの間にある隙間が反射に掛かってしまう場合などが挙げられます。他になんか変な影とかがイメージ上にないですか?
NULLPIX 20
カウントが20以下のピクセルが入るとその反射はプロファイル計算に使わない、というコマンド。
バックグラウンドの値をイメージビューアなどでよく確認してめちゃんこ慎重に閾値を選ばないと、それこそ変な処理になっちゃいますので注意。
しかし、大体の場合・・・
上記のようなマニアックな設定は、ほとんどいじらなくても問題なくいけます(くにを経験上)。もし、プロファイルフィッティングにこけたのであれば、最初に以下の設定をしてみてください。
RASTER 23 17 8 3 2 (数値は任意)
デフォルトでは、もっともよいボックスパラメータ(以下のボックスの縦横、ピーク領域などのパラメータ)をプログラムが自動的に決めます。
<------------------ NXS = 23 ---------------> ^ - - - - - - - - - - - - - - - - - - - - - - - ^ ! - - - - - - - - - - - - - - - - - - - - - - - NRY =2 ! - - - - - - - - - - - - ^ ! - - - - - - - - - - ! - - - - - - - - ! - - - - - - ! - - - - - - ! - - - - - - NYS =17 - - - - - - ! - - - - - - ^ ! - - - - - - ! ! - - - - - - ! ! - - - - - - - - ! ! - - - - - - - - - - NC =8 ! - - - - - - - - - - - - ! ! - - - - - - - - - - - - - - - - - - - - - - - ! ^ - - - - - - - - - - - - - - - - - - - - - - - ^ <NRX> = 3
上図は、各パラメータの値を示しています。NXS/NYSはボックスの大きさ、NRX/NRYはバックグラウンド見積領域、NCは中心ですかね。
上図では - となっている部分がバックグラウンドです。
コマンドで指定する順ですが、
RASTER NXS NYS NC NRX NRY
回折イメージを見てプロファイルがのびのびの場合に、MOSFLM自動生成ボックスを使うと、プロファイルを決めるのに失敗しやすいのだろうと思います。
ということで、上記コマンドでは、初期ボックスの大きさ、などを指定しています。うまく行かない場合は、最初にこのボックスサイズを調整してみるのが良いと思います。
ただし、この作業は「積分ボックスが大きすぎると、隣の反射まで処理してしまう」ことがあるので、イメージを見ながらやった方がよいでしょう。
ポストリファインメントについて
X線の発散角とモザイク角
POSTREF BEAM 1
- x = 0 switches off refinement
- x = 1 only mosaic spread refined
- x = 2 mosaic spread not refined, horizontal and vertical beam divergences refined
注意事項
MOSFLMによるデータ処理を行う場合 SPOTODファイルという一時ファイルが作成されます。このファイルは一時ファイルだけあってアクセススピードがかなり速いらしい。NFSでHDDをマウントしており、データ処理をそのHDD上で行う場合にNFSのアクセススピードによってたまにMOSFLMがコアダンプはいて止まる、というケースもあります。
このような場合、一時ファイルはローカルのHDDを使用する必要がある。私(ひらた)の場合は、IPMOSFLM起動時にコマンドラインにて、
$ ipmosflm spotod /localdisk/test.spotod
という指定をしてあげることにしています。