材料や創薬は歴史のある学問ですが、機械学習技術はこれらの分野にも適用され今もなお大きく進化しています。もともとシミュレーションが活発な分野なので、材料・創薬分野の機械学習エンジニアを目指すならそれらの知識も必須です(例えば第一原理計算、分子動力学計算、関連ソフトの使い方など)。分子の振る舞いを可視化するツールは様々ありますが、動的な挙動を解析できる可視化ツール: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を実行する設定をしておくと便利です。VMDのインストール
まずは公式サイトからVMDの圧縮ファイルをダウンロードします。MacOS, Windows, Linuxなど代表的なOSで使えますが、ここではLinux版をダウンロードします。 公式サイトへのリンクはこちらから。https://www.ks.uiuc.edu/Research/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
なお、私が手元の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)に対してエネルギー最小化計算をしてトラジェクトリファイルを生成しましょう。
以下の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
以下のような画面が立ち上がれば成功です。