[[MOSFLMを使ってみよう]]
 * コマンドラインからMOSFLM [#z5841428]
 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は起動するとコマンドプロンプトを要求してきます。
 これにたいしてどんなコマンドを入力すればどんなことをやってくれるかを見てみましょう。
 
 ** 最初の準備は・・・ [#r4d6676f]
 基本的なパラメータ設定については以下のを利用したとします。
  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 [#sda79fe9]
 *** パラメータ読み込み [#vda87ae5]
 私(ひらた)の知っている限りで書きますので他にもバリエーションがあることをお忘れなく。
 
  MOSFLM => @init.mac    
 
 として init.mac 中のパラメータをMOSFLMにおぼえさせます。@を使うことにより作ったファイルをMOSFLMに読ませることができるということです。~
 ちなみに上記のコマンドはいちいち手で打っても問題ありません。面倒なので共通部分はなるべくとっといて使いまわそうということで上記ファイル「init.mac」を準備したということです。
 
 *** Autoindexをする [#ee60c940]
  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 [#h8cddab8]
 結晶格子定数の精密化を行います。
 
  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にあるはず) [#k27f3593]
  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 の見積り [#hea1ff7d]
 実はMOSAICITY(mosaic spread)の見積りは上記の格子定数精密化をやるとほぼ正確に行えます。以下に記す方法は「若干精度を欠くMOSAICITYの見積りである」ことを認識しておいてください。
 
  MOSFLM => mosaic estimate 901
 
 このコマンドで901枚目のイメージを使ってmosaicityを見積もります。
 ちなみにこの見積り計算は1枚のイメージしか使いません。ということでmosaicityの見積りとしては相当甘いものになります。最初に積分を行うときのざっとした見積値として''どうしても(上記)格子定数精密化ができない場合''やむなく使う、という位置づけとして考えましょう。
 
 ** 積分 [#l769c3e3]
  MOSFLM => process 1 to 180
  MOSFLM => go
 
 以上でこれまで決めてきた結晶のパラメタ(格子定数、mosaicity, orientation matrix)を使って反射イメージの積分を行うことができます。
 
 * どうしたらええのん? [#w8e750f0]
 ** プロファイルフィッティングでこける [#w16ea8d5]
 MOSFLM積分作業を開始してしばらくすると「プロファイルフィッティングがプアーです」といって勝手にMOSFLMが停止することがあります。そんなときには、以下をお試しください。この問題以外での用途にも使えるコマンドもあります。
 
 *** 氷のリングがあるのかも [#r4ac1623]
 氷のリングでバックグラウンドがうまく決まっていないかも知れないので、
  resolution exclude 3.66 3.72
 などとして、リングがある分解能領域(2 theta)のみ、計算に使わない。
 
 *** 部分反射をリファインメントに入れてみる [#l8432bc9]
 フィッティングするパラメータの数とリファインメントに使う反射の数が、つりあっていないかも知れない。
  refinement include partials 0.3
 
 0.3以上の部分度(partiality)を持つ反射をリファインメントに使う。
 
 *** プロファイルがだめ、と判断するためのパラメータをいじる [#x9c885ff]
 MOSFLM処理では、どんなパラメータも「良い結晶」基準で、デフォルトパラメータがある。プロファイルフィッティングについてもそうで、以下のようにパラメータに規制がかかっています。
 + 標準プロファイルを決めるための反射が''10個以上''あるか?
 + バックグラウンド平面のRMSが大きすぎないか?(''10以下'')
 
 これらを意図的に、ゆるくしてあげることで、リファインメントに使用する反射を増やすことが出来ます(ただし、得られるデータが良くなるわけではありません)。
 
  PROFILE RMSBG 20 NREF 5
 
 この指定によって、バックグラウンド平面のRMSは'20以下'だと許容、反射数も'5個'あれば良い、という設定が可能です。
 
 *** プロファイルを作るピーク [#b1135a25]
 標準プロファイルを計算している時に、「変な形(プロファイル)の反射ピーク」を使うと、この問題が起きるケースもあります。特に、CCDモジュールの間にある隙間が反射に掛かってしまう場合などが挙げられます。他になんか変な影とかがイメージ上にないですか?
 
  NULLPIX 20
 
 カウントが20以下のピクセルが入るとその反射はプロファイル計算に使わない、というコマンド。~
 バックグラウンドの値をイメージビューアなどでよく確認してめちゃんこ慎重に閾値を選ばないと、それこそ変な処理になっちゃいますので注意。
 
 *** しかし、大体の場合・・・ [#qba329aa]
 上記のようなマニアックな設定は、ほとんどいじらなくても問題なくいけます(くにを経験上)。もし、プロファイルフィッティングにこけたのであれば、最初に以下の設定をしてみてください。
  RASTER 20 20 10 5 5 (数値は任意)
  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自動生成ボックスを使うと、プロファイルを決めるのに失敗しやすいのだろうと思います。~
 ということで、上記コマンドでは、初期ボックスの大きさ、などを指定しています。うまく行かない場合は、最初にこのボックスサイズを調整してみるのが良いと思います。~
 ただし、この作業は「積分ボックスが大きすぎると、隣の反射まで処理してしまう」ことがあるので、イメージを見ながらやった方がよいでしょう。
 
 *ポストリファインメントについて [#q4969f25]
 ** X線の発散角とモザイク角 [#z2055ea9]
  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
 
 ** 注意事項 [#sc9d5dca]
 MOSFLMによるデータ処理を行う場合 ''SPOTODファイル''という一時ファイルが作成されます。このファイルは一時ファイルだけあってアクセススピードがかなり速いらしい。NFSでHDDをマウントしており、データ処理をそのHDD上で行う場合にNFSのアクセススピードによってたまにMOSFLMがコアダンプはいて止まる、というケースもあります。~
 このような場合、一時ファイルはローカルのHDDを使用する必要がある。私(ひらた)の場合は、IPMOSFLM起動時にコマンドラインにて、
 
  $ ipmosflm spotod /localdisk/test.spotod
 
 という指定をしてあげることにしています。