平成23年6月1日分子モデリングと分子シミュレーション
分子動力学法とモンテカルロ法
東京大学大学院農学生命科学研究科アグリバイオインフォマティクス
教育研究プログラム寺田 透
本日の講義内容本日の講義内容
• 運動方程式
• 分子動力学法分子動力学法
– 課題1
サ ブ• アンサンブル
• モンテカルロ法モンテカルロ法
– 課題2
定温 定圧分子動力学法• 定温・定圧分子動力学法
古典力学の復習古典力学の復習
• ニュートンの運動方程式F: 力、m: 質量、a: 加速度aF m=
F、aは3次元ベクトル→太字で表記mはスカラー→斜体で表記mはスカラ →斜体で表記
• 加速度aは座標rの時間tに関する2次微分
⎟⎠⎞
⎜⎝⎛== ,,
dtdz
dtdy
dtdx
dtdrv
⎟⎟⎞
⎜⎜⎛
⎠⎝2222 zdydxddd
dtdtdtdt
rva ⎟⎟⎠
⎜⎜⎝
=== 2222 ,,dtdtdtdtdt
a
運動方程式の解(1)運動方程式の解(1)
高• 質量mの玉を高さhから落とす
dvzdzd 22
h v = 0( ) ( ) CvCgttv
gdtdv
dtzdmg
dtzdm z
==+−=
−==−= 22
000
,より、
より重力 F = −mg
( ) ( )
( ) ( ) Dgttzgttvdtdz
CvCgttv
z
zz
+−=−==
==+=
2
21,
000, より、
z ( )
( )
hDhzdt
==1
02
より、 従って、
0
( ) hgttz +−= 2
21
力が座標に依存しない場合は単に2回積分すればよい0 力が座標に依存しない場合は単に2回積分すればよい2階の微分方程式を解くには2つの初期条件が必要
運動方程式の解(2)運動方程式の解(2)
ば が• ばねにつながった玉の運動質量:mばねの長さ:rばねの平衡長:r0ばねの平衡長:r0ばね係数:k
( )0rrkF −−= kqF −=変数変換( )
( )02
20
rrkd
rdm −−= kqdt
qdm −=2
2
0rrq −=変数変換
( )02dt dt 2
運動方程式の解(3)運動方程式の解(3)
22
2
,mkqq
mk
dtqd
=−=−= ωω の一般解は、
( )( ) ( )
sincos tBtAtqmmdt
+= ωωとすると( ) ( )
00
0
00,0
BqA
vdtdqqqt
==
====
とすると、
より、
( ) 000
0
cos,cos0,
rtqrtqtqBqA
+====
ωωより、
ポテンシャルエネルギーと力(1)ポテンシャルエネルギーと力(1)
ポ ギ
( ) ∫ dE rFr
位置rにおけるポテンシャルエネルギーE(r)の定義
位置r( ) ∫ ⋅−=C
dE rFr経路C
原点と位置rを
原点O 力F
微小変位dr置
結ぶ経路Cに沿って、力Fと微小変位d の
原点O 力F微小変位drの内積を積分
ポテンシャルエネルギーと力(2)ポテンシャルエネルギーと力(2)
位置rから微小変位Δrさせた時のポテンシャルエネルギー変化
( ) ( ) ( ) ( )( ) ( )EE
zyxEzzyyxxEEEΔΔΔΔΔ
−Δ+Δ+Δ+=−Δ+ rrr ,,,,位置rから微小変位Δrさせた時のポテンシャルエネルギ 変化
( ) ( )( ) ( )( ) ( )
zzyxEzzyyxEzzyyxEzzyyxxE
Δ+−Δ+Δ++Δ+Δ+−Δ+Δ+Δ+=
,,,,,,,,
( ) ( )EzEyExE
zyxEzzyxE
Δ⋅∇=Δ∂∂
+Δ∂∂
+Δ∂∂
=
−Δ++
r
,,,,
( ) ( )EE
zyx
ΔΔ
∂∂∂
F一方定義より、
( ) ( )EE Δ⋅−=−Δ+ rFrrrであるから、両者を比較して以下を得る
E−∇=F ポテンシャルエネルギー関数が与えられれば力を計算できる
エネルギー保存則(1)エネルギー保存則(1)
• 孤立系(外界とエネルギーのやりとりがない)ではポテンシャルエネルギーEと運動エネルギーKの和Hが保存する(値が変化しない)
• 運動エネルギ• 運動エネルギー2
21 vmK =
• 保存則の証明∂xv EdddEdKdH
2
( ) 0=−⋅=⋅−⋅=∂∂⋅+⋅=+=
FavFvavx
xvv
mm
Edtd
dtdm
dtdE
dtdK
dtdH
エネルギー保存則(2)エネルギー保存則(2)
h重力に逆らって仕事Wをする
h
∫
落下(初速0)
021 2 =+−= hgtz
( )mgh
dzmgW
=
−−= ∫0
ポテンシャル 1
2,2−== ghv
ghtz
0 0
ポテンシャルエネルギーEが増大
hWE021 2
=
==
E
mghmvK
0 v = 0
重力 F = −mg
mghWE ==
ポテンシャルエネルギーが減少し その分運動エ重力 F mg が減少し、その分運動エネルギーKが増大する
エネルギー保存則(3)エネルギー保存則(3)
ば
( ) 00 cos rtqtr += ωばねの運動方程式の解
( )( ) ( ) 0
00
sin tqdttdrtvq
−== ωω
( ) ( ) ( )200 2rrkrdrrkrE
r
−=′−′−−= ∫
( )[ ] ( )[ ]22
20
rtrktvmH
r
−+= ( )[ ] ( )[ ]22
202
220
0
1cossin
22
kqtkqtmq
rtrtvH
=+=
+=
ωωω02
cos2
sin2
kqtt =+= ωω
分子動力学法分子動力学法
分子動力学( l l d i MD)法では ポ• 分子動力学(molecular dynamics, MD)法では、ポテンシャルエネルギー関数から各原子に働く力を求め ニュ トンの運動方程式に従って 各原子の位め、ニュートンの運動方程式に従って、各原子の位置や速度の時間変化を計算する
• 運動方程式は3原子以上の系では解析的に解くこ• 運動方程式は3原子以上の系では解析的に解くことができない→数値解法の利用
• 数値解法では短い時間刻みΔtで逐次的に各原子の• 数値解法では短い時間刻みΔtで逐次的に各原子の位置や速度を求める
• 数値解法には数多くのアルゴリズムがあるが 通常• 数値解法には数多くのアルゴリズムがあるが、通常の目的では、velocity Verlet法を使うのが良い
Velocity Verlet法(1)Velocity Verlet法(1)
速1. 時刻t+Δtにおける位置rと、速度vをΔtについて2次までテイラー展開する展
( ) ( ) ( ) ( ) ( )322
2
!21 tOt
dttdt
dttdttt Δ+Δ+Δ+=Δ+
rrrr
( ) ( ) ( )( ) ( )( ) ( )2
32
21
!2
dd
tOttm
tttdtdt
Δ+Δ+Δ+= rfvr
( ) ( ) ( ) ( ) ( )( ) ( )( ) ( )( ) ( )
322
2
11!2
1
td
tOtdt
tdtdt
tdttt Δ+Δ+Δ+=Δ+
rf
vvvv
( ) ( )( ) ( )( ) ( )32
211 tOt
dttd
mtt
mt Δ+Δ+Δ+=
rfrfv
Velocity Verlet法(2)Velocity Verlet法(2)
2. 力の時間による微分を以下により近似する
( )( ) ( )( ) ( )( ) ( )td rf( )( ) ( )( ) ( )( ) ( )( )( ) ( )( ) ( )( ) ( )ttttd
tOtdt
tdttt
−Δ+
Δ+Δ+=Δ+
rfrfrf
rfrfrf 2
れを 式に代入
( )( ) ( )( ) ( )( ) ( )tOt
tttdt
tdΔ+
ΔΔ+
=rfrfrf
3. これを1の式に代入
( ) ( ) ( ) ( )( ) ( )321( ) ( ) ( ) ( )( ) ( )( ) ( ) ( )( ) ( )( )[ ] ( )3
32
121
tOttttttt
tOttm
ttttt
Δ+Δ+Δ++=Δ+
Δ+Δ+Δ+=Δ+
rfrfvv
rfvrr
( ) ( ) ( )( ) ( )( )[ ] ( )2
tOttttm
ttt Δ+Δ+Δ++=Δ+ rfrfvv
Velocity Verlet法(3)Velocity Verlet法(3)
ンピ タ上では以下の手順で実行される• コンピュータ上では以下の手順で実行される1. 時刻0における位置と速度を与え、力を計算
2 時刻tにおける速度と力から以下を計算2. 時刻tにおける速度と力から以下を計算
( ) ( )( ) ttm
t Δ+=′ rfvv21
3. 時刻t+Δtにおける位置を以下で求めるm2
( ) ( ) tttt Δ′+=Δ+ vrr4. 時刻t+Δtにおける位置から力を求め、速度を以下で求
める
( ) ( )( )ΔΔ′Δ f1
5. 2に戻り、目的の時刻に達するまでこの操作を繰り返す
( ) ( )( ) tttm
tt ΔΔ++′=Δ+ rfvv21
精度の評価精度の評価
• テイラー展開の式からわかるように、velocity Verlet法にはΔt3の誤差を含む
• エネルギー保存則(運動エネルギーとポテンシャルエネルギ の和が変化しない)が成りシャルエネルギーの和が変化しない)が成り立っているかどうかが精度の指標となる
調和振動子のシミュレーション(1)調和振動子のシミュレーション(1)
ば が• ばねにつながった玉の運動質量:mばねの長さ:rばねの平衡長:r0ばねの平衡長:r0ばね係数:k
( )0rrkF −−= kqF −=変数変換( )
( )02
20
rrkd
rdm −−= kqdt
qdm −=2
2
0rrq −=変数変換
( )02dt dt 2
調和振動子のシミュレーション(2)調和振動子のシミュレーション(2)
動方程式 解析解• 運動方程式の解析解初期位置をq0、初期速度を0とすると、
( ) ( )• Velocity Verletのperlプログラム(osc.pl)
( ) ( ) tqtvtqtq ωωω sin,cos 00 −==y p p
$q=1.0;$v=0.0;
$m=1.0;$k=1.0;
$d 0 01 $ 100
($e,$f)=calc_force($q);
for($i=1;$i<=$nstep;$i++) {
$ 0 5 $f/$ $d$dt=0.01;$nstep=100;
sub calc_force {
my $q=$_[0];
$v+=0.5*$f/$m*$dt;
$q+=$v*$dt;
($e,$f)=calc_force($q);
my $f=-$k*$q;
my $e=0.5*$k*$q**2;
return ($e,$f);
$v+=0.5*$f/$m*$dt;
$H=0.5*$m*$v**2+$e;
print OUT $i*$dt,",",$q,, ;
}
open(OUT,">osc$dt.csv");
p , , , q,
",",$v,",",$H,"¥n";
}
課題1課題1
調和振動子 シ シ プ グ ム• 調和振動子のシミュレーションプログラムosc.plを用いて、$dtを0.01、0.02、0.05、0.1、
と変化さ たとき 全 ネ ギ0.2、0.5、1と変化させたときの全エネルギー($H)の初期値(H0 = 0.5)との差の絶対値
を求(<|H–H0|>)の平均を求めよ
• 時間刻みを横軸、 <|H–H0|>を縦軸としてプ時間刻みを横軸、 |H H0| を縦軸としてプロットせよ(osc.xlsxを使用しても良い)
• 時間刻みが大きくなると <|H H |>はどのよ• 時間刻みが大きくなると、 <|H–H0|>はどのように変化するか考察せよ
時間刻みと誤差の関係時間刻みと誤差の関係
0 071
y = 0.0633x2 - 0.0005x + 2E-05
0.05
0.06
0.07
>0.20.40.60.8
1
0.02
0.03
0.04
<|H
-H0|>
0 8-0.6-0.4-0.2
0-1 0 1
0
0.01
0 0.2 0.4 0.6 0.8 1
Time step
-1-0.8
Time step
$dtを0.01、0.02、0.05、0.1、0.2、0.5、1と変化させたときの全エネルギー($H)の初期値(H
$dt(時間刻み)を0.1(黒)、0 5(赤)としたときの 各 させたときの全エネルギー($H)の初期値(H0
= 0.5)との差の絶対値(<|H–H0|>)を、時間刻みを横軸、 <|H–H0|>を縦軸としてプロット
0.5(赤)としたときの、各時刻における($q, $v)の組をプロット
5.022
22=+=
kqmvH 122 =+ qv |H–H0|は円からのずれに対応
適切な時間刻みの選択適切な時間刻みの選択
• 時間刻みを小さくすると、全エネルギーのずれは小さくなる
• 一般的に、最も早い運動の周期の10分の1から20分の1程度の時間刻みが用いられるから20分の1程度の時間刻みが用いられる
• タンパク質の場合、最も速い運動は、X–H伸縮運動(X=C、N、O、S)で、3000 cm−1程度(周期は約10 fs)(周期は約10 fs)
• 従って、時間刻みΔtには0.5~1.0 fsを用いる
多粒子系のシミュレーション(1)多粒子系のシミュレーション(1)
• Van der Waals相互作用する多粒子系のシミュレーション(vdw.pl)p
$natom=3; # Number of particles
$width=10.0; # Width of initial
particle distributionparticle distribution
$scale=1.0; # Scaling factor for
initial velocity
$fcap=1.0; # Force constant for
spherical boundaryspherical boundary
$sigma=1.0; # Atom radius
$epsilon=1.0; # Well depth
$mass=1.0; # Atomic mass
$nstep=100000; # Number of MD steps$nstep=100000; # Number of MD steps
$nsave=100; # Frequency of saving
trajectory
$dt=0.001; # Time step
$seed=110601; # Random seed
$width$seed=110601; # Random seed
多粒子系のシミュレーション(2)多粒子系のシミュレーション(2)
初期配置• 初期配置– 原点を中心とした、一辺が$widthの立方体の中
ダにランダムに配置
• 初期速度– ランダム(大きさは$scaleで変更可)
• ポテンシャルエネルギー関数• ポテンシャルエネルギ 関数
( )+⎟⎟⎞
⎜⎜⎛
−= ∑∑ ∑ cap6
6
12
12
4 rEEN
i
N N σσε ( )
( ) ⎨⎧ <
⎟⎠
⎜⎝
∑∑ ∑== +=
cut
1cap
1 1612
0 rrrE
rr
i
ii
i ij ijij
riは原点からの距離( ) ( )⎩⎨ ≥−
=cut
2cutcap
cap rrrrfrE
iii
riは原点からの距離rcutは$widthの1/2
多粒子系のシミュレーション(3)多粒子系のシミュレーション(3)
計算結果はUCSF Chi で可視化できる• 計算結果はUCSF Chimeraで可視化できる
• Chimera 1.5.2のアイコン をダブルクリック
「 「• メニューの「Tools」→「MD/Ensemble Analysis」→「MD Movie」を選択し、Trajectory formatを「PDB」、PDB frames contained inを「Single file」とし ファイPDB frames contained inを「Single file」とし、ファイルに生成された「vdw.pdb」を指定して「OK」
• メニューの「Actions」→「Atoms/Bonds」→「stick」で• メニューの「Actions」→「Atoms/Bonds」→「stick」で原子を表示する
• 再生ボタンをクリックしてアニメーションを開始• 再生ボタンをクリックしてアニメ ションを開始
• パラメータを変えて運動の変化を観察せよ
実験データとの比較実験データとの比較
• 単にニュートン方程式を解くと、その解は、周辺環境とエネルギーのやり取りのない「孤立辺環境 ネ ギ やり取り な 孤系」のシミュレーションを行ったことになる
• 実際の実験デ タは 分子が1023個程度存• 実際の実験データは、分子が1023個程度存在する系に対する平均的な値として得られる
• 分子シミュレーションで得られる結果は、実験データと比較できるのだろうか?デ タと比較できるのだろうか?
現実のシステム現実のシステム
タンパク質
タ パ 質 分 個 含タンパク質1分子を含む孤立系( 定)
タンパク質を1023個程度含む温度・圧力(または体積)一定の系
定(NVE一定) (NVT、NPT一定)
温度・体積一定のシステム(1)温度・体積一定のシステム(1)
タンパク質を1分子と周辺の水分子を1 の系と考える
熱だけが交換できる仕切り
• タンパク質を1分子と周辺の水分子を1つの系と考える
• 全系は、多数の同じ系から構成されている
各系は熱だけが交換できる仕切りを介して接触している• 各系は熱だけが交換できる仕切りを介して接触している
• 系の数、全エネルギーは一定
温度・体積一定のシステム(2)温度・体積一定のシステム(2)
デ• 実験データは、全系を構成する各系(タンパク質とその周辺環境)の状態によって決まる値の平均値(状態 出 確率 重 き 均態の出現確率での重みつき平均)
ρi: 状態iの出現確率1, == ∑ iiiAA ρρ
• 系の数、全エネルギーは一定の条件の下で、エント
i
ロピー(場合の数)が最大となる、各状態の出現確率=カノニカル分布
ei: 状態iのエネルギーZ: 分配関数
( )( )∑ −=
−= −
i
ii
TkeZTkeZ
B
B1
expexpρ
( )∑i
i Bp
温度・体積一定のシステム(3)温度・体積一定のシステム(3)
• 分子シミュレーションでは、全系を構成する各状態を逐次的に発生させ、各状態での値を状態を逐次的 発 さ 、各状態 値を出現確率で加重平均することで、実験データに相当する値を求めるに相当する値を求める
シミュレーションで発生
ρ1 ρ2 ρ3 ρn
平均値を求める∑=
n
ii XX ρ実験データと比較
∑=i
ii1ρ
平均値計算の例平均値計算の例
ば ギ• ばねにつながった玉の系を例に全エネルギーの平均値を計算する(この場合は解析的に計算できる)
Tkdqdpqk
mp
Tkqk
mp
HqkpH
22
B
22
22 22
1exp22
=⎥⎦
⎤⎢⎣
⎡⎟⎟⎠
⎞⎜⎜⎝
⎛+−⎟⎟
⎠
⎞⎜⎜⎝
⎛+
=+=∫
方法1 グリッドに切る
Tkdqdpqk
mp
Tk
Hqm
H B2
2
B 221exp
,22
=
⎥⎦
⎤⎢⎣
⎡⎟⎟⎠
⎞⎜⎜⎝
⎛+−
=+=
∫
• 方法1:グリッドに切る
• 方法2:モンテカルロ積分 確率ρ• 方法3:importance sampling
ρ
方法1:グリッドに切る方法1:グリッドに切る
平面を等間隔のグp • q–p平面を等間隔のグリッドに切り、各点でexp(−H/kBT)を計算し、
p
p( B )を計算し、この和とHとの積の和を求める
本来は( )の区間• 本来は(− ∞, ∞)の区間で計算する必要があるが、それは不可能なの
qが、それは不可能なのでq、pとも[−10,10]の区間で計算
グリ ドを細かくし• グリッドを細かくしていき、上記の和の比(<H>)の収束を見る( H )の収束を見る
この点におけるexp(−H/kBT)を計算
方法2:モンテカルロ積分方法2:モンテカルロ積分
とも[ 10 10]のp • q、pとも[−10,10]の区間で一様乱数を発生
p
発生
• 各点でexp(−H/kBT)を計算し この和とHを計算し、この和とHとの積の和を求める
• 発生させる点の数をq
• 発生させる点の数を増やしていき、上記の和の比(<H>)のの和の比(<H>)の収束を見る
結果の比較(1)結果の比較(1)
黒線:グリッド赤線:モンテカルロ積分
kBT = 1 0kBT 1.0
モンテカルロ積分はなかなか収束しない
モンテカルロ積分の問題点モンテカルロ積分の問題点
乱数を用 る統計的な手法 は 誤差は標本数• 乱数を用いる統計的な手法では、誤差は標本数の−1/2乗に比例→誤差を10分の1にするには標本数を100倍にしなければならないを100倍にしなければならない
• 生体高分子のような多自由度の系では、グリッド法には限界がある(100残基のタンパク質では各残基には限界がある(100残基のタンパク質では各残基の主鎖の構造をαヘリックス構造とβストランド構造だけに限っても2100≒1030もの構造を発生させなくだけに限っても2 ≒10 もの構造を発生させなくてはならないので実現不可能
• モンテカルロ積分を改良して精度と効率を上げるモンテカルロ積分を改良して精度と効率を上げる→importance sampling
Importance samplingImportance samplingモンテカルロ積分では Hの値に重み ( H/k T)• モンテカルロ積分では、Hの値に重みexp(−H/kBT)をかける
• (q p) = (0 0)では 重みは1であるが (q p) = (10• (q, p) = (0, 0)では、重みは1であるが、(q, p) = (10, 10)では、3.7×10−44
• 標本点ごとに平均への寄与が異なるため、計算に標本点ごとに平均 の寄与が異なるため、計算に無駄がある
• 個々の標本点の寄与が等しくなるように標本点をとると無駄をなく るると無駄をなくせる
• 寄与が大きいところからは標本点をたくさん、小さいところからは少しとるようにすれば良いところからは少しとるようにすれば良い
• 標本点の密度が重みexp(−H/kBT)に比例するようにする→importance samplingにする→importance sampling
方法3:Importance sampling方法3:Importance sampling標本点 密度が重• 標本点の密度が重みexp(−H/kBT)に比例するように標本点例するように標本点を発生(実際には分散1のGauss分布)散1のGauss分布)
• 各点でHを計算し、この平均値を求めるこの平均値を求める
• 発生させる点の数を増やしていき、<H>増やしていき、<H>の収束を見る
方法3:プログラム例方法3:プログラム例
$kT=1.0;
$pi=atan2(1.0,1.0)*4.0;
$max_npt=100;
for($npt=2;$npt<=$max_npt;$npt+=2) {
$val1=0.0;
f ($i 0 $i $ 2 $i) {for($i=0;$i<$npt**2;++$i) {
$x1=rand;
$x2=rand;
# 様乱数を正規分布に変換#一様乱数を正規分布に変換$q=sqrt(-2.0*$kT*log($x1))*cos(2.0*$pi*$x2);
$p=sqrt(-2.0*$kT*log($x1))*sin(2.0*$pi*$x2);
$H=0 5*$q**2+0 5*$p**2;$H=0.5*$q**2+0.5*$p**2;
$val1+=$H; #標本点における全エネルギーを平均}
printf("%d %f¥n" $npt**2 $val1/($npt**2));printf( %d %f¥n ,$npt**2,$val1/($npt**2));
}
結果の比較(2)結果の比較(2)
黒線:グリッド赤線:モンテカルロ積分緑線:Importance sampling
kBT = 1 0kBT 1.0
Importance samplingによって精度と効率が向上
参考:標本点の発生法参考:標本点の発生法
般 布• 一般に、ある分布ρに従う標本点は0から1の間の一様分布に従う標本点を関数fで変換す数 変ることで得られる
( ) ( ) ( ) ( ) ( )ygyfxxfyyyxxf
===→ −1
• この時、関数fは以下を満たす
( ) ( ) ( ) ( ) ( )ygyfxxfyyyxx NN ===→ 11 ,,,, KK
( )
ばねにつなが た玉の系では
( ) ( ) ( ) ( ) ( ) ( )∫ −===== xgxfydyyygdy
ydgdydxy 1,, ρρ
• ばねにつながった玉の系では、
( ) ( ) ( )⎪⎨⎧ −=
⎟⎟⎞
⎜⎜⎛ +∂ 21
2221 2cosln21, xxqpqxx π( ) ( )
( )( )( )⎪⎩
⎪⎨
−=⎟⎟⎠
⎜⎜⎝−=
∂=
21
2121
2sinln2,
2exp
2,,,
xxpqpq
pqpq
ππρ
もっと複雑な例もっと複雑な例
• 以下のポテンシャルエネルギーを持つ系について、標本点を発生させる
確率は以下に従うが
( ) ( )[ ] ( )[ ]9.0111 22 −−−+= xxxE
• 確率は以下に従うが...
( ) ( )⎥⎦⎤
⎢⎣⎡−=
xExp exp1
E(x
)
( )
( )∫∞+
⎥⎤
⎢⎡−=
⎥⎦⎢⎣
dxxEZ
kTZxp
exp
exp
x∫∞−
⎥⎦⎢⎣−= dx
kTZ exp
Markov連鎖の利用Markov連鎖の利用
生体高分子 系 場合 構造と ネ ギ 関係• 生体高分子の系の場合、構造とエネルギーの関係は複雑なので、 exp(−H/kBT)に従う標本点(すなわち構造)を発生させる関数fを求めることはできないち構造)を発生させる関数fを求めることはできない
• このような場合はMarkov連鎖を利用する
M k 連鎖とは?• Markov連鎖とは?– 状態は離散的で、全部でM個の状態がある
ある状態iから別の状態jに遷移する時 遷移確率 はそ– ある状態iから別の状態jに遷移する時、遷移確率πijはそれ以前の状態に依存しない
• 遷移確率π を適切に設定することで 決まった出現• 遷移確率πijを適切に設定することで、決まった出現確率に従う標本点を発生できる
Markov連鎖の例(1)Markov連鎖の例(1)
が• 状態が2つで、遷移確率πijをあらかじめ与えた場合の状態の出現頻度の挙動を考える場 頻 考
• ある野球選手がヒットを打つ確率を求める
ヒ トを打 た(状態1)次の打席は60%の確率で– ヒットを打った(状態1)次の打席は60%の確率でヒットを打つ
– ヒットを打てなかった(状態2)次の打席は70%の確率でヒットを打てない
• 遷移確率(行列)は以下の通り
⎞⎛⎞⎛ 4060ππ⎟⎟⎠
⎞⎜⎜⎝
⎛=⎟⎟
⎠
⎞⎜⎜⎝
⎛=
7.03.04.06.0
2221
1211
ππππ
π
Markov連鎖の例(2)Markov連鎖の例(2)
黒線:第一打席はヒット赤線:第一打席はアウト
初期状態(第一打席の成績)に関係なく一定の値に収束
Markov連鎖の例(3)Markov連鎖の例(3)
移確率 決ま 確率 与 れ• 遷移確率πijで決まる確率ρは以下で与えられる→ πijを用いて確率ρに従う標本点が生成できる
( ) ( ) ( )( ) ( )4060
0,1, 12
11
1
⎞⎛
==ρ ρρ
( ) ( ) ( ) ( )
4060
4.0,6.07.03.04.06.0
0,112
⎞⎛
=⎟⎟⎠
⎞⎜⎜⎝
⎛== ρρ π
( ) ( ) ( ) ( )52.0,48.07.03.04.06.0
4.0,6.023 =⎟⎟⎠
⎞⎜⎜⎝
⎛== ρρ π
( ) ( ) ( )7.0/4.0,7.0/3.0,limlim 1 ==== − ρρρρρ ππN
N
N
N
M
( )∞→∞→ NN
Metropolisの方法(1)Metropolisの方法(1)
• 各状態の出現確率が収束した段階では方程式ρ = ρπを満たすρ ρ
• 出現確率ρは、遷移行列πの固有ベクトル遷移行列が決まれば 意的に決まる→遷移行列が決まれば一意的に決まる
• Importance samplingでは各状態の出現確率ρはわかっているので、ここから遷移行列πを求めたい(以下でeiは状態iのエネルギー)を求めたい(以下でeiは状態iの ネルギ )
∑ ⎟⎟⎠
⎞⎜⎜⎝
⎛−=⎟⎟
⎠
⎞⎜⎜⎝
⎛−=
Mii
i TkeZ
Tke
Zexp,exp1ρ ∑
=⎟⎠
⎜⎝
⎟⎠
⎜⎝ i
i TkTkZ 1 BB
p,pρ
Metropolisの方法(2)Metropolisの方法(2)
細• 詳細釣り合いの式
πρπρ =
• これが成り立てばρ = ρπが満たされるjijiji πρπρ =
• Metropolisらは詳細釣り合いを満たす遷移行
ji
jiji
jiji
iji ρπρπρπρ === ∑∑∑• Metropolisらは詳細釣り合いを満たす遷移行列として以下を提案
andif⎧ ≠≥= jiρραπ( ) andif
andif
⎩⎨⎧
≠<=≠≥=
M
ijijijij
ijijij
jiji
ρρρραπρραπ
1,,11
==−= ∑∑=≠
M
jijjiij
ijijii αααππ
Metropolisの方法(3)Metropolisの方法(3)
注目している原子を その原子を中心• 注目している原子を、その原子を中心とした、1辺2Δの立方体の範囲内でランダムに遷移させる
1=
Δij N
αΔ
遷移先が立方体の中
• 遷移先のエネルギーejが、もとの状態のエネルギーeiよりも
0=ijα 遷移先が立方体の外
遷移先の ネルギ ejが、もとの状態の ネルギ eiよりも小さければ、その遷移を採択し、大きければ、以下の確率で採択する
( )[ ] ( )TkTk Δ
• 採択されなかった場合は、もとの状態を新しい状態とする
( )[ ] ( )TkeTkee jiijij BB expexp Δ−=−−=ρρ
計算例計算例
• 先の例について、確率密度分布を求める
• X = 1からスタートし、107ステップ実行
E
• 変位の最大値Δ = 0.1、温度kT = 3.0とする温度kT 3.0とする
• 得られた確率密度分布を理論式exp(–E(x)/kT) ( ) ( )[ ] ( )[ ]90111 22 −−−+= xxxE
x
を理論式exp(–E(x)/kT)と比較する
( ) ( )[ ] ( )[ ]9.0111+= xxxE
プログラム例プログラム例
$nstep=1000000; #ステップ数$x=1.0; #初期位置$ene=&calc_ene($x); #初期エネルギー$delta=0 1; #変位の最大値$delta=0.1; #変位の最大値$kT=3.0;
for($i=0;$i<$nstep;$i++) {
$x new=$x+2 0*$delta*(rand()-0 5); #試行$x_new=$x+2.0*$delta*(rand()-0.5); #試行$ene_new=&calc_ene($x_new);
$p=exp(($ene-$ene_new)/$kT);
if($p >= 1.0 || $p >= rand()) { #試行が採択される条件$x=$x new;$x=$x_new;
$ene=$ene_new;
}
printf("%d %f %f¥n",$i+1,$x,$ene);
}}
sub calc_ene { #エネルギー関数my ($x)=@_;
return (($x+1 0)*($x+1 0)-1 0)*(($x-1 0)*($x-1 0)-0 9);return (($x+1.0) ($x+1.0)-1.0) (($x-1.0) ($x-1.0)-0.9);
}
結果結果
黒点:計算値赤線:理論式
tyP
roba
bilit
P
x
課題2課題2
講義 ジ をダ ド• 講義のページからmc.plをダウンロードし、アイコンをダブルクリックして実行せよ
– 理論値に近い分布が得られることを確認せよ
• 温度$kTを0 3に変更して実行し 得られる分布温度$kTを0.3に変更して実行し、得られる分布を理論値と比較せよ
初期位置$ を 1 0に変更し 同様に実行せよ• 初期位置$xを–1.0に変更し、同様に実行せよ
– 得られる分布はどのように変化するか?
• 温度を変化させることによってなぜこのような違いが生じたのか考察せよが じたのか考察せよ
生体高分子への適用生体高分子への適用
生体高分子では 「状態」は立体構造に対応• 生体高分子では、「状態」は立体構造に対応• Metroplisの方法は生体高分子から原子を任意に選び その位置を動かすことで実現可能選び、その位置を動かすことで実現可能
• ただし、原子を動かすと大抵の場合共有結合長を変えることになり、エネルギーが増加する場合が多変えることになり、エネルギ が増加する場合が多い→棄却される確率が高い
• このため、共有結合長や共有結合角を固定し、二面角 を動かす が 般的だが困難も多角のみを動かすのが一般的だが困難も多い→複数分子の扱いが難しい→タンパク質のコアのように密にパックしている部分→タンパク質のコアのように密にパックしている部分では、二面角を回転すると原子が衝突する可能性が高い
定温分子動力学法(1)定温分子動力学法(1)
立体構造分布が i l分布に従う分子動• 立体構造分布がcanonical分布に従う分子動力学法を定温分子動力学法と呼ぶ
• 直交座標系で扱えるためモンテカルロ法よりも生体高分子に適用しやすいも 体高分子 適用 やす
• 平均値を計算する際には時間平均として計算する算する
• 速度をスケールすることにより温度を制御2
∑=N
i
iimNkT
1
2
223 v
=i 1
定温分子動力学法(2)定温分子動力学法(2)
能勢の方法• 能勢の方法• 能勢-Hoover法
能勢の方法の改良版系が熱浴と接している考 熱 自由度– 能勢の方法の改良版
• 能勢-Hoover chain法低自由度の系でも適用可能
と考え、熱浴に自由度を与える
– 低自由度の系でも適用可能
• 束縛法座標のみ i l分布に従う– 座標のみcanonical分布に従う
• Berendsenのcoupling法C i l分布を与えない
熱浴
– Canonical分布を与えない– 簡便で安定なため、よく用いられる
参考:能勢 Hoover法参考:能勢-Hoover法
⎪⎪⎧ =
i
ii
mdtd pr
( )⎪⎪⎪⎪
⎨
−= iii
i
Qp
dtd prfp ξ
⎪⎪⎪⎨
=Qp
dtd
Qξξ
熱浴の自由度に対する
⎪⎪⎪
⎩−=∑
=
N
if
i
i kTNmdt
dp
1
2pξ
熱浴の自由度に対する運動方程式
参考:Berendsenのcoupling法参考:Berendsenのcoupling法1 V l it V l t法の各ステ プ終了後に瞬間1. Velocity Verlet法の各ステップ終了後に瞬間
的な温度T'を計算する2
∑=
=′N
i
iimTNk
1
2
223 v
2. 速度をχ倍スケールする(定数τを大きくすると速度のスケールの程度は小さくなる)
=i 1 22
速度のスケ ルの程度は小さくなる)21
11 ⎥⎦
⎤⎢⎣
⎡⎟⎠⎞
⎜⎝⎛ −
′Δ
+=TTt
τχ
⎦⎣ ⎠⎝Tτ
圧力の計算圧力の計算
−−=−−=+−=−=
SdTPdVSdTTdSdEdFTdSPdVdETSEF ,
⎟⎠⎞
⎜⎝⎛∂∂
=⎟⎠⎞
⎜⎝⎛∂∂
=⎟⎠⎞
⎜⎝⎛∂∂
−=TTT V
ZZkT
VZkT
VFP ln
( )∑=
⋅+=
⎠⎝ ∂⎠⎝ ∂⎠⎝ ∂N
iii
TTT
VVNkT
VZVV
131 rfr ビリアルの定理
( )∑ ∑= +=
⋅+=N
i
N
ijijij
i
VVNkT
1 1
1
31 rfr 周期境界条件ではこ
ちらを使う
相互作用のない系(理想気体)では、PV = NkT = nRT
圧力の制御圧力の制御
周期境界条件における セルの大きさを変化させるこ• 周期境界条件における、セルの大きさを変化させることで圧力を制御する
圧力増 分子の重心位置も同様圧力増
圧力減
分子の重心位置も同様にスケールされる
分子内の原子の相対位置は変化 な
• 定温定圧分子動力学法
圧力減ri αri 位置は変化しない
定温定圧分子動力学法– 熱浴に加えて、体積も変数とする
• Berendsenのcoupling法– 正しい分布を与えない– 簡便で安定なため、よく用いられる
参考:定温定圧分子動力学法参考:定温定圧分子動力学法
⎪⎪⎧ +=
Wp
m ii
ii
ε rpr&
( )⎪⎪⎪⎪
−⎟⎠⎞
⎜⎝⎛ +−=
pQp
Wp
N iiii
3
11 ξε pprfp&
体積Vも変数
( )⎪
⎪⎪⎪
⎨+⎟
⎞⎜⎛ +=
=
∑∑ pp
PVp
VWpV
NNi 311
3
2ξ
ε
rfrp&
&
( )
⎪⎪⎪⎪
=
−−⋅+⎟⎠
⎜⎝+= ∑∑
==
p
pQ
PVmN
pi
iii i
3111
ξ
εξ
ε
ξ
rfr
&
( )⎪⎪⎪⎪
⎩+−+=∑ kTN
Wp
mp
QN
i 1322ε
ξ
ξ
p&
⎩ = Wmi i1
課題の提出課題の提出
• 課題1の結果と考察、課題2の結果と考察を1つのPowerPointファイルにまとめ、寺田宛[email protected]に送ること
その際件名は「分子モデリング課題」とし 本• その際件名は「分子モデリング課題」とし、本文に氏名と学生証番号を明記すること