2011年4月7日木曜日

[PX] hkl2map から Coot へ

重原子位置の決定・精密化と溶媒平滑化を行ってくれる shelxC/D/E には、「hkl2map」という素敵なGUIがあります。
これを使えば、スクリプトを一切手書きせずに、全てGUIで位相精密化まで行なうことができ、あまつさえボタン一発で、得られたマップの表示と確認まで行なうことができます。

…でも、マップ表示が「XFit(XtalView)」なんですよね。

XFit(というかXtalView)には、リモート環境下で上手く動かすのが難しい(少なくとも筆者は成功させたことがない)という問題があるのと、「hkl2map のためだけに XtalView インストールするのもなぁ」という気もします。

そこで、hkl2map のマップ確認を Coot で行なう(のを補助する)スクリプトを書いてみました。



Coot は、起動時オプションで位相ファイルを指示できますから、shelxE の吐いた .phs ファイルを与えればイケそうなんですが、それだけでは格子定数と空間群が記載されていないので上手く動きません。

shelxD の吐く重原子ファイル(*_fa.pdb)を --pdbオプションで与えたとしても、格子定数は書かれていますが、なぜか空間群が記載されていないので、これも上手く動きません。

でも、*_fa.resファイルのほうなら対象操作が書かれていますので、これを --coords オプションで読ませてやればOKです。

さて実装方法なんですが、問題は、hkl2map スクリプトファイル自体を改造して、【run coot】なんていうボタンを追加するのが一番イイんでしょうが、それは patch を配布するのすら憚られます。
というわけで、ワーキングディレクトリ中のファイルを漁って、適切なオプション付きでCoot を起動するヘルパーアプリを Tcl/Tk で書いてみました。

実行時のスクリーンキャプチャはこんな感じ
(データは波長1.5Åで取ったThaumatinのS-SAD解析)。

スクリプトファイルのダウンロードはココから。

ダウンロードしたら、適当な実行パスの通ってる場所に置いてください。
また、言うまでもないですが、CCP4 と Coot の設定も済ましておいてください。

使い方ですが、
  1. コマンドラインから「% hkl2map_helper」で起動して、
  2. 【Project name : 】に hkl2map で使用したものと同じ文字列を入力し、
  3. shelxEの結果を見て、hkl2map_helper の【run coot ori】もしくは【run coot inv】ボタンをクリックする。
  4.  _fa.res ファイルが、該当の .phsファイルとともに Coot で表示されるので、好きなだけグリグリ回して眺める。
となっています。


…何年かぶりに Tcl/Tk でスクリプト書いたけど、やっぱキレそうになるなぁ、この言語w
嫌いな言語じゃないんだけどなぁ…

0 件のコメント:

コメントを投稿