ころがる狸

ころがる狸のデータ解析ブログ

【分子可視化ツール】VMDのインストールと基本的な使い方

f:id:Dajiro:20210411204133p:plain

材料や創薬は歴史のある学問ですが、機械学習技術はこれらの分野にも適用され今もなお大きく進化しています。もともとシミュレーションが活発な分野なので、材料・創薬分野の機械学習エンジニアを目指すならそれらの知識も必須です(例えば第一原理計算、分子動力学計算、関連ソフトの使い方など)。分子の振る舞いを可視化するツールは様々ありますが、動的な挙動を解析できる可視化ツール:VMD(Visual Molecular Dynamics)のLinuxへのインストール方法と簡単な使い方(分子のアラインメント、RMSDの計算方法)について紹介します。

(事前準備)Xサーバーのインストール

今回はWindowsでLinuxライクな環境を扱えるWSLというアプリケーションにVMDを入れて操作することを前提としています。VMDをWindows上で可視化するために、あらかじめXサーバーを以下のサイトからインストールしておきます。

VcXsrv Windows X Server download | SourceForge.net

インストールが完了したら、XLaunchによってXサーバーを起動します。これは以下の画像のように手動で操作できますが、PCの起動時にXLaunchを実行する設定をしておくと便利です。

f:id:Dajiro:20210411212503p:plain

Xサーバーを起動するにはLaunchする必要がある。

VMDのインストール

まずは公式サイトからVMDの圧縮ファイルをダウンロードします。MacOS, Windows, Linuxなど代表的なOSで使えますが、ここではLinux版をダウンロードします。

公式サイトへのリンクはこちらから。

https://www.ks.uiuc.edu/Research/vmd/

f:id:Dajiro:20210411204924p:plain

VMDのダウンロードページ

LinuxのセットアップとVMDのコンパイル

会社や研究室のLinuxサーバーやローカルコンピューターのWSLにVMDをインストールします。下準備として必要パッケージのインストールとファイルの解凍を行います。
#最小限のビルドツールの取得(必要に応じて実施)
sudo apt update
sudo apt upgrade
sudo apt install build-essential
#VMD圧縮ファイルを解凍
tar -xzvf vmd-1.9.4a51.bin.LINUXAMD64-CUDA102-OptiX650-OSPRay185.opengl.tar.gz

生成されたディレクトリに移動し、コンパイル方法が記述されているREADMEを確認します。このディレクトリにあるconfigureファイルの$install_library_dirと$install_bin_dir で指定された変数にファイルと実行子が保存されるよと記載があるので、必要があれば変更しましょう。実行子のデフォルト保存先は/usr/local/bin/ですが特に問題ないのでここでは変更しません。問題なければ以下のコマンドを実行しコンパイルします。

#Makefileの作成
./configure
コンパイルの実行
cd src
make install

これで実行ファイルが/user/local/bin/vmdに保存されました。パスが通っていれば、vmdコマンドを叩くことによって実行画面が立ち上がるはずです。

vmdの実行
vmd

f:id:Dajiro:20210411211234p:plain

VMDの起動画面

なお、私が手元のPC (Windows10 Home)のWSL1でセットアップし起動を試みたところ、共有オブジェクトファイルが無いよと怒られてしまいました。そこでlibxinerama1をインストールしたところ無事解決しました。

#以下のエラーが表示された
error while loading shared libraries: libXinerama.so.1: cannot open shared object file: No such file or directory
#以下のファイルをインストールし解決
sudo apt install libxinerama1

VMDの入力ファイルの準備(Amberの場合)

VMDでは様々なフォーマットのファイルを読み込むことが出来ます(分子動力学ソフトAmber, Lammps, Gromacsのトラジェクトリファイルや、たんぱく質ファイルPDBなど・・・)。ここでは生体分子シミュレータAmberの計算で得られたデータを読み込みましょう。今回の記事では深入りしませんが、お試し計算をするためにはAmberToolsというパッケージを利用できます。Pythonのパッケージマネージャーであるcondaを使えば非常に簡単にインストールできます。

#AmberToolsのインストール
conda create -n AmberTools20 #仮想環境構築
conda activate AmberTools20 #仮想環境に入る
conda install -c conda-forge AmberTools=20 #最新のAmberToolsのインストール(注:2021年4月現在)
which sander #Amberの実行ファイルを検索。パスが表示されれば成功。
試しに、核酸-たんぱく質のドッキング構造(PDBID:2err)に対してエネルギー最小化計算をしてトラジェクトリファイルを生成しましょう。

f:id:Dajiro:20210411214018p:plain

PDBID:2ERRの核酸-タンパク質複合体構造(PDBJより取得)
以下のleap.inファイルを準備して、Amberの計算に必要なトポロジーファイルとコーディネイトファイルを生成します。とにかく計算結果が欲しかったので、細かい設定と説明は省略します。
#leap.inファイルの中身
source /home/dajiro/miniconda3/envs/AmberTools20/dat/leap/cmd/leaprc.protein.ff19SB
source /home/dajiro/miniconda3/envs/AmberTools20/dat/leap/cmd/leaprc.RNA.OL3
loadOff /home/dajiro/miniconda3/envs/AmberTools20/dat/leap/lib/ions94.lib

comp=loadpdb 2err_mod.pdb
saveamberparm comp in.prmtop in.inpcrd
addions comp Na+ 0
savepdb comp comp.pdb
quit
#leap.inファイルに対し以下のコマンドを実行しAmberの入力ファイルを生成
tleap -s -f leap.in > leap.log
またエネルギー最小化計算の制御ファイルを作成した後、計算を実行します。
#制御ファイル(mdin)の中身
Minimization
&cntrl
 imin=1,
 maxcyc=100,
 ntb=1,
 cut=999,
 dt=0.001,
 ntpr=1,
 ntwr=1,
 ntwx=1,
 ig=-1,
 vlimit=-1,
 iwrap=0,
/
#Amberを実行。実行ファイルはsanderに相当する。
sander -O -i mdin -c in.inpcrd -p in.prmtop
計算が無事完了すると、mdcrdという名前でトラジェクトリがNetCDFというバイナリフォーマットで保存されます。これをVMDで読み込むには、コマンドライン上で以下を入力します。
#トラジェクトリの読み込みとVMDの起動
vmd -parm7 in.prmtop -netcdf mdcrd
以下のような画面が立ち上がれば成功です。

f:id:Dajiro:20210411215239p:plain

トラジェクトリファイルを読み込んだVMDの起動

VMDの使い方

肝心の使い方です。ここでは初期構造からどれくらい構造が変位したかの指標となる、RMSD(Root mean squared displacement)の計算方法を紹介します。[Extentions]⇒[Analysis]⇒[RMSD Trajectory Tool]と移動しRMSD Trajectory Toolを起動します。

f:id:Dajiro:20210411215917p:plain

RMSD Trajectory Toolの起動。
RMSDを計算する際にあたり、まずは各構造ができるだけ重なるようにする操作(アラインメント)を実行します。ツール左上の窓に、たんぱく質に対するアラインメントを実行する場合にはproteinと入力します。核酸の場合はnucleic、系全体でアラインメントする場合にはallと入力します。その後、画面右側のALIGNボタンをクリックすることでアラインメントが実行されます。デフォルトでは初期構造(第ゼロステップの構造)に対してアラインメントが実行されます。また、RMSDを計算するにはその隣のRMSDボタンをクリックします。更にTrajectoryウィンドウのPlotにチェックを入れると、結果が可視化されて表示されます。

f:id:Dajiro:20210411220614p:plain

TrajectoryToolの操作画面
RMSDのプロット結果がこちらです。初期構造からの変位が少しずつ増加している様子を見て取ることが出来ます。また、このテキストデータは左上のFileボタンから出力して保存することが出来ます。

f:id:Dajiro:20210411220855p:plain

RMSDのプロット結果

おわりに

今回の記事では、VMDのインストールからGUIの立ち上げ方法、および入力データの作成方法から読み込み、簡単な使い方まで幅広くみてきました。素朴なデザインのGUIですが出来ることは非常に幅広く、また分子系を非常に美しく描画することも可能です(奥深いノウハウがあるようですが、私にはわかりません・・・)。一方でVMDは機能が多様である割に使い方に関するドキュメントが少ないため、どう使えば良いか分からないという意見もあります。本記事がこれからVMDを使おうとする人の一助になれば幸いです。