Cootとrefmac5で行こう

060410 S. Fushinobu
080616 modified

最近発表された分子表示&修正ソフトの"coot"は、非常に使いやすい上に、ccp4のrefmac5との相性が抜群です。

初心者でも、この2つを使えば簡単に精密化を行えることでしょう。

また、上級者の人も、だまされたと思ってtutorialをやってみて下さい。XfitやOを使った経験がある人なら、30分から1時間程度で使いこなせるようになることを保証します。特に、Calculate→Model/Fit/Refine...→Real Space Zone→狙った残基をダブルクリック、でできるモデル修正は、驚きのアクションを見せるので、病みつきになるはず。動かしたい部分をつかんでグイッと動かすと、restrainを保ちつつ電子密度のなかにグニグニッと自動的に入っていきます。また、Tutorialには書いてませんが、"Fit Loop"を使えば、ARP/wARPなどの後で繋ぎきれなかった数残基をいとも簡単に構築してくれるそうです。

CootはPaul Emsleyが、refmacはGarib Murshudovらが作っているソフトです。2007.12 ver 0.3.3までバージョンが上がってます。Release Notesはこちらから。

CCP4 ver 6.0のインストール

CCP4 ver 6.0のインストールを強くお勧めします。Downloads→automated Download Pagesから、必要なプログラムを選び(もちろんcootは必ず入れる)、ダウンロードしてきたtarファイルを適当なディレクトリ(例:/usr/xtal/ccp4-6.0.0)で展開、READMEに従って./install.shを起動すればOKです。.bashrcを書き換えてccp4.setup, coot.setup, mg.setupを読み込むのを忘れないこと。

Fedora Core 4の場合、ここにリストアップされている5つのrpm(3枚目と4枚目のCDに入っている)をインストールする必要があります。
例: # rpm -Uvh /media/cdrom/Fedora/RPMS/compat-gcc-32-3.2.3-47.fc4.i386.rpm
また、cootを起動するには、ここを参考に、
# ln -s /usr/lib/libpt_linux_x86_r.so.1.8.4 /usr/lib/libpt.so.1.6.5
とする必要があります。

cootの最新バージョンはccp4で同時にインストールされるものより進んでいる場合があります。旧バージョンでも十分実用に耐えますが、問題が起きたときなどはバージョンを上げてみましょう。

Coot 0.1のインストール法(例:0.3.3はもっと簡単でした):
CootのHPからバイナリ(latest/coot-0.1-binary-*.tar.gz)をダウンロードしてきて
ccp4のディレクトリ内に展開(/usr/xtal/ccp4-6.0.0でgunzip→tar xvf)
ディレクトリ名を適当に変更(mv Linux-bubbles Coot-0.1)
setup/coot.shをエディタ等を使って変更(COOT_PREFIXを/usr/xtal/ccp4-6.0.0/Coot-0.1に変更)
.bashrcを書き換え
旧:source /usr/xtal/ccp4-6.0.0/configure coot.setup
新:source /usr/xtal/ccp4-6.0.0/Coot-0.1/setup/coot.sh
refmac5でfindwatersをしたときにlibgsl.so.0がない、とエラーを出す場合には以下の操作をやる。
cp /usr/xtal/ccp4-6.0.0/Coot-0.0.33/lib/libgsl* /usr/xtal/ccp4-6.0.0/Coot-0.1/lib
Mac OS X版はWilliam Scottらがコンパイルしてくれたものがあります→OS X Scientific Computing

Refmac5で精密化

特に難しい点はありません。mtzファイルとPDBファイルを読み込み、タブなどから適当に選べば使えるでしょう。

ccp4iのRefinementにあるMerge monomer libraliesで、ccp4のインストールディレクトリ内(lib/data/monomers)にあるライブラリファイルから必要な分を読み込んで統合すれば、Refmacに必要なライブラリができます。Directories&Project Dirで、ciflibなどとして上記のディレクトリをAliasに登録しておくと便利。リガンド分子や水分子を入れた場合には必ず使う。

精密化Tips

いよいよcoot

とにかく起動してみる。色々ファイルを書きだすので専用のディレクトリを"mkdir coot"などとして作るとよい。

サンプルのmtzpdbをダウンロードし、tutorial(PDF)を読みながら練習してみる。←これだけで使い方が大体分かるはず!

練習が終わったら、さっそく自分のデータを使ってかけたrefmac5の出力から、pdbとmtzを読み込んでみよう。

リガンド分子の入れ方もtutorialに書いてあります。Get Monomer ...を使う方法が簡単&確実です。注:グルコースをこの方法で呼び出すとき、3 letter codeでGLCとやっても読み込まないので、CCP4のライブラリ(またはcootのライブラリ)の中にあるGLC-b-D.cifをGLC-B-D.cifにコピーする。これで読み込むはず。他にもライブラリのcifの中に小文字がある場合は大文字にすることで読み込めるようになるかも。糖鎖の入れ方はこのへんも参照のこと。

ccp4のデフォルトのmonomer libraryに.cifがない(あるいは.cifがあっても中身が空っぽの)分子の場合、Hic-Upなどで座標ファイルを手に入れて、PRODRG serverで.cifファイルを作る。

.cifファイルをccp4のインストールディレクトリ内のしかるべき場所(lib/data/monomers/頭文字/***.cif)に置けば、refmac5とCootの両方でジオメトリ・リストレインをかけられる。

Calculate→Model/Fit/Refine...→Real Space Zoneなどで精密化する時のtips(熊本大の池水信二先生に教えて頂きました)

追記:分子置換後(あるいはその他の場合でも)、自動に精密化してくれるPosMRというコマンド群を使うと便利です。ただ、あまりきれいでないマップを使うと構造が乱れます。詳しくはBiokids WikiのExtensionsの項に書いてあります。最近のcootのバージョンでは、途中で止めることができるようになっているとか。

水分子の入れ方、並べ替え方

まず、Refmac5で"Run Coot:findwaters ..."のボタンを押して自動的に探させる(最低でも数サイクルは探させないと2次、3次水が見つからない)

次に、cootで、Model/Fit/Refineの中のFind Waters...を押して探す。Refmac5で探しきれなかったものもこれで見つかるので両方やるべし。"Blob"のリストが出てきたときには目で見て判断。

そして、cootのValidate→Check/Delete Watersで、近すぎたり電子密度が消えてたりする水を消す。リストが出てくるので目で確認(金属にリガンドしてる水も近すぎると判定されるので)。2つの水が異常に近くで並んでる場合が多いので、片方をDelete→Watersで消して、残った水をRigid Body Fit Zoneで位置合わせする。

最終的には、全ての水について、ちゃんと見えてるかどうか(正しい位置にあるかどうか)を目で見て確認するべきでしょう。私の場合には、2Fo-Fcの1σのマップで確認してちゃんとピークが見えない水は除いています。

その他、Refinementの最中に水と思われる電子密度を見つけたら、(2Fo-Fcの1σとFo-Fcの3σの両方でほぼ球状であり、大きすぎないピーク)、加えてしまうのがいいでしょう。左ドラッグでセンターを動かし、Place Atom At Pointer -> Water -> (New Moleculeではなくその分子に加える)、次にRigid Body Fit Zoneで中心に動かすと楽に加えられます。Draw->Go To Atom->Acceptで、それまでいた残基に戻ることができます。

なお、Refmac5で水を拾った場合、chain IDが別のものになるようです。エディタ等を使って直接書き換えるのが簡単です。(Cootからやるのは、今のところ制約が多くて面倒みたい)

水を抜いたりして番号の並びが飛び飛びになっている場合も、ccp4iからCoordinate Utilities→Edit PDB File→Use "pdbset" to "rename chains and/or renumber residues"でやるのが楽。(Cootのrenumberはあまり使えない:と書いていたが、ver.0.3以降ならExtensions→Renumber Waters..で簡単にできるようです)

追記:水を拾うのは、現時点ではARP/wARP Solventが一番良いような気がする。上記のRefmac5やcootで拾う方法は水を拾いすぎる? あと、最近、水を自動で精密化する機能が加わりました。pythonのコマンドラインで"fit_waters (0)"といった感じで入力する(番号はDisplay managerやDraw -> go to atomなどで表示されるPDBを認識する時の番号。最初に読み込んだPDBファイルが0になる)。範囲指定する場合には、"fit_waters_range (0,"X",590,600)"などとする。ただし、水のchainに他の原子(Ca, Mgなど)が混在しているとうまくいかない。最後に、必ずCheck/Delete watersをやること。

その他Tips

Cootで作業する時に表示をONにしておくとよいもの:

Validateタブの中の項目はとても有効なものが多いです。精密化の終盤には全て見るとよいでしょう。特に、geometryのチェックは必要です。


戻る