#keywords(CCP4,CCP4i,使い方)
 #floatcontents
 * CCP4iでCCP4を使いこなす! [#k1641d1b]
 構造解析のプログラムが一通り詰まったThe CCP4 Program Suite。しかし基本的にはコマンドラインベースのプログラムであるため、いきなり使い始めるには敷居が高く、膨大な数のプログラムに途方に暮れてしまいます。そんな問題を解決するグラフィカルなユーザーインタフェースCCP4i。ここではCCP4iの基本的な使い方を解説します。
 
 ** CCP4iとは? [#t80acad4]
 Ver.5から導入され(Ver.4でもあったような気もしますが)、Ver.6.0から飛躍的に使い易くなったCCP4のユーザーインタフェースです。CCP4iを使わない場合はインプットファイルなどのスクリプトファイルを用意しなければならず、初心者にとっては「何をしたいか明確にする」→「そのプログラムがどれであるかを突き止める」→「パラメータを調べる」→「インプットファイルを書く」→「実行」というハードルを越えなければなりませんでした。~
 私が学生のころはこんな便利なものはなく指導教官や先輩からありがたくいただいたインプットファイルを訳もわからず使っていたものです。
 #br
 そんな困難も今は昔。CCP4iによって「大体の流れで」→「とりあえず」→「流して結果確認」というフローが成り立つようになってしまいました。サイエンティストとしてそれがいいかどうかは別にして入門者にとっては素晴らしいツールだと言えると思います。それでもなお、そんな軟弱なものを使わない構造解析の達人は、自らが組み上げたスクリプトファイルで効率よく処理をしているという話も聞きます。
 
 ** 概要 [#yfccb26d]
 慣れてしまえば使い方は至って簡単。
 
 + プロジェクトの作成
 + 使いたいプログラムを探して
 + パラメータを確認して
 + 実行する
 
 これだけです。
 
 ** 起動方法 [#scb748b7]
 適切に[[インストール>CCP4/インストール]]されていれば、
  % ccp4i
 で起動します。この時起動ディレクトリはどこでも構いません(プロジェクト用のディレクトリはCCP4iの中で設定します)。なお、通常CCP4iは複数起動はイレギュラーな使用方法なので同一ユーザーで複数起動すると「ロックファイルがあるけどどうする?」というような確認メッセージが出ます。今のところ複数で使ってしまってもトラブルになったことはありませんが、何かのタイミングでおかしくなることがあるかも。~
 また、設定内容などはホームディレクトリにある''.CCP4''ディレクトリに格納されています。
 
 ** メイン画面 [#l9237a5b]
 #ref(ccp4i_main.png,nolink)
 すべてはここから始まります。
 
 *** コマンドリスト [#s7e625da]
 項目ごとに分類されたプログラムリストです。Ver.6.0では階層は一つでしたが、6.1から階層が増えました。例えばData Reduction -> Import Integrated Data -> Import Marged Dataのようになっています。大分類は構造決定の段階に対応するようになっています。Data Reduction, Experimental Phasing, Refinementなどです。このリストによって効率的に必要なプログラムを探すことができます。~
 また、プログラム名から探す場合はProgram List項目ですべてのプログラムが表示されます。
 
 *** 実行ジョブリスト [#rcdc8e62]
 実行中、実行済みなどの一覧が、Job ID, 実行日時, ステータス, プログラム名, コメントの項目で表示されます。
 
 *** 操作メニュー [#b4c6ec25]
 一般的な操作およびジョブに対する操作を行うメニューです。以下のものがあります。
 |項目                      |内容|h
 |~Directories & Project Dir|プロジェクトの管理を行います|
 |~View Any File            |ファイルを表示します|
 |~View Files from Job      |ジョブのログや結果などを表示します|
 |~Search/Sort Database...  |ジョブの検索、ソートを行います|
 |~Graphical View of Project|ジョブの関連付けを表示します、が役に立つかな・・・?|
 |~Delete/Archive Files...  |ジョブをデータベースから削除したりファイルごと削除したりします|
 |~Kill Job                 |実行中のジョブを取り消します|
 |~ReRun Job                |選択したジョブと同じ条件でプログラム実行ウィンドウを開きます|
 |~Edit Job Data            |ジョブのコメントやファイル名などを変更します|
 |~Preferences              |ファイルビュワーなどの設定を行います|
 |~System Administration    |CCP4iシステムに関わる設定を行います|
 
 ** プロジェクト [#v3ed07a2]
 CCP4iを使う上で重要な概念である''プロジェクト''。CCP4iではプロジェクトという単位でデータが管理されます。私の場合は(というより通常)、構造解析のターゲットごとにプロジェクトを作るのがいいでしょう。現在操作対象となっているプロジェクトは右上の''Change Project''で切り替えることができます。なお、別のプロジェクト間でも並列してジョブを実行することが可能です。~
 プロジェクトの作成は''Change Project'' -> '''''Add/edit project'''''または''Directories & Project Dir''から行うことができます。
 
 *** プロジェクトを作成する [#l94e4f0b]
 ''Directories & Project Dir''をクリックするとプロジェクト編集ウィンドウが開きます。
 #ref(ccp4i_project.png,nolink)
 この編集ウィンドウではプロジェクト名とプロジェクトディレクトリ、およびカレントプロジェクト(現在操作対象としているプロジェクト)の選択を行うことができます。まずは''Project''の欄にわかりやすいプロジェクト名(現在処理しているデータが何かをわかるような名前がいいと思います)、続いてプロジェクトで使用するディレクトリを''uses directory''にセットします。~
 プロジェクトのディレクトリに指定された場所にはジョブの出力ログやファイルが大量に作成されますので専用のディレクトリを用意した方がいいでしょう。通常、タンパクごとの基となるディレクトリ(HKLの処理ディレクトリなどを作っている親ディレクトリ)にCCP4iというディレクトリを作り、それをプロジェクトディレクトリとしています。例えば以下のように。
  nob_p1/     <-- 解析しているデータの大本のディレクトリ(ここにシークエンスファイルとかモデルPDBとかを置く)
    x-files/  <-- 例えばHKLの出力を格納するディレクトリ
    ref001/   <-- 例えばCNSを使ったディレクトリ
    CCP4i/    <-- CCP4i用のプロジェクトディレクトリ
 この構成ならプロジェクトディレクトリは''(そこまでのパス)/nob_p1/CCP4i''になり、CCP4iで行ったジョブの出力はすべてnob_p1/CCP4i以下に格納されます。~
 後はカレントプロジェクトにこれから使用するプロジェクトを選択すればよいでしょう。~
 なお、CCP4 6.0までは一時出力ディレクトリ(TEMPORAY)を設定していましたが、6.1ではエイリアスという名前に変わっているようです(たぶん)。そのエイリアスを作成すれば出力先などで深い階層のディレクトリを選択しなくてもよくなるでしょう(活用したことはありませんが・・・)。~
 設定ができれば''Apply&Exit''で抜けます。
 
 *** プロジェクトの切り替え [#pb4a3ef9]
 CCP4iではカレントプロジェクトを切り替えながら複数のプロジェクトを並行して進めることができます。メインウィンドウ右上の''Change Project''をクリックすると登録されているプロジェクトの一覧から切り替えたいプロジェクトを素早く選択することができます。~
 カレントプロジェクトでジョブが走っていても切り替えることは可能なので時間のかかるジョブを流しながら別のプロジェクトをさくさく進める・・・ということも可能です。もちろん複数のジョブを流す際はそれなりのCPUパワーが必要ですが。
 
 ** ジョブの実行 [#u8829a7b]
 さて、CCP4iの基本概念が理解できたところで実際のジョブの実行方法を説明します。~
 といってもこれまた複雑なものではなく、
 + ''コマンドリストから実行したいものを選ぶ''
 -- やりたいことをリストから選択します。プログラム名がわかっていれば''Program List''からも選択できます。タスクの中には複数のプログラムを組み合わせて実行してくれるものもありますので、解析に疲れたときは一通りリストを眺めてみると新たな発見があると思います。ここで便利なのは「あ!何だこれは!」→「とりあえずクリック!」→「ヘルプ参照」→「実行」でとりあえず実行できてしまうところです。バンバン試してみましょう。例えば''Refinement''の''Run NCS Phased Refinement''ではREFMACとDM、LSQKABなどを組み合わせて自動でNCSリファインメントを行ってくれます。
 + ''開いたダイアログボックスに必要なパラメータをセットする''
 -- 実行したいタスクが見つかればクリックすると入力パラメータのウィンドウが表示されます。わからなければパラメータダイアログ(メインウィンドウではない)の右上に''Help''があるのでクリックするとHTMLヘルプが開きます。
 + ''Run -> Run nowで実行する''
 -- タスクを実行します。実行すると実行ジョブリストに追加され''RUNNING''になると思います。一瞬で終わるような処理の場合、いきなり''FINISHED''が表示されます。また、''FAILED''になった場合はおそらくパラメータの指定方法が間違っているので確認しましょう。確認したいジョブを選択して''ReRun Job...''をクリックすれば実行時のパラメータがセットされたウィンドウが開きます。
 -- もし、実行した結果が不要なら不要なジョブを選択して''Delete/Archive Files...''をクリックすると削除ウィンドウが表示されるので、''Cleanup after job''の項目で''Delete output files & remove from database''を指定すればジョブリストからも削除されます。なお、''RUNNING''中のジョブに対してこれを行うと中途半端にログだけ残ったりするので注意しましょう。
 -- 実行途中で止めたくなったら、そのジョブを選択して''Kill Job''を適用します。確認ダイアログが出て停止させることができます。なお、PHASERは''Kill Job''でジョブを止めても停止しません。''Kill Job''で停止後、コマンドプロンプトで停止させてください。
 -- 実行の途中経過は''View Files from Job''の''View Log File''で確認できます。ただし、このログビュワーは10000行以上のログは表示できないようなので、その場合は通常どおり''tail -f''で追いかけましょう。各ジョブのログは''1_import_scaled.log''と言うように(ジョブID)_(ジョブ名).logと.log.htmlで出力されます。
 + ''結果の確認''
 -- 結果の出力は通常プロジェクトディレクトリ以下に出力されますので、必要なファイルを確認します。
 
 以上が標準的なタスクの実行手順です。うまく使いこなしてサクサク解析しましょう&smile;。
 
 ** この後は・・・? [#q4ac0bf6]
 とりあえずCCP4iを使う上で覚えておかなければ行けないことはこんなところです。慣れてしまえばものすごく簡単。きっとあなたの構造解析をよりよい結果へと導いてくれることでしょう。実際の構造解析に関してはまた別の項目を参照するか、まわりにいる達人に教えてもらって下さい。~
 最低限CCP4iが使えるようになっていれば「○○(プログラム名)を試してみた?」って言われたときに、とりあえずプログラムリストから選択してみれば何とかなるかもしれません&smile;。
 
 ** プチテクニック [#uf840ab9]
 *** CCP4iを起動するときに英語モードにする [#dd66b228]
 #anno2(2010-03-09)
 環境にもよると思いますが、通常環境変数LANGを日本語にしておき、CCP4iを起動する時だけLANG=enなどにしたい場合のちょっとしたテクニック。
 :ccp4-6.1.3/bin/ccp4i|
  #!/bin/sh
  # Start ccp4i interface
  # \          <-- 追加
  LANG=en      <-- 追加
  # \
  exec $CCP4I_TCLTK/bltwish "$0" -- ${1+"$@"}
  source [file join $env(CCP4I_TOP) bin ccp4i.tcl]
 このファイルは起動後Tclからも呼ばれるようで、適当に修正するとエラーがでます。そのためシェルコマンドを追加したい場合は''# \''の直後に追加します。この場合だと起動時/bin/shの段階では''LANG=en''が読み込まれ、Tclでは''# \''の効果でスキップされるためエラーが出ません。
 
 ** コメント [#haeabcf3]
 感想やCCP4iで秘技などありましたら教えてください。
 #comment