はじめに
本シリーズは下記チュートリアルを実施したメモです。
本記事はPLUMED入門の第二回です
第一回はこちら↓
そもそもPLUMEDとは
PLUMEDは様々なMDソフトへ組み込むことができるライブラリである。
PLUMEDはMDシミュレーションに対してon-the-flyで様々な解析を行ったり、バイアスをかけたサンプリングを行うことができる。
また、PLUMEDは単独でトラジェクトリーを解析することもできる。
PLUMEDにどんな計算ができるかを見てみよう。
$ plumed -help
Usage: plumed [options] [command] [command options]
plumed [command] -h|--help: to print help for a specific command
Options:
[help|-h|--help] : to print this help
[--is-installed] : fails if plumed is not installed
[--has-mpi] : fails if plumed is running without MPI
[--has-dlopen] : fails if plumed is compiled without dlopen
[--load LIB] : loads a shared object (typically a plugin library)
[--standalone-executable] : tells plumed not to look for commands implemented as scripts
Commands:
plumed completion : dump a function usable for programmable completion
plumed driver : analyze trajectories with plumed
plumed driver-float : analyze trajectories with plumed (single precision version)
plumed gentemplate : print out a template input for a particular action
plumed info : provide informations about plumed
plumed kt : print out the value of kT at a particular temperature
plumed manual : print out a description of the keywords for an action in html
plumed pathtools : print out a description of the keywords for an action in html
plumed pdbrenumber : Modify atom numbers in a PDB, possibly using hybrid-36 coding
plumed pesmd : Langevin dynamics on PLUMED energy landscape
plumed simplemd : run lj code
plumed sum_hills : sum the hills with plumed
plumed config : inquire plumed about how it was configure
plumed mklib : compile a .cpp file into a shared library
plumed newcv : create a new collective variable from a template
plumed partial_tempering : scale parameters in a gromacs topology to implement solute or partial tempering
plumed patch : patch an MD engine
plumed selector : create lists of serial atom numbers
plumed vim2html : convert plumed input file to colored html using vim syntax
これはPLUMEDが実行できるタスクのリストである。
このチュートリアルでは、トラジェクトリーの解析にPLUMEDを使う。
はじめてのインプットファイル
PLUMEDの主な目標は集団変数(CV)を計算することである。CVは系の複雑な記述子であり、タンパク質の配座変化や化学反応を記述する。
これはon-the-flyで(つまりシミュレーションを流している最中に)行うこともできるし、計算が終わった後にトラジェクトリーを解析することもできる。
どちらの場合もPLUMEDの文法に則ったインプットファイルを作成する必要がある。
インプットファイルの例を見てみよう。
# Compute distance between atoms 1 and 10.
# Atoms are ordered as in the trajectory files and their numbering starts from 1.
# The distance is called "d" for future reference.
d: DISTANCE ATOMS=1,10
# Compute the torsional angle between atoms 1, 10, 20, and 30.
# The angle is called "phi1" for future reference.
phi1: TORSION ATOMS=1,10,20,30
# The same CV defined above can be split into multiple lines
# The angle is called "phi2" for future reference.
TORSION ...
LABEL=phi2
ATOMS=1,10,20,30
...
# Print "d" on a file named "COLVAR1" every 10 steps.
PRINT ARG=d FILE=COLVAR1 STRIDE=10
# Print "phi1" and "phi2" on another file named "COLVAR2" every 100 steps.
PRINT ARG=phi1,phi2 FILE=COLVAR2 STRIDE=100
解説すると、
- 原子番号1,10の間の距離が変数dとして定義
- 原子番号1,10,20,30がなす二面角を変数phi1として定義
- 別の書き方でphi1と同じ二面角をphi2と定義
- 10ステップごとに"COLVAR1"ファイルに変数dを出力
- 100ステップごとに"COLVAR2"ファイルに変数phi1,phi2を出力
なお、
- 原子番号のインデックスは1始まり
- 原子番号を書くときはカンマのあとにスペースを入れない
であることに注意
PLUMEDの文法は下記ページからより詳しく知ることができる
PLUMEDで使われる単位
デフォルトでは以下の単位が使われる
- 長さ:nm
- エネルギー:kJ/mol
- 時間:ps
- 質量:amu
- 電荷:e
単位を変えたければ、UNITSキーワードを使う
次回からは実際にPLUMEDを実行してみます。