ShellScript
Linux
Tcl
NAMD
vmd

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スクリプトについて、より詳しい解説は以下などを参考にしてほしい。