EPMRを使ってみよう
- EPMRをダウンロードしてくること(バイナリファイルなので、即実行可能)
- EPMR用のスクリプトファイル
#!/bin/csh/ foreach FILENAME(`ls *ent`) set PREFIX=`echo $FILENAME` | sed -e 's/.ent//g'` echo $FILENAME $PREFIX epmr -t0.60 -p500 -n200 -w2 -o $PREFIX cell.inp $FILENAME P6522.hkl | tee $PREFIX.log end
- まず似ているであろうPDB座標を適当なディレクトリに配置する(複数可、拡張子は.ent)
- 次に上のスクリプトファイルを作成し実行属性をセット
- cell.inpというファイル(ファイル名は任意だが、変えるならスクリプトの方も書き直すこと)に格子定数を書き込む。フォーマットは空白で仕切った6文字列(数字列)
- hklファイルを準備。これには指数(h,k,l)及び、Fの絶対値のみ含まれていればよい。フォーマットはスペースで区切られた3整数、及び1浮動小数(Fね)。
- 以上が完了したら、このファイルを実行してみよう。後は、EPMRが解をたくさん見つけてきてくれます。
- EPMRのオプション、とスクリプトの意味については後日書き込みます。
オプション
結晶情報 -- cell.inp
1行テキストに
a b c alpha beta gamma space_group_number
を入力。スペースで区切られていれば大丈夫です。空間群の番号が分からない人は、CCP4環境が設定されていれば
vi $CLIBD/symop.lib
とやれば空間群ライブラリを見ることが出来るのでそこで適当に検索してください。
PDB input file
注意点
- 入力データ上はATOMまたはHETATM以外の部分は読み込まれない(REMARK行とかANISOUとかもだと思う)
- サポートされている原子種はC,N,O,S,PとFeのようです。サポートされていない原子種はCに置き換えられる
- マルチプルコンフォーメーション(アミノ酸側鎖とかが二つ以上ある)はEPMRの最終段階で使用される程度で、モデルサーチには大きく影響を与えない
Fobs input file
観測データのフォーマット。
H K L Fobs
誤差不要。空白で仕切られた(3x整数, 1x浮動小数)であれば問題ないようです。
最低限のコマンドライン
% epmr example.cel example.pdb example.hkl
- example.cel -- 結晶の情報
- example.pdb -- 入力モデルの座標
- example.hkl -- 観測データ
- 知っておきたいデフォルト値
- 非対称単位に1分子
- 10サイクル or 相関係数が0.45以上のものが見つかるまで
- Resolution range 15~4Å
- 最高の解を"epmr.1.best.pdb"として書き出す
- 順番にパラメータ説明(簡単バージョン)
-m integer 非対称単位中の分子の数(入力例:-m2) -h real_number 高い方の分解能 -l real_number 低い方の分解能 -p integer 1回のサイクルでいくつの答えを欲するか
(多ければ多いほど良いが時間との兼ね合いになるでしょう; 参考:早いマシンの人は600ぐらいでもOK?)-g integer 最適化のサイクル(-pを多くするのと同じ効果)。プログラムの作者はこの値はいじらない方が良いとのこと。 -n integer Search runの数(たくさんの解を検討したい人用) -t real_number モデルとFobsの相関係数許容閾値。これより大きいのは解として認める -T 並進サーチのみ -b real_number 最小「衝突」距離。対称操作で関係付けられる、お隣さんまでの距離 -w integer 解をPDBに書き出すオプション。値 0:なし 1:ベストのみ 2:全て -o name アウトプットPDBファイル名のプレフィクス(つまり.pdbの前)。適当に -s name 静的な部分構造(つまり動かしたくない)のがある場合指定する(詳細は後日) -S 初期構造因子の計算をFFTというよりむしろ直接的な構造因子の足しあわせから計算する -e integer 乱数を発生するときの乱数種(random seed)の値
実行例
% epmr -t0.60 -p500 -n200 -w2 -o foo cell.inp model.pdb P6522.hkl
この例では、「model.pdbを入力モデルとしてP6522.hkl上にある20-4Åの反射データを使って(ディフォルト)、200解見つけ終わるか相関係数0.60越える解が見つかるまで、解の最適化を500回/解ずつやって、終わったらfooというプレフィックスでPDBファイル書き出す」ということになる。
くにを博士の感想
- EPMRは実空間での遺伝的アルゴリズム的な解のサーチをしてくれるので、良いように思われます。ただ、相関係数で判断しているのでその辺り、やはり議論はあるみたいです。
- 相関係数だと値が高くてもR-factorが落ちきらないってケースが理屈上でも、経験上でも非常によくあることです。
- R-factorは40%くらいまで行ってたらだいたい構造出たも同然、なんて書いてあるけれどそうでもなかったりします。
- 別に否定的ではなくて、良いデータなんかはさっくり決まるのかなぁ、なんて思ったりしますね。僕のは決まりませんでした。もう一つは、上記のような簡単なスクリプトでゴリゴリと解を探そうと計算をし続けてくれるので大型連休前に流しっぱなしなんてのがお勧めかも。