#keywords(CNS,使い方)
 各種プログラム使用方法
 [[CNS]]
 #floatcontents
 * CNSを使う [#fe63e447]
 ** 関連ページ [#aa9ad44b]
 - [[インストール>CNS/インストール]] -- Linuxへのインストール方法(マルチスレッド対応解説あり)
 - [[Webインタフェースのインストール>../インストール/Webインタフェース]] -- インプットファイル作成用Webインタフェースのインストール
 - [[Error Tips>CNS/CNS Error Tips]] -- エラー対応
 - [[インプットファイルの文法>CNS/インプットファイルの文法]] -- 原子選択の文法など
 - [[ベンチマーク>../ベンチマーク]] -- CNSを使ったベンチマークテストをしてみました
 
 #ls2_1(CNS/CNSを使ってみよう/,new,display=hierarchy,relative=true,date)
 
 ** 概要 [#zc3161c7]
 主に構造の精密化を行う際に使用されるプログラムCNS。このプログラムの使い方をまとめてみます。
 主に構造の精密化を行う際に使用されるプログラムCNS。このプログラムの使い方をまとめてみます。~
 使用するインプットファイルとそれを修正するポイントをまとめておきます。
 
 * 使用方法 [#lf7d0f6c]
 ** 基本 [#x27f8b97]
 CNSはコマンドラインアプリケーションなので作業はコマンドラインで行います。PDB座標とCNSインプットファイル、cvファイルを使用します。インプットファイルとはCNSの動作がスクリプト形式で書かれたファイルで、CNSのプログラムにこのファイルを読み込ませて実行します。使用するPDB座標やCVファイルなどの基本情報、そのほか実行する計算の細かなパラメータなどが記述されています。~
 インプットファイルはCNSのインストールディレクトリ中のinputsディレクトリ以下に収録されているほか、[[CNS online>http://cns-online.org/]]にインプットファイルを作成してくれるページがありますので、エディタでいちいち編集するのがめんどくさい人は使ってみるといいかもしれません。
 
 ** コマンドライン [#x01051c3]
  % cns < input_file.inp | tee output.log
 :input_file.inp|インプットファイルです。作業ごとにあります。
 :output.log|出力先のログファイル名です。書き出しにはteeコマンド(画面とファイルの両方に出力してくれるフィルタコマンド)がいいでしょう。
 
 基本的には修正座標 → 精密化 → 精密化後座標という手順を繰り返します。
 
 ** インプットファイルの編集 [#y050b6ac]
 CNSを実行するときには拡張子がinpのインプットファイルを使用します。通常はおそらく自分で1から書き始めることはないでしょう。CNS onlineまたはローカルサーバを使ってインプットファイルの雛型を作成し、作成された雛型の中のファイル名などを変更して使用するのが一般的です。~
 
 ** 回折データの準備 [#ka623c1d]
 まず回折データをCNSが利用できる形式で準備します。このファイルは構造因子と&sigma;値が含まれた反射ファイルにクロスバリデーション(Cross validation)情報を追加したものです。この時に''make_cv.inp''を使用します。
 
 *** MTZファイルをCNS形式に変換する [#r29b5387]
 - 反射ファイル(.hkl)を作成する~
 CCP4のmtz2variousを使用します。~
  mtz2various HKLIN foo.mtz HKLOUT foo.hkl <<EOF
    LABIN FP=F SIGFP=SIGF FREE=FreeR_flag
    RESOLUTION 10000 2
    OUTPUT CNS/XPLOR
    END
  EOF
 これでfoo.hklという反射ファイルが得られます。得られた反射ファイル名をmake_cv.inpにセットすることで変換が行われます。
 
 - make_cv.inpの編集~
 make_cvには格子定数と反射ファイル名、出力ファイル名、分解能などを指定します。編集したら実行します。
  % cns < make_cv.inp | tee make_cv.log
 
 ** 精密化を行う [#nf466d2e]
 CNSで精密化を行う際に使用するインプットファイルは人によって流儀があると思いますが、どぶおが精密化をするときの流れは大体以下の通りです。
 + refine.inpで一通りの精密化(generate.inp、anneal.inp、bindividual.inpを組み合わせるときもある)
 + あまりにもR値が下がらない場合はcomposite_omit_map.inpでモデルと電子密度を確認
 + モデル修正したらまたrefine.inpから始める
 
 の繰り返しです。~
 状況によってはCCP4のREFMACを組み合わせて精密化を行うこともあります。
 
 *** 基本的な修正のポイント [#t7023cf5]
 インプットファイルによって修正する場所は少しずつ異なりますが、おそらくほとんど共通だと思われる部分をまとめておきます。
 - molecular structureセクション
 -- molecular topology file -- generate.inpで生成した分子のトポロジーファイル(MTF)を指定します。refine.inp以外はたぶん省略できません。
  {===>} structure_infile="generate.mtf";
 -- coordinate file -- モディファイしたPDBファイルを指定します
  {===>} coordinate_infile="080919-1.pdb";
 -- topology files -- トポロジーファイル(top)を指定します。
 --- 初期状態ではprotein.top, dna-rna.top, water.top, ion.topが指定されています。糖を使った場合はcarbohydorate.topを追加します。なお、CNS_TOPPAR:はCNSのライブラリディレクトリ('''CNSインストールディレクトリ'''/libraries/toppar/)になります。CNSが持っていない分子を使った場合はPRODRGなどで作成したトポロジーファイルを入力します。
 -- parameter files -- パラメータファイル(param)を指定します。
 --- トポロジーファイルと対になっているはずです。carbohydorate.topを追加した場合はcarbohydrate.paramを追加します。その他topファイルを追加している場合はそれに対応するparamファイルを記述します。
 - crystallographic dataセクション
 -- space group -- 空間群を指定します。CCP4とは記述形式が異なるので注意!
  {===>} sg="P2(1)";
 -- unit cell parameters -- 格子定数を指定します。
  {===>} a=71.145;
  ...
 -- reflection files -- 反射ファイル(cv)を指定します
  {===>} reflection_infile_1="start.cv"
 -- resolution limits to be used in refinement -- 精密化する分解能の範囲を指定します
  {===>} low_res=500.0;
  {===>} high_res=2.3;
 
 *** generate.inp [#i62278fc]
 CNSの処理で使用される構造ファイル(MTF形式)を作成します。通常は処理で使用するPDBファイルを指定するだけです。
 anneal.inpなどで処理を実行する際に必要です。refine.inpで処理する場合は自動で生成を行ってくれるので必要ありませんが、特殊なパラメータ設定を行う場合(Carbohydorate linksなど)に使用します。
 
 :修正のポイント|
 - protein filesセクション
 -- protein coordinate file -- 精密化の対象となるPDBファイルを指定します
  {===>} prot_coordinate_infile_1="080711-9.pdb"
 -generate parametersセクション~
 中間体構造などを精密化するときに原子を削除したりできます。
 -- atom_delete -- 不要な原子を指定します
 - carbohydrate linksセクション &color(red){[''ADVANCED!!'']};~
 アミノ酸残基以外で結合する分子を指定することができます。例えばグルコース分子を結合させたりして糖を作るような場合です。これを使用することで糖鎖などが作れる・・・のかな?(私もちょっとしか使ったことがないので・・・)
  {===>} carbo_use_1=true;                       <-- 有効にする場合はtrueにする
  {===>} carbo_patch_1="B14";                    <-- β1,4結合の場合の"パッチ名"
  {===>} carbo_i_segid_1="C"; carbo_i_resid_1=1; <-- β1,4の1位側のグルコース
  {===>} carbo_j_segid_1="D"; carbo_j_resid_1=1; <-- 4位側のグルコース
 このように指定してgenerate.inpを流すとCの1(ここではグルコース;GLCとします)、Dの1(GLC)と結合しているとして分子トポロジーファイル(MTF)を作ってくれます。このときC1のO1原子が削除され、D1のO4に糖鎖結合の酸素原子のパラメータが与えられます。このパッチは''CNS_TOPPAR:carbohydorate.top''で定義されています。
 こんな感じです。
  PRESidue B14 {beta(1,4) link}
   MODIfy  ATOM +O4   TYPE=OA  CHARge=-0.40  END
   MODIfy  ATOM +C4            CHARge= 0.10  END
   DELEte  ATOM +HO4                         END
   MODIfy  ATOM -C1            CHARge= 0.30  END
   DELEte  ATOM -O1                          END
   DELEte  ATOM -HO1                         END
  
   ADD BOND -C1  +O4
  
   ADD ANGle +C4  +O4  -C1
   ADD ANGle +O4  -C1  -H1
   ADD ANGle +O4  -C1  -O5
   ADD ANGle +O4  -C1  -C2
  
   ADD DIHEdral  +C4  +O4  -C1  -H1
   ADD DIHEdral  +C4  +O4  -C1  -O5
   ADD DIHEdral  +C4  +O4  -C1  -C2
  END
 この付近を見ると他のパッチ名を確認することができるので様々な結合が使用できるはずです。このフォーマットを参考にすれば独自の結合も作れると思います(多分)。なお、この機能を使った場合、精密化のトポロジーファイルとしてCNS_TOPPAR:carbohydrate.topとCNS_TOPPAR:carbohydrate.paramが必要となりますので注意して下さい。
 
 *** anneal.inp [#m5fbf69d]
 Simulated annealing refinementを行います。温度を上昇させてから冷却したときのダイナミクスから安定構造を求める手法です。通常は精密化の初期段階で使用します。
 
 *** bindividual.inp [#i07d6e81]
 B-factor(温度因子)の精密化を行います。
 
 *** refine.inp [#h0dc8ef9]
 Simulated annealing、エネルギー最小化、温度因子リファインメントを組み合わせた精密化をまとめて実行します。精密化計算完了後はマップも描いてくれます。おそらくあまり細かいパラメータ調整はできないので、各段階を細かく制御したい場合は他のインプットファイルを使います。
 
 :修正のポイント|
 - molecular structureセクション
 -- molecular topology file -- generate.inpで生成した分子のトポロジーファイル(MTF)を指定しますが、refine.inpの場合は省略すると自動生成されます。
  {===>} structure_infile="";
 
 *** composite_omit_map.inp [#pdb60133]
 コンポジットオミットマップを作成します。
 - 参考:[[コンポジットオミットマップを描く>./コンポジットオミットマップを描く]]
 
 ** ディスカッション [#a3288330]
 #comment