#author("2024-05-15T17:23:09+09:00","default:okazaki","okazaki") #author("2024-05-15T17:27:51+09:00","default:okazaki","okazaki") #menu(howto/MenuBar) * howto/vmd [#n0637cc9] #contents ** 一行メモ [#k0a69fe0] - VMDのpbcコマンドに関する説明 https://www.ks.uiuc.edu/Research/vmd/plugins/pbctools/ -- &new{2020-11-23 (月) 12:46:21}; - どことも結合していない原子は、ASHLCのS->wire->nonbondedで表示される。 -- &new{2021-03-13 (土) 10:20:16}; - 3.7GBの.xtcファイル(.trrで12.1GB相当)はVMDで全フレームを読み込むことができなかった。 -- &new{2021-03-14 (日) 14:43:12}; - alliumにインストールした。 /share/apps/vmd-1.9.3/bin/vmd-1.9.3 で起動する。 -- &new{2021-06-28 (月) 10:16:55}; - https://www.ks.uiuc.edu/Research/vmd/script_library/ -- &new{2024-05-01 (水) 16:33:20}; - xyz軸方向の表示・非表示・表示場所の変更は メニューの Display->Axes で変更可。 -- &new{2024-05-02 (木) 02:41:43}; - Tcl文法 https://www.freesoftnet.co.jp/webfiles/tclkits/doc/tclcom.html -- &new{2024-05-07 (火) 19:29:47}; - Visualization→Ruler は Save Visualization Stateで正常に保存されないため、削除して保存か、Load後に消して作り直す。 -- &new{2024-05-09 (木) 09:47:14}; - linux版でTcl text interface (コンソール)でbackspaceが効かない件。→ stty erase ^H をする -- &new{2024-05-09 (木) 10:16:42}; そのほか、history, his, !num, !string, linux外部コマンド が使えるようだ。 - Tclの名前空間の使い方など https://freesoftnet.co.jp/webfiles/tclkits/doc/TclCmdRef/TclCmd/namespace_jp.htm -- &new{2024-05-09 (木) 16:43:45}; - 少なくともwindows版のとき、ファイルを保存するとき、絶対パスのフォルダ名に日本語やスペースが入っていた場合は正常に動作しない。 -- &new{2024-05-15 (水) 17:27:51}; #comment * VMDの使い方 [#m6e4458c] //--------------------------------------------------------------------------------- * VMDの基本的な操作 [#f8929531] 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のトラジェクトリーを表示 [#wd68dc03] ** トラジェクトリーの読み込み [#n986a04a] 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には他に原子の速度と原子に働く力が含まれている。 ** 蛋白質の形状を変更する [#sde468f0] Graphics→Representations→Create Repボタンを押す→Selectionsタブ →selected Atomsの欄をproteinにする→Applyボタン→Draw styleタブ →Drawing MethodをCPKなどにする。 (注)表現を増やして描画できる。 *** 原子の選択 [#t9d8116c] &COLOR(,yellow){原子の選択方法}; 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 resid 429 to 574 #アミノ酸配列の選択 *** 原子の選択とPDBでの保存 [#j9be4f81] 例えば、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する。 ** 表示状態の保存・ロード [#bc69004e] File→Load Visualization State or Save Visualization State なお、表示に利用した .groや .trrはロード時に読み込まれる。 (保存したファイルには、その .groや .trrのファイルを絶対パスで 指定しているから、ここを変更すれば、ファイルを移動できる。) *** バグ? [#p6113268] トラジェクトリーを読み込んでいる場合、 VMDでstateをsaveする前に、Playで動くことを確認する。たまにバグる、バグったstateをloadしても直らない。 ** BOXの境界を表示する [#od66e00e] Tk consoleで、 pbc boxと入力する。 色付きは pbc box -color red など 境界を消すには、pbc box -off メモ:chimeraでは Amberのトラジェクトリーは読み込めるらしいが、gromacsのは 読み込めない。 ** 他 [#m9f9e660] *** 物差しを表示する [#fb381e58] Extensionsメニュー→Visualization→Ruler→tape,grid,Scaleのいずれかを選択 *** 視点やサイズをリセットする [#ob074382] Display→Reset View *** クリッピングやdepth due [#mbc9fe39] Display→Display Setting、でいろいろいじる *** 画像の保存(windows版) [#zee0ba98] File->Render-> using: Snapshotのまま filename: フォルダをBrowseしてファイル名.bmpを入れて保存ボタン (フォルダ名に日本語やスペースが含まれていては正常動作しないので、 デスクトップにいったん保存がよい) ->Start Renderingを押す。 #上記のbmpよりも、スクリーンショットとって docxに保存するのが少しきれい。 ** リンク [#i7ca75b6] ***ドキュメント [#wf2345fc] - https://www.ks.uiuc.edu/Research/vmd/current/docs.html - https://www.ks.uiuc.edu/Research/vmd/mailing_list/ -- google searchで、「keyword site:www.ks.uiuc.edu/Research/vmd/vmd-1.3/ug」で検索してもよい *** その他 [#xda47c98] - https://www.researchgate.net/post/How_can_I_remove_pbc_box_in_VMD_for_all_frames - https://www.yumpu.com/en/document/read/10444677/advanced-vmd-script-examples-and-customization-axel-kohlmeyer //--------------------------------------------------------------------------------- * Tclスクリプトでトラジェクトリーの時間を表示する [#be60e6a6] #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 //---------------------------------------------------------------------------------