Edited at

VMDでのtclスクリプトの書き方、実行方法


VMD(Visual Molecular Dynamics)でtclスクリプトを動かし、単純な繰り返し作業を自動化したい


  • やりたいこと


    • VMDでNAMDにより得られたトラジェクトリファイルの読み込み

    • センタリング

    • 別名保存

    • VMD終了

    • 次のファイルへ



という流れを自動化したい。


環境


  • CentOS Linux release 7.5.1804 (Core)

  • VMD for LINUXAMD64, version 1.9.2 (December 29, 2014)


VMDでtclスクリプトを読み込む方法

$ vmd -dispdev none -e scriptname.tcl



  • -dispdev none : display devise noneの略 ディスプレイウィンドウを表示しない


  • -e scripname.tcl : 読み込む(tcl)スクリプトの指定

これをシェルスクリプト中に書き込むことで、シェルスクリプトからtclスクリプトを呼び出していることになる。


tclスクリプトの書き方

シェルスクリプトが書けるなら大体大丈夫。


初めに

#!/usr/bin/bash

を書いておく。


実行するコマンドなど

proc productname {}{

ここにコマンドを書く
}


文字をコンソール上に表示

puts $aaa

シェルスクリプトのechoに等しい。

($はシェルスクリプトと同じ変数置換詞)


変数に値(文字)の代入

set aaa 100

set bbb "moji"


値を計算して代入

expr 1+2

expr 100*$a

代入するときは、[]でくくってset c [expr $a*5]のようにする。

ここまでを応用して、

先のputsと組み合わせると、


test.tcl

set a 10

set b "moji"
set c [expr $a*5]

puts $a
puts $B
puts $c



result

 10

moji
50


参考

tclスクリプトについて、より詳しい解説は以下などを参考にしてほしい。