VMDについて3¶
VMD上級編¶
ここまでの知識があればVMDの操作で困ることはまず困らないであろう。しかし実際の研究ではより込み入った知識が必要となる時がある。必ずしも必要ではないかもしれないが、役に立つと思われる知識を載せていこうと思う。
VMDでの画像保存¶
これまではVMDを使用して分子を可視化することに重点を置いてきた。しかしミーティングや発表などではその可視化した画を見せることもよくある。そのための方法について説明する。
・GUIを用いる方法
まずは上の画像のようなVMD main GUIを開いて欲しい。
そして次にFileタブをクリックする。
さらに出てきた項目の中からRenderをクリックする。
このGUIの説明を少ししておく。
Render the current scene using
分子の写り方を変えることができる。デフォルトはSnapshot。筆者はいつもこれで保存している。特に理由がなければこれでいい気もする。T先輩曰くTachylonがおすすめ。影がついて立体的に見えて見栄えがよい。発表用の画像はこれで保存することもある。ただし書き出しに少し時間がかかるため筆者は普段使いはしていない。
Filename
ファイルの名前。上記の名前だとfugafuga.tgaというファイル名になる。VMDの出力はtgaというファイルである。拡張子を外して名前を変えたとしてもtgaとして出力された気がする。
そのため通常使用するpngなどに変換する必要がある。
Render Command
ここにコマンドを入力すると先に述べたようなtgaからpngへの変換ができるらしい。ただし筆者はいつも別の方法を使用しているので使ったことがない。これについて知りたければT先輩のページに載っているのでそちらを参考にしてほしい。
では変換したい場合どうするかというと、筆者はImageMagickというツールを使用している。
これは画像を扱うための様々なコマンドが入ったパッケージである。こちらをインストールするとmogrifyというコマンドが使用できるようになる。インストールのためには、以下のコマンドをターミナルで叩けばよい。
$ sudo dnf install epel-release
$ sudo ndf install ImageMagick
インストール後
mogrify -fuzz 10% -transparent white -density 2000 -format png *tga
とすればカレントディレクトリのtgaファイルを一括でpng形式に変換できる。
詳しいImageMagickの使い方や、mogrigyのオプションの意味については適宜調べて欲しい。
VMDでGIFを作る¶
どうしても静止画では現象を説明しにくい場合がある。しかし動画にするほどではないという時がある。そんな時にはGIFを作るとよい。
VMDでは標準でGIFを作る機能が備わっているので紹介する。
Main GUIのExtensionsタブをクリックする。
さらにVisualizationをクリックする。
そしてMovie Makerをクリックする。
これによりMovie Generator のGUIが表示される。
このGUIを用いたGIFの作り方について順番に説明していく。
Render¶
分子の写り方のデザインを変更できる。「VMDでの画像保存」の項目で説明したRender the current scene using
と同じである。但し"Tachyon"は綺麗だがGIFの場合はより時間がかかる。そのため時間がない場合は"Snapshot"をお勧めする。
Movie Settings¶
"Trajectory"にチェックを入れよう。
またデフォルトでチェックが入っているDelete image files
はこのままでよい。チェックを外すと、GIFを作成するために撮られた一枚一枚のスナップショットがすべて残る。またこのチェックを外していても、一時的にディレクトリにスナップショットのファイルが生成されていく。ディレクトリが一時的ではあるが荒らされるので、専用のディレクトリを作って実行することをお勧めする。
Set working directory¶
GIFを保存したいディレクトリを指定する。先ほど述べたように、専用のディレクトリを作ることを推奨する。
Name of movie¶
GIFファイルの名前をつける。
Rotation angle¶
デフォルトのまま。
Trajectory step size¶
これは何フレーム間隔でgifに保存していくかを決めるためのものである。
例えば1200フレームのトラジェクトリを10フレーム間隔でGIFにするとしよう。すると120枚のスナップショットをGIFファイルでパラパラ漫画のように再生することになる。さらにGIFは1秒で24フレーム分(24枚のスナップショット)を表示すると決まっているらしい。
したがって120(フレーム) ÷ 24(フレーム/秒) = 5(秒)となり、GIFを初めから終わりまで再生するのにかかる時間は5秒ということになる。
このため、Trajectory step size
に「10」と入力した場合、Movie duration (seconds)
には自動的に5という値が入力される。
Movie duration¶
逆に何秒のGIFを作りたいかで間隔を一義的に決めてもらうこともでき、その場合はMovie duration
に再生時間を入力すればよい。
あとはMake Movieを押して完成を待つだけである!
GIF ~無限再生編~¶
ネットなどに落ちているGIFは永遠に再生され続けるのに、VMDで作成したGIFは3回ループすると終わってしまう。これはGIFファイルのループ回数が3と定められているためである。無限ループにしたければ、ezgif.comを使いましょう。
ファイルをアップロードして、Loop count
に「0」と入力する。「0」は無限ループを意味しており、有限の回数にしたければその回数を入力すればよい。
その後Change loop count!
ボタンをクリックすれば、無限ループするGIF画像を作成することができる。
ただし、35MB以上のGIFに対応していない。そしてVMDで作成するGIFはしばしば35MBを越えがちである。
そのため筆者は妥協してGIFで再生するスナップショットの枚数を減らしてGIFを作った。
しかしどうしてもスナップショットを削りたくない時もある。このような場合はスクリプトを組んでVMDでスナップショットを大量に撮影し、LinuxのパッケージであるImageMagick
のコマンドを使って(この際もシェルスクリプトを組む)GIFを作ることが必要になる。
これについては超上級編で取り扱う予定である。(やる気があれば)
Tcl/Tkを使おう!¶
ついにTcl/Tkを使う時が来た。
Tclは1988年にJohn K. Ousterhout博士によって開発されたプログラミング言語の1種である。そしてTkはそのTcl言語を用いたGUI作成用ツールキットである。Tclは「ティーシーエル」と呼んでもいいが、通称は「ティクル」である。 VMDにはこのTkが搭載されており、Tkコンソールと呼ばれるCUIでTcl言語を使用できる。VMDのコマンドと言われるものはTclによって作られたいわば関数であり、これらもTkコンソールで使用できる。
早速Tkコンソールを開いてみよう。
上記画像のようなウインドウが立ち上がるはずだ。試しに1+1と打ってみよう。
2と返ってくる。プログラミング言語の一種であるため、当然四則演算もできる。
ただしTclはシンプルなプログラミング言語であり、解析用のスクリプトなどは当たり前だがC++やPythonで組むべきである。
そんな役に立たないプログラミング言語を1から学ぶのは面倒だと思うかもしれないが、Tclをマスターとまでは行かなくても、VMDのコマンドを使えるようにする、for文, if文の構造制御を使えるようにする、だけでも十分活用できる。さらに関数を定義してオリジナルのスクリプトを組めると尚良いが。
ここではTcl言語の基本について1から教える訳ではない。VMDのコマンドを中心として、必要最低限の知識を説明する。
したがってTcl使い方というよりは、VMDを使うためのTclの使い方という認識で読んで欲しい。
初期構造を作る¶
筆者は初期構造の作成のためにTclを使うことが大半である。そのためここでは簡単な初期構造の作製を例に説明しながら、VMDのコマンドについても紹介していく。
まずは水溶液系を切り取るだけの構造作りを行う。この構造作りははっきり言って意味がないが、構造を切り取ることができればある程度思うように構造を作製できるため、ぜひ知識を理解して応用していって欲しい。
まず画像のような水の系を用意する。この立方体から小さい立方体を切り出すことにする。ちなみに青色の線は周期境界の箱であり、
コマンドで以下のように入力すれば表示できる。
% pbc box
さて、早速だがVMDで最も重要なコマンドatomselectを紹介する。