VMDのスクリプトの書き方
概要
vmdのスクリプトの書き方について、日本語の記事が少なかったのでまとめておきます。vmdのスクリプトはTCL言語で記述できます。
環境
macOS Mojave 10.14.6
vmd 1.9.2
スクリプトの読み込み方
まずは、vmd
のパスを通してください。file.tcl
というスクリプトを書いたとすると
$ vmd -dispdev text -e file.tcl
でスクリプトを実行できます。-dispdev text
オプションをつけると、CUI環境のみでの実行ができます。
スクリプトの書き方
まずは、プロテインとリガンドの複合体構造であるcomplex.pdb
を読み込んでプロテインだけを抽出しprt.pdb
に保存するスクリプトを書きます。
mol load pdb complex.pdb #pdbファイルの読み込み set prt [atomselect 0 protein] #0番目に読み込んだファイルからプロテインの情報をprt変数に格納 $prt writepdb prt.pdb #prt.pdbにprtの情報を書き出す exit #vmdの終了
これを実行すると、complex.pdb
からプロテインを抽出してprt.pdb
に書きだせます。
次に、残基名がCBA(リガンド)かつ原子名がC26とC27の原子を抽出したいとすると以下のようにします。
mol load pdb complex.pdb set lig_atoms [atomselect 0 "resname CBA and name C26 C27"] $lig_atoms writepdb lig_atoms.pdb exit
原子の指定方法
atomselect
コマンドではインデックス、原子名、残基名、chain、残基番号で原子を指定できます。
ATOM index name resname chain resid x y z ATOM 1 N MET X 3 79.319 65.199 87.555 0.00 0.00 ATOM 2 CA MET X 3 78.050 64.660 87.941 0.00 0.00 ATOM 3 CB MET X 3 78.049 63.179 87.518 0.00 0.00 ATOM 4 CG MET X 3 77.664 62.902 86.057 0.00 0.00
重心を取り出す
set geom_center [measure center $lig_atom] puts "geometrical center $geom_center" #出力
トラジェクトリ ーを読み込む
trj.xtc
とcomplex.pdb
を読み込んでフレーム毎の重心をgeom_center.text
に出力するスクリプトを書いてみる。複数のファイルを読み込む時は拡張子を指定する必要がある。
mol load pdb complex.pdb xtc trj.xtc set num_frame [molinfo top get numframes] #トラジェクトリのフレーム数 set out_file [open geom_center.txt w] for {set i 1} {$i < $num_frame} {incr i} { set all [atomselect top all frame $i] set geom_center [measure center $all] puts $out_file $geom_center } exit