解析関係メモ

COOTでショートカットキーを使う

  1. coot wikiからスクリプトを入手(bernhards_key_bindings_for_coot.pyを検索
  2. ~/.coot-preference/ に置く
  3. Ctrl+W→水を置く、Ctrl+R→Real space Refinementなど。キーの詳細は Extensions > Settings > Key Bindings を参照

CUIでphenix.refine

  1. input card(~~~.eff)を作る
    $phenix.refine "input pdb" "input_mtz" --dry_run
  2. ~~~.effの編集
    strategyで*の項目が精密化計算される。
  3. 実行
    $phenix.refine ~~~.eff --overwrite

<phenix.refineのオプション>

nproc: 並列計算の使用コア数
cdl: Conformation Dependent Libraryの使用有無
truncate_to_polyala: ポリアラニンモデル作成

phenix.refineでHETATMなどrestrainの設定

  1. input card(restraints_edits.params)を作り、編集
    • refinement.geometry_restraints.edits {
        zn_selection = chain X and resname ZN and resid 200 and name ZN
        his117_selection = chain X and resname HIS and resid 117 and name NE2
        asp130_selection = chain X and resname ASP and resid 130 and name OD1
        bond {
          action = *add
          atom_selection_1 = $zn_selection
          atom_selection_2 = $his117_selection
          symmetry_operation = None
          distance_ideal = 2.1
          sigma = 0.02
          slack = None
        }
        bond {
          action = *add
          atom_selection_1 = $zn_selection
          atom_selection_2 = $asp130_selection
          symmetry_operation = None
          distance_ideal = 2.1
          sigma = 0.02
          slack = None
        }
        angle {
          action = *add
          atom_selection_1 = $his117_selection
          atom_selection_2 = $zn_selection
          atom_selection_3 = $asp130_selection
          angle_ideal = 109.47
          sigma = 5
        }
      }
  2. 実行
    $phenix.refine model.pdb data.hkl restraints_edits.paramse

CDProの使い方

CDProはwindowsが必要

  1. CDPro.zipのダウンロード
  2. 解凍してC:にCDProを置く(ファイルは全てCDProの下へ)
  3. 波長(間隔:1.0 or 0.5 or 0.2 nm)とCDデータがタブ区切りになったファイルを準備(ファイル名は12文字まで)
  4. ブラウザでRunCDPro.htmlを開いて、CRDATAをクリックしてinputファイルを作成
  5. 出来上がったinputを使ってSELCON3、CDSSTR、CONTINを実行

MD(Gromacs)

計算が途中で止まった場合

  • mdrun -deffnm [junk] -cpi [junk].cpt -append

計算する時間を増やす

  • tpbconv -s previous.tpr -extend timetoextendby -o next.tpr
  • mdrun -s next.tpr -cpi previous.cpt
  • -e などのオプションでedrファイルを指定する場合も…

trrをpdbへ

  • trjconv -app -f [junk].trr -o [output].pdb -s [junk].tpr

MD(NAMD)

restarting simulation

~tutorial file/common/sample.conf を編集。

  1. if {0} を if {1} に変更
  2. velocity restart fileを使用する際はtemperatureをコメントアウト
  3. $temperatureに注意
  4. Firsttimesteps を合わせる

pymolでdcdファイルを読み込む

  1. pdbの読み込み
  2. load_traj filename [,object [,state [,format [,interval [,average ] [,start [,stop [,max [,selection [,image [,shift]]]]]]]]]

スクリプト

タンパク質のX線結晶構造解析をちょっとだけ楽にしてくれるシェルスクリプト集

DIALSスクリプト

DIALSでの回折データ処理時に、index > integrate > scale(aimless)の間でlogを確認しながら進める対話スクリプト [ファイル]

CNS_setup

CNSのinputファイル(make_cv.inp, generate_easy, rigid.inp, refine.inp, water_pick.inp)をpwdにコピーして、空間群、格子定数、分解能、反射ファイル名を同時に編集する対話型シェルスクリプト [ファイル]

LATEST_COOT

COOTをディレクトリ内の最新PDBとMTZファイルを読みこんでたち上げるまでのシェルスクリプト [ファイル]

  1. #!/bin/sh
  2. LATEST_pdb="`pwd`/`ls -lt *.pdb | head -n 1 | gawk '{print $10}'`"
  3. LATEST_mtz="`pwd`/`ls -lt *.mtz | head -n 1 | gawk '{print $10}'`"
  4. coot --pdb $LATEST_pdb --auto $LATEST_mtz

(注意) gawk '{print $10}は"ls -l"での10番目にファイル名がある場合

CNS_COOT

CNSの"refine.inp"を書きかえ、COOTを立ち上げるまでのシェルスクリプト [ファイル]

  1. #!/bin/sh
  2. #update
  3. sed -e "s/ref_input/$1/g" refine.inp > refine2.inp
  4. sed -e "s/ref_output/$2/g" refine2.inp > refine3.inp
  5. #run cns
  6. cns < refine3.inp |tee refine.log
  7. #remove files
  8. rm -f refine2.inp
  9. rm -f refine3.inp
  10. #run coot
  11. coot --pdb $2.pdb --map $2_2fofc.map --map_fofc.map

(準備) refine.inpのcellパラメータなどを編集する。この時inputファイル名を"ref_input"、outputファイル名を"ref_output"にしておく

(使い方) CNS_COOT [input] [output]

CNS_COOT_2

CNSとCOOTを使ったルーチン作業用シェルスクリプト [ファイル] [CNSmap.scm]

ディレクトリ内の最新のref[N]-coot-*.pdbを使ってrefine.inp、ref[N+1].pdbとmapでcootを立ち上げる。

(110531)simulated annealingのオプション追加。defaultは”false”、--enable-sa で”true”。

  1. #!/bin/sh
  2. /* #新しいファイルを探す */
  3. LATEST_pdb="`ls -lt *-coot-*.pdb | head -n 1 | gawk '{print $10}'`"
  4. /* #ファイル名の数字だけ書き出す */
  5. inp=`echo $LATEST_pdb | sed -e "s/ref//" | sed -e "s/-coot-..pdb//"`
  6. out=`expr $inp + 1`
  7. /* #anneaelをfalse */
  8. sed -e "s/{===>} anneal=true/{===>} anneal=false/g" refine.inp > refine1.inp
  9. sed -e "s/ref_input.pdb/$LATEST_pdb/g" refine1.inp > refine2.inp
  10. sed -e "s/ref_output/ref$out/g" refine2.inp > refine3.inp
  11. /* #simulated annealing option */
  12. for sa in $@
  13. do
  14. case $sa in
  15. -enable-sa | --enable-sa )
  16. sed -e "s/{===>} anneal=false/{===>} anneal=true/g" refine3.inp > refine4.inp
  17. mv refine4.inp refine3.inp
  18. ;;
  19. esac
  20. done
  21. cns < refine3.inp |tee refine.log
  22. rm -f refine1.inp
  23. rm -f refine2.inp
  24. rm -f refine3.inp
  25. rm -f refine4.inp
  26. coot --pdb ref$out.pdb --map ref${out}_2fofc.map --map ref${out}_fofc.map --no-state-script --script CNSmap.scm

(準備) refine.inpのcellパラメータなどを編集する。この時inputファイル名を"ref_input"、outputファイル名を"ref_output"にしておく。CNSmap.scmのPATHを確認

分子毎に平均B-factor(原子数)を計算する

Thanks to Hirotsugu!

pdbファイルから、タンパク質、DNA、金属、水、低分子それぞれの平均B-factorの計算と原子数を数えるシェルスクリプト [ファイル]

(使い方)./STATISTIC_B "ファイルの名前"

  1. #!/bin/sh
  2. #PROTEIN
  3. awk '$1 ~ /^ATOM/ && (substr($0,18,3) == "ALA" || substr($0,18,3) == "ASP" || substr($0,18,3) == "CYS" || substr($0,18,3) == "GLU" || substr($0,18,3) == "PHE" || substr($0,18,3) == "GLY" || substr($0,18,3) == "HIS" || substr($0,18,3) == "ILE" || substr($0,18,3) == "LEU" || substr($0,18,3) == "MET" || substr($0,18,3) == "ASN" || substr($0,18,3) == "PRO" || substr($0,18,3) == "GLN" || substr($0,18,3) == "ARG" || substr($0,18,3) == "SER" || substr($0,18,3) == "THR" || substr($0,18,3) == "VAL" || substr($0,18,3) == "TYR" || substr($0,18,3) == "TRP" || substr($0,18,3) == "LYS") { print }' $1 > PROTEIN.txt
  4. PROTEIN="`awk '{sum =sum + substr($0, 61, 6); count++} END{printf ("%3.4f (%5d)", sum / count, count)}' PROTEIN.txt`"
  5. #DNA
  6. awk '$1 ~ /^ATOM/ && (substr($0,19,2) == "DT" || substr($0,19,2) == "DA" || substr($0,19,2) == "DC" || substr($0,19,2) == "DG") { print }' $1 > DNA.txt
  7. CNT_DNA="`wc -l DNA.txt| sed -e 's/[^0-9]//g'`"
  8. DNA="`awk '{sum =sum + substr($0, 61, 6); count++} END{printf ("%3.4f (%5d)", sum / count, count)}' ./B_DNA.txt`"
  9. #Metal
  10. awk '($1 ~ /^ATOM/ || $1 ~ /^HETATM/) && substr($0,13,1) != " " && substr($0,13,2) == substr($0,19,2) { print }' $1 > METAL.txt
  11. METAL="`awk '{sum =sum + substr($0, 61, 6); count++} END{printf ("%3.4f (%5d)", sum / count, count)}' ./B_METAL.txt`"
  12. #water
  13. awk '$1 !~ /^ANISOU/ && substr($0,18,3) == "HOH" { print }' $1 > WATER.txt
  14. WATER="`awk '{sum =sum + substr($0, 61, 6); count++} END{printf ("%3.4f (%5d)", sum / count, count)}' ./B_WATER.txt`"
  15. #small molecule
  16. awk '($1 ~ /^ATOM/ || $1 ~ /^HETATM/) && (substr($0,18,3) != "ALA" && substr($0,18,3) != "ASP" && substr($0,18,3) != "CYS" && substr($0,18,3) != "GLU" && substr($0,18,3) != "PHE" && substr($0,18,3) != "GLY" && substr($0,18,3) != "HIS" && substr($0,18,3) != "ILE" && substr($0,18,3) != "LEU" && substr($0,18,3) != "MET" && substr($0,18,3) != "ASN" && substr($0,18,3) != "PRO" && substr($0,18,3) != "GLN" && substr($0,18,3) != "ARG" && substr($0,18,3) != "SER" && substr($0,18,3) != "THR" && substr($0,18,3) != "VAL" && substr($0,18,3) != "TYR" && substr($0,18,3) != "TRP" && substr($0,18,3) != "LYS" && substr($0,18,3) != "HOH" && substr($0,19,2) != "DT" && substr($0,19,2) != "DA" && substr($0,19,2) != "DC" && substr($0,19,2) != "DG" && substr($0,13,2) != substr($0,19,2) ) { print }' $1 > SMALL.txt
  17. SMALL="`awk '{sum =sum + substr($0, 61, 6); count++} END{printf ("%3.4f (%5d)", sum / count, count)}' ./B_SMALL.txt`"
  18. #Summary
  19. echo ""
  20. echo "Molecules = ave. B (No. atom)"
  21. echo "Protein = $PROTEIN "
  22. echo "DNA = $DNA "
  23. echo "METAL = $METAL "
  24. echo "Water = $WATER "
  25. echo "Small = $SMALL "
  26. #clean
  27. rm *.txt

total:

Biophysical Chemistry