処理の手順
- 反射ファイルの準備
- スクリプトの準備
- SOLVEで位相を決定する
- RESOLVEでモデルを組む
利用できる反射ファイルのフォーマット
- HKL2000の.scaファイル
- MTZファイル
- XSCALEのアウトプットファイル
- フリーフォーマットのものも可
反射ファイルの準備
HKL2000->SOLVEという黄金パターンは相性が良い。どっちもアメリカ生まれだから???
スクリプトの準備
3波長MADの基本スクリプト
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
#!/bin/csh # 単純な3波長MAD用SOLVEスクリプト(csh) # オリジナルのSOLVEを使うときは適宜修正すること # symdir=/usr/local/lib/solve # コマンド名(phenix.solve->solve) #--- パラメータ設定 ---# set wave1=1.07180 set wave2=1.07207 set wave3=1.05385 set sca1="../output_peak_P6122_300_unmerged.sca" set sca2="../output_edge_P6122_300_unmerged.sca" set sca3="../output_hrem_P6122_300_unmerged.sca" set fp1=-19.2 fpp1=10.2 set fp2=-23.1 fpp2=10.2 set fp3=-11.0 fpp3=9.9 set NRES=200 # 非対称単位中の残基数 set NANOM=2 # 非対称単位あたりの異常分散原子数 set ATOM=pt # 異常分散原子 set CELL="37.175 37.175 142.179 90.000 90.000 120.000" set SG=p6122 # p6122.symのように使用される set MAXRESOL=3.0 # 使用する最高分解能 set MINRESOL=20.0 # 使用する最低分解能 #----------------------# # SOLVE実行部 # 環境変数設定 set symdir="/usr/local/phenix-1.3-final/solve_resolve/ext_ref_files" setenv CCP4_OPEN UNKNOWN setenv SYMOP "$symdir/symop.lib" setenv SYMINFO "$symdir/syminfo.lib" setenv SOLVETMPDIR /var/tmp # SOLVE開始 "!"以降はコメントとして扱われる # sedで!以降を削除(日本語で出力が乱れることがあるため) # sedを使わないなら phenix.solve <<EOD | tee solve.log でよい sed 's/[[:space:]]\+\!.\+$//' <<EOD | phenix.solve | tee solve.log title 3-wavelength MAD dataset ! setups CELL $CELL ! 格子定数 symfile $symdir/${SG}.sym ! symmetry file for this space group resolution $MAXRESOL $MINRESOL ! 使用分解能指定 logfile mad.logfile checksolve refscattfactors ! f',f"の精密化を行う。結果がダメならfix readdenzo ! DENZO(.sca)ファイルを読む unmerged ! SCALEPACKで"no merge original index"を指定した !premerged ! Mergeしている(SCALEPACK標準) read_intensities ! データはFではなく強度(I) mad_atom $ATOM ! MADに使用する核種 lambda 1 ! 波長1の設定 label Wavelength # 1 ! この波長のラベル(optional) wavelength $wave1 ! 測定波長 fprimv_mad $fp1 ! f'の値(小数点以下1桁ぐらい) fprprv_mad $fpp1 ! f"の値(小数点以下1桁ぐらい) rawmadfile $sca1 ! データファイル名 lambda 2 wavelength $wave2 fprimv_mad $fp2 fprprv_mad $fpp2 rawmadfile $sca2 lambda 3 wavelength $wave3 fprimv_mad $fp3 fprprv_mad $fpp3 rawmadfile $sca3 nres $NRES nanomalous $NANOM SCALE_MAD ANALYZE_MAD SOLVE EOD
パラメータ部分の設定を状況に合わせて書き換えればSOLVEが実行されるはずです。
SOLVEを実行するコマンドにsedを使っていますが、これは"!"以降のコメントに日本語を使っているためSOLVEの出力が乱れることがあるためです(出力のほんの初めの部分だけなので気にしなくてもいいかもしれませんが)。問題がなさそうならsedを通さなくてもいいと思います。
- resolve.csh
#!/bin/csh setenv CCP4_OPEN UNKNOWN setenv SOLVETMPDIR /var/tmp setenv SYMOP /usr/local/lib/solve/symop.lib # RESOLVE開始 resolve <<EOD | tee resolve.log solvent_content 0.35 ! 溶媒含量 resolution 50 3.0 ! DM/モデル組み立てに使う分解能指定 EOD
SADの基本スクリプト
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
#!/bin/csh # SAD用SOLVEスクリプト(csh) # オリジナルのSOLVEを使うときは適宜修正すること # symdir=/usr/local/lib/solve # コマンド名(phenix.solve->solve) #--- パラメータ設定 ---# set wave1=0.9791 set sca1="../fin26_scala_ano.sca" set fpp1=3.8414 set NRES=94 set NANOM=2 set ATOM=se set CELL="45.981 48.974 45.876 90.000 118.153 90.000" set SG=p6122 #----------------------# # SOLVE実行部 # 環境変数設定 set symdir="/usr/local/phenix-1.3-final/solve_resolve/ext_ref_files" setenv CCP4_OPEN UNKNOWN setenv SYMOP "$symdir/symop.lib" setenv SYMINFO "$symdir/syminfo.lib" setenv SOLVETMPDIR /var/tmp # SOLVE開始 "!"以降はコメントとして扱われる # sedで!以降を削除(日本語で出力が乱れることがあるため) # sedを使わないなら phenix.solve <<EOD | tee solve.log でよい sed 's/[[:space:]]\+\!.\+$//' <<EOD | phenix.solve | tee solve.log title SAD phasing res_phase 3.0 15 ! 位相決定に利用する分解能範囲 resolution 2.1 15 ! 最終的に出力される分解能範囲 CELL $CELL symfile $symdir/${SG}.sym ! symmetry file for this space group logfile mad.logfile ! write out most information to this file. checksolve ! 重原子位置を入力する場合に入力値とSOLVEの解を比較するか mad_atom $ATOM ! 重原子種 !refscattfactors ! SADの場合はしないほうが良い。しない場合は fixscattfactors fixscattfactors ! 原子散乱因子の精密化を行わない readdenzo ! SCALEPACK(.sca)のデータを読む unmerged ! SCALEPACKで"no merge original index"を指定した !premerged ! Mergeしている(SCALEPACK標準) read_intensities ! データはFではなく強度(I) lambda 1 ! 波長の情報 label Wavelength # 1 ! この波長のラベル wavelength $wave1 ! 波長 fprprv_mad $fpp1 ! その波長の時のf" rawmadfile $sca1 ! データファイル名 nres $NRES ! 非対称単位中の残基数 nanomalous $NANOM ! 非対称単位中の重原子の数(大体) SAD EOD
- resolve.csh
#!/bin/csh setenv CCP4_OPEN UNKNOWN setenv SOLVETMPDIR /var/tmp setenv SYMOP /usr/local/lib/solve/symop.lib # RESOLVE開始 resolve <<EOD | tee resolve.log solvent_content 0.35 ! 溶媒含量 resolution 25 2.1 ! DM/モデル組み立てに使う分解能指定 EOD
異常分散シグナルの値
f', f"(エフプライム、エフダブルプライム)を求めてみましょう。そもそも f', f"はなんですか?というのはおいといて。
とりあえずプログラムを走らせることを優先します。
f', f"を求める方法は私が知る限り3通りあります。
文献値を引っ張ってくる
測定した波長と自分のタンパクに含まれている重原子種とを佐々木テーブルを参照して、f', f"を求めることができます。
文献値を参照する場合の注意点として、「測定した波長を厳密にはわからない」、ということがあります。特に放射光施設を使ってデータ収集をした場合、エネルギー校正(モノクロメータの結晶の角度と出射X線が合っているか?)の状態によっては、制御ソフトウェアで示された波長と実際の波長に差があることがあるようです(もちろん無いように施設の人は全力を尽くしてはいますが、様々な要因がありますので)。この場合、佐々木テーブルを参照するときの波長が間違っている可能性があるわけで、最悪誤ったf', f"の値を使うことになってしまうこともあるようです。そのため、SOLVEではf', f"の値を精密化してくれるようです。
そんなこともあり、f', f"の値が位相決定に影響することもあります。
CROSSECを利用する
CCP4パッケージのCROSSECというプログラムを利用します。このプログラムは佐々木テーブルを拡張したような使い方が出来ます。
慣れればコマンドラインからの使用も可能です(はっぴ〜☆Scriptingでは、核種と波長から簡単に求めるスクリプトを紹介しています)。
XAFSスペクトルの解析
データを測定する際に取得したXAFSスペクトルを解析することにより実験的なf', f"を求めます。
スペクトル解析にはCHOOCHを利用するか、制御プログラムが出力してくれた値を使います(PFのUGUIはCHOOCHによる解析値を出してくれます)。ただ、この値が文献値よりもいいのかどうかはやってみないとわかりません・・・
HKL2000の.scaファイル
HKL2000でのスケーリング
位相決定にはバイフット対の反射は別々に記録されていることが必須
HKL2000のスケーリングの際に、anomalousかscale anomalousラジオボタンにチェックを入れて反射ファイルを出力する。
viなどのテキストエディタで.scaファイルの中身をチェックしてみると分かりますが、バイフット対のある反射にはI(+)/I(-)のどちらも強度が掲載されるようになります。
SOLVEに.scaファイルを入力する場合には以下のno merge original indexを入力することをお奨めします(local scalingの恩恵を受けることができるので)。
SCALEPACKでSOLVE用のUNMERGEDデータを出力する
SOLVEインプット用の.scaファイルを作る際、HKL2000で観測された反射をマージするのではなくそのまま出力しておくことで、SOLVEのlocal scalingが利用可能になります。
- HKL2000 for Manias/マージせずに反射ファイルを作りたい?
このlocal scalingは特にMADデータの処理の際に有効な方法なのでMADでデータ収集をした人は試してみるといいでしょう。
.scaファイルを見て、ヘッダ部分にラウエ対称のマトリクスが表示されていれば成功。(no merge original indexではない場合には空間群と格子定数のみのヘッダ)
SOLVE に.SCAファイルを読み込ませるコマンド
以下のキーワードを使用する
readdenzo -- DENZOつまりHKL2000フォーマットの指定 unmerged -- Mergeしていない read_intensities -- 強度を読む。Fじゃない rawmadfile foo.sca -- ファイル名の指定
SCALAから
SCALAから読み込む場合にはMTZファイルの名前とカラムの名前を入力する必要がある
キーワードとして以下を使用
hklin foo.mtz labin FPH1=F SIGFPH1=SIGF DPH1=DANO SIGDPH1=SIGDANO
ResolveによるDensity Modification
DMのみ行う
他の方法で解析していたMTZを使ってRESOLVEでDMしながらモデル構築する場合。
MTZファイルを準備する
位相、Figure of Merit、(ヘンドリクソン-ラットマン係数)があるファイルを作る。
一般的なsolve.mtzのカラム(CCP4-MTZDUMPの結果)
From solve.mtz Col Sort Min Max Num % Mean Mean Resolution Type Column num order Missing complete abs. Low High label 1 NONE 0 9 0 100.00 4.3 4.3 19.12 3.50 H H 2 NONE 0 5 0 100.00 1.4 1.4 19.12 3.50 H K 3 NONE 0 40 0 100.00 15.4 15.4 19.12 3.50 H L 4 NONE 12.7 746.3 0 100.00 105.56 105.56 19.12 3.50 F FP 5 NONE 0.3 10.2 0 100.00 0.83 0.83 19.12 3.50 Q SIGFP 6 NONE 0.0 359.6 0 100.00 163.79 163.79 19.12 3.50 P PHIB 7 NONE 0.000 1.000 0 100.00 0.708 0.708 19.12 3.50 W FOM 8 NONE -295.2 421.2 0 100.00 0.99 6.82 19.12 3.50 A HLA 9 NONE -138.6 270.2 0 100.00 0.72 4.98 19.12 3.50 A HLB 10 NONE -39.5 14.9 0 100.00 -0.34 0.91 19.12 3.50 A HLC 11 NONE -19.5 12.1 0 100.00 -0.07 0.70 19.12 3.50 A HLD
- Phase=PHIB
- FOM=Figure of merit
- HLA=Hendrickson-lattmann coefficient A
- HLB=Hendrickson-lattmann coefficient B
- HLC=Hendrickson-lattmann coefficient C
- HLD=Hendrickson-lattmann coefficient D
HLA/HLB/HLC/HLDはFOMがあれば計算可能。CCP4iの「Phase」関連のファイルいじりで出来るはず。
RESOLVE用インプットファイル
入力カラムの指定
LABIN FP=Fnative PHIB=PHIB FOM=FOM (HLA=HLA HLB=HLB HLC=HLC HLD=HLD)
ここでは上記のCCP4-CADの操作でもともとのデータと位相情報を足し合わせたMTZファイルを準備した後、そのカラムの名前を指定しています。
このとき()内の係数はあっても無くても良いようです。
分解能はres_startにて開始分解能を指定。
resolve<<EOD|tee resolve.log LABIN FP=Fnative SIGFP=SIGFP PHIB=PHIB FOM=FOM HLA=HLA HLB=HLB HLC=HLC HLD=HLD res_start 3.5 solvent_content 0.35 ! your solvent content goes here. resolution 20 2.9 ! resolution limit. EOD
File名の指定
デフォルトではRESOLVEはsolve.mtzを読み込むことになっているが、もちろん入力MTZファイルの名前を指定することも可能である。
hklin solve_yarinaoshi.mtz
とするとsolve_yarinaoshi.mtzと言うファイルを読み込んでくれる。内容は F PHI FOMがあれば少なくとも走るようである。
Sequence fileについて
シークエンスファイル名
seq_file foo.seq
とする。
フォーマット
- 1文字表記の1次配列
- 1行に80文字まで
- チェインの終了コードは>>>
出力PDBファイルについて
RESOLVEはモデルと共にHETATMコード(PDB座標中、ATOMではなくHETATMによって始まる行)に重原子座標(SOLVE ha.pdbの情報)を出力。
モデル構築のオプション
色々とできるみたい(あんまりいじっても・・・)
no_build | 構築しないコース |
---|---|
build_only | 構築しかしないコース |
build_outside_model | 既にあるPDBに新たなモデルを足していくコース |
assemble_only | 入力されたPDBをつなげるだけコース |
計算のスピードや緻密さの指定(あんまりいじっても・・・)
superquick_build | できるだけ早く | グリッドが荒い。フラグメントサーチ。 |
---|---|---|
quick_build | 標準プロトコル。普通に早い | 特になし |
aggressive_build | アグレッシブにモデルを置く | 推奨しない(作るなよ) |
thorough_build | じっくり構築 | 別にquick_buildより良いのが出るとは限らない |
conservative_build | ひかえめにやる | 特になし |
その他1
resolve_build script
SOLVE, RESOLVE, REFMAC5を利用したモデル構築スクリプト
ただし相当時間がかかる模様でございます。
便利
- http://convex.hhmi.columbia.edu/comp/solve/html_resolve/resolve_sample_scripts.htm#vary_cycles
- http://www.solve.lanl.gov/html_resolve/resolve_running.htm
- http://convex.hhmi.columbia.edu/comp/solve/html_resolve/resolve_introduction.htm
重要な注意事項
解けないデータ
エッジとリモートの2波長MADもSOLVE/RESOLVEやってみてください。
少し人生が変わって見えるかも。
参考文献: Acta Cryst D59, 315-322 Ana Gonzalez@SSRL