howto/vmd

一行メモ


VMDの使い方

VMDの基本的な操作

R 回転モード
 マウス左ドラッグ: 回転
 マウス中ロール:  拡大縮小

T 平行移動モード
 マウス左ドラッグ: 上下水平に移動
 マウス右ドラッグ: 奥行きの移動(左右のドラッグが、遠ざかる←→近づく)
 マウス中ロール:拡大縮小

C 原子を左クリックして、回転中心選択
            デフォルト?に戻すには、VMD Mainウィンドウ Display->Reset View しかない?

1 原子を左クリックして、原子のラベルを表示
2 原子を2個左クリックして、原子間の距離を表示
3 原子を3個左クリックして、原子間の角度を表示
4 原子を4個左クリックして、原子間のねじれ角を表示

P 原子をクリックすると、コンソールに原子の通し番号(index)などの情報が出る。chain番号はない
  場合はxと出る。ので、index番号から判断する?
  1 を押してもコンソールに情報が出る。
Graphicsメニュ→Labels
 上記1~4など?で表示した残基名などのラベルを、削除したり、一時的に非表示したりする。

VMDでgromacsのトラジェクトリーを表示

トラジェクトリーの読み込み

Fileメニュー→New Molecule→.groファイルを選択→Load→.trrファイルを選択→Load

(注1) .trrファイルをLoadするときに、Load files for:のところは
New Moleculeではなく、先に読み込んだ.groファイルの名称になっていること。
時系列の原子座標が最初の.groのあとにアペンドされる。そのため、最初のフレーム
(0フレーム目)を削除するとよい。
(注2) .trrだけを読み込むこともできる。この場合は、ただの点として読み込まれる。
(注3) .trrファイルには、スタートの構造と、最後の構造が含まれる。5,000stepを200step毎
に出力していた場合、251フレーム含まれる。例えば、npt.trrの場合、nvt.groとnpt.gro
が含まれる(NVT平衡化につづけてNPT平衡化をしている場合)。
.trrに含まれる原子座標だけを保存したファイル形式は.xtcである。上記は.xtcでも同様。
.trrには他に原子の速度と原子に働く力が含まれている。

蛋白質の形状を変更する

Graphics→Representations→Create Repボタンを押す→Selectionsタブ
→selected Atomsの欄をproteinにする→Applyボタン→Draw styleタブ
→Drawing MethodをCPKなどにする。

(注)表現を増やして描画できる。

原子の選択

原子の選択方法 http://www.ks.uiuc.edu/Research/vmd/vmd-1.3/ug/node132.html

chainの選択は、chain A など。

残基名は、大文字である。

例(Selected Atomsの入力)

resname TYR and not hydrogen
resname HEM and not hydrogen
name FE
protein and not hydrogen
(resname HEME or resname TYR) and not hydrogen

原子の選択とPDBでの保存

例えば、Graphics→Representationsの Seleteted Atomsに次を入力する。

(within 3 of (protein or resname HEM)) and not (protein or resname HEM) or ion

sqrt((x-67)*(x-67)+(y-66)*(y-66)+(z-54)*(z-54)) < (34+2+3) and not (protein or resname HEM) or ion
    #このサイズはMaestroで読めるが操作は無理

選択したものの(RepresentationsのSelection項目)を pdbファイルとして書き出すには、
File→Save Coordinatesから、Save dataと Selected atomsを選んで Saveする。

表示状態の保存・ロード

File→Load Visualization State or  Save Visualization State
なお、表示に利用した .groや .trrはロード時に読み込まれる。
(保存したファイルには、その .groや .trrのファイルを絶対パスで
 指定しているから、ここを変更すれば、ファイルを移動できる。)

バグ?

トラジェクトリーを読み込んでいる場合、 VMDでstateをsaveする前に、Playで動くことを確認する。たまにバグる、バグったstateをloadしても直らない。

BOXの境界を表示する

Tk consoleで、 pbc boxと入力する。
色付きは pbc box -color red など

境界を消すには、pbc box -off

メモ:chimeraでは Amberのトラジェクトリーは読み込めるらしいが、gromacsのは
読み込めない。

物差しを表示する

Extensionsメニュー→Visualization→Ruler→tape,grid,Scaleのいずれかを選択

視点やサイズをリセットする

Display→Reset View

クリッピングやdepth due

Display→Display Setting、でいろいろいじる

リンク

ドキュメント

その他

Tclスクリプトでトラジェクトリーの時間を表示する

#2024/05/09 okazaki,i
# VMD 1.9.3 によるトラジェクトリ表示に、そのフレームの時間も表示するVMDのTclスクリプト
#
# 使い方:
# 1) ~/.vmdrcファイルに以下のものを入れておく。
#      menu main      on
#      set auto_path [concat $env(HOME)/.vmd/myscripts $auto_path]
#      auto_mkindex $env(HOME)/.vmd/myscripts *.tcl
# 2) ~/.vmd/myscriptディレクトリにこのファイルを入れておく。
# 3) vmdを起動し通常通りトラジェクトリを読み込み後、tcl text interface (vmd> プロンプト, コンソール)
#    から mytraceon を実行する。原子をマウスでpickすると(キーボード3->マウス左クリック)、その位置に
#    時間が表示される。何もpickしないと原点座標に表示されたままである。
#      予めこのスクリプトの tperframeをトラジェクトリの1フレーム当たりの時間にしておくこと。使い
#    終わったら mytraceoff を実行すると時間は表示されなくなる。
#
# メモ:
# - mytraceonした後でも、コンソールから set mytrace::tperframe 2.0 で変更可
# - set mytrace::debugf 1 の変更も可
# - File->Save Visualization Stateは drawによる表示のみしか保存されないので、load後再度 mytrceonする
# - 分子を読み込んでいない状態で mytraeonを実行した場合の動作は不明
# - Top(VMD Mainの"T")を変えると、変える前の時間表示が残ったままになる、理由不明
#
# ref. pp140-141, p127 in VMD User's Guide Version 1.9.3
#      https://www.yumpu.com/en/document/read/10444677/
#                                   advanced-vmd-script-examples-and-customization-axel-kohlmeyer
#      https://freesoftnet.co.jp/webfiles/tclkits/doc/TclCmdRef/TclCmd/namespace_jp.htm
#      など。
#      スクリプトの途中でエラーがあると、そこでスクリプトは終了するため、デバッグ時は注意。

proc mytraceon  {} { mytrace::traceon  }
proc mytraceoff {} { mytrace::traceoff }
proc mydebugp { flag msg } { if { $flag } { puts $msg } }

namespace eval mytrace {
    set tperframe  0.01  ;#1frame = 0.01ps (表示するトラジェクトリに合わせて変更すること)
   #set tperframe  2.0
    set debugf     0     ;#デバッグ用 0 or 1

    #[molinfo top]は何番でも可のようだ(playボタンで全てが再描画らしい)、ただし存在すること。
    #何番でもよく、disptimeが呼ばれて処理が実行される。
    proc traceon {} {
        trace add    variable ::vmd_frame([molinfo top]) write mytrace::disptime
        trace add    variable ::vmd_pick_event           write mytrace::pickatom
        mytrace::disptime {}
    }
    proc traceoff {} {
        trace remove variable ::vmd_frame([molinfo top]) write mytrace::disptime
        trace remove variable ::vmd_pick_event           write mytrace::pickatom
        draw delete all; pbc box  ;#このへんなんか変?
       #draw delete all; pbc box -off
       #draw delete all
    }

    #vmd_frame(n)の描画イベントにより実行
    proc disptime {args} {
        mydebugp $mytrace::debugf "****In mytrace::disptime { $args }"
        if { [info exists mytrace::tmpdtxt] } { draw delete $mytrace::tmpdtxt;
                                             mydebugp $mytrace::debugf "  del tmpdtxt=$mytrace::tmpdtxt" }
        if { ![info exists mytrace::coord] } { set ::mytrace::coord "0.0 0.0 0.0" } ;#ここは単純化が可

        draw color yellow
        set f [molinfo top get frame]
        set t [expr $f * $mytrace::tperframe]
        set str "t=[format "%.2f" $t]ps ($f frame)"

        mydebugp $mytrace::debugf "  $str, namespace=[namespace current]"
        set ::mytrace::tmpdtxt [ draw text "$mytrace::coord" "$str" size 1.5 ] ;#代入になぜ先頭の::が必要?
        mydebugp $mytrace::debugf "  new tmpdtxt=$mytrace::tmpdtxt"
        mydebugp $mytrace::debugf "****Ot mytrace::disptime"
    }

    #pickイベントにより、原子のx,y,z座標を coordに代入
    #(ウィンドウの2次元の固定位置を指定する方法は不明だったので)
    proc pickatom {args} {
        mydebugp $mytrace::debugf "****In mytrace::pickatom { $args }"
        mydebugp $mytrace::debugf "  ::vmd_pick_mol,::vmd_pick_atom = $::vmd_pick_mol,$::vmd_pick_atom"
        set sel [atomselect $::vmd_pick_mol "index $::vmd_pick_atom"]
        lassign [$sel get {x y z}] mytrace::coord
        mydebugp $mytrace::debugf "  mytrace::coord = $mytrace::coord"

        disptime {}
        mydebugp $mytrace::debugf "****Ot mytrace::pickatom"
    }
}

#end of file

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS