文書の過去の版を表示しています。
AMBER
概要
- 分子動力学 (Molecular Dynamics; MD) 計算プログラム
- MD エンジンは、2 年に一度 (偶数年) リリースされるらしい。
- AMBER の入力ファイル作成や解析に必要なツール AmberTools は毎年リリースされるらしい。
- MD エンジンは有償
- もともと sander と呼ばれる実行プログラムが MD エンジンだったが、それより高速に計算できる PMEMD がリリースされた。
- PMEMD は、sander の一部機能を削り、高速化を重視しているらしい。
- とはいえ、普通に使う分にはあまり支障がないのだが…。
- 高速に計算する MD エンジン PMEMD は有償のままだが、sander は AmberTools に付属され、無償化している。
Ag++ : Mac OSにAmberTools 14をインストール
- AmberTools は無償
インストール方法
- AMBER12 以降の gcc を使った実行ファイルの作成方法
- ここでは、AmberTools のインストール方法を紹介する
- ただし、AmberTools を展開したディレクトリに PMEMD を含む AMBER 本体を展開すると、同時にインストールすることができる
- PMEMD を含む AMBER 本体と AmberTools のパッケージファイルは展開すると、amberxx (xx はバージョン) と同名のディレクトリが展開される
- ここではインストール場所を /opt とする
- 必要パッケージのインストール
$ sudo apt-get install build-essential flex bison tcsh gfortran g++ libbz2-dev libopenmpi-dev openmpi-bin python-tk python-dev python-matplotlib python-numpy python-scipy libtool patch autoconf automake python-mpi4py openssh-client openssh-server netpbm pymol libnetcdf-dev gromacs gromacs-mpich gromacs-openmpi mpich2 mpi-default-bin mpi-default-dev xorg-dev
- xorg-dev は xleap を使うために必要 (xleap を使わない場合、xorg-dev の他、この後の configure で -noX オプションをつけること)
- AMBER パッケージの入手
- AmberTools: The Amber Molecular Dynamics Package
- 所属や名前を入力してダウンロード
- ここではホームディレクトリにダウンロードしたとする
- PMEMD を含む AMBER 本体は日本だと コンフレックス株式会社 が代理販売しているので、そこから購入する
- AmberTools パッケージの展開
$ cd /opt $ tar axvf ~/AmberTools16.tar.bz2 $ export AMBERHOME=/opt/amber16
- /opt/amber16 は AmberTools のバージョンによって変わるので適宜変更する
- インストール設定 (CPU が 1 つの場合)
$ ./configure gnu
- 実行ファイルコンパイル
$ make
- 計算機に複数の CPU が搭載されている場合は、
-j CPU数
をオプションとして指定すると並列でコンパイルするので短時間で終わる
- インストール設定 (CPU が複数個の場合は追加で以下の作業もする)
$ make clean $ ./configure -mpi gnu
- 実行ファイルコンパイル
$ make
- 計算機に複数の CPU が搭載されている場合は、
-j CPU数
をオプションとして指定すると並列でコンパイルするので短時間で終わる
- 以下をシェルの設定ファイル (.bashrc や .zshrc) に追記して使えるように設定
if [ -d /opt/amber16 ]; then export AMBERHOME=/opt/amber16 if [ -f /opt/amber16/amber.sh ]; then source /opt/amber16/amber.sh fi fi
- /opt/amber16 は AmberTools のバージョンによって変わるので適宜変更する
- Amber12 より前のバージョン(?)では、ここの指定の仕方が変わるので注意
- /opt/amber16/amber.sh は、環境変数やライブラリパスの追加をしてくれるスクリプトである
入力ファイル作成
- 入力ファイルの作成には
tleap
、あるいはxleap
(GUI バージョン) を使う (ここでは tleap での操作を紹介する) - ここでは、hoge.pdb という構造ファイルから、Amber14SB 力場を指定した入力ファイルを作成する
- 特殊な残基 (リガンドなど) を含まない系 ()
$ tleap > source /opt/amber16/dat/leap/cmd/leaprc.ff14SB > system = loadpdb hoge.pdb > check system > addions2 system K+ 0 > solvatebox system TIP3PBOX 20.0 > saveamberparm system hoge.prmtop hoge.inpcrd
source
: パラメータファイル (力場) を読み込む- パラメータファイルは $AMBERHOME/dat/leap の prep、lib、parm、cmd に含まれている; cmd がパラメータセットなので、ここのファイルを読み込むと、複数のパラメータを一度に読み込んでくれる
- tleap 実行時に -f オプションでパラメータファイルを指定すると、この source コマンドは不要
- 'loadpdb': PDB ファイルを読み込む
- ここで指定した
system
は、変数名なので任意の文字列で OK。以降は構造を変数名で指定していく。
check
: 構造やパラメータのチェック- 構造に問題があると、ここでエラーや warning が表示される (エラーが出た場合は、
quit
で tleap を終了させて、構造やパラメータをチェックしなければならない)WARNING: The unperturbed charge of the unit: x.xxx is not zero.
系の電荷が 0 でない場合に表示される (この後の addions2 で解決できるため、無視しても良い)Warning: Close contact of DISTANCE angstroms between .R<RESIDUE1>.A<ATOM> and .R<RESIDUE2>.A<ATOM>
原子間の距離が近すぎる場合に表示される (この後の最適化で解決できるため、無視しても良い)
addions2
: イオンを系に追加する- 第1引数: 系を指定する変数
- 第2引数: 追加するイオン
- 第3引数: イオンの個数 (0 を指定すると、電荷が 0 になるようにイオンが追加される)
- 第4引数: 追加する別のイオン
- 第5引数: 追加する別のイオンの個数 (0 を指定すると、電荷が 0 になるようにイオンが追加される)
solvatebox
: 水分子を追加する (この他に solvateshell や solvateoct などのコマンドも存在する)- 第1引数: 系を指定する変数
- 第2引数: 水分子のモデルの指定 (
TIP3PBOX
は TIP3P の水分子モデルを指定している) - 第3引数: 溶質からの水分子の厚さ(Å) (ここでは、溶質から 20 Å を指定している)
saveamberparm
: 入力ファイルを保存する- 第1引数: 系を指定する変数
- 第2引数: パラメータファイル (MD計算で使う)
- 第3引数: 構造ファイル (MD計算で使う)
- リガンド (通常の力場に含まれない低分子) を含む系
書きかけ
- 特殊残基 (通常の力場に含まれない残基が結合している) を含む系
書きかけ
- 周期境界ボックスのサイズを指定する場合 (溶液のイオン濃度を指定する場合)
- 中心座標の取得
$ tleap > source /opt/amber16/dat/leap/cmd/leaprc.ff14SB > system = loadpdb hoge.pdb > check system > center system > quit
center
コマンドで表示された座標をコピーしておく (コンマで区切った値であることに注意)
- 入力ファイルの作成
$ tleap > source /opt/amber16/dat/leap/cmd/leaprc.ff14SB > system = loadpdb hoge.pdb > set system box {X Y Z} > translate system {コピーした座標にそれぞれ -1 をかけた座標} > addions2 system K+ 0 > solvatebox system TIP3PBOX 0.1 > saveamberparm system hoge.prmtop hoge.inpcrd
set … box
: 周期境界ボックスのサイズを設定 (スペースで区切った値であることに注意)translate …
: 系の座標のシフトset … box
は原点 (0,0,0) を中心に展開するので、系の中心を原点にするため、各座標の値に -1 をかけたものを指定する
solvatebox …
: ここで指定された厚さは指定したボックスからの距離となるので、0.1 などの小さい厚さを設定しておく