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