GROMACS のトラジェクトリにおける溶質の指定について

200 views
Skip to first unread message

uran ry

unread,
Sep 21, 2015, 7:55:38 PM9/21/15
to ermod-users
開発者の皆様
お世話になります。


GROMACS で混合溶媒の中に水分子を追加する際の自由エネルギーを求めるために、ermodを利用しようとしています。
このシステムのなかにはもともと数百個の水分子が入っており、その中に新たに水分子を追加しようとしています。
この場合、溶液系において、水分子の一部を溶質、残りを溶媒として指定したいのですが、
見たところ、gen_structure を実行時に溶質を指定する方法は、分子名がメインになっているようなのですが、
上のように分子を分割することは可能でしょうか?

よろしくおねがいします
浦野


Nobuyuki MATUBAYASI

unread,
Sep 22, 2015, 3:44:01 AM9/22/15
to ermod-users
浦野さん

松林です。まず、
を見ていただけますか?
水分子を溶質に指定すれば、全水分子が順番に溶質扱いされます。

ただし、例えば、タンパク質の内部水だけを溶質にするには、
内部水に、別の分子名を付けて、それを溶質に指定する形になります。

もし、上の1つ目のパターンであれば、全水分子を、1個づつ、順々に溶質にしますので、
計算は早く終わります(MDは短くてもエラーが小さい)

uran ry

unread,
Sep 24, 2015, 5:01:22 PM9/24/15
to ermod-users
松林様
返信ありがとうございます
ページを確認させていただきました。
上のような状況ですと、ひとつの水分子を入れる場合他の水分子を溶媒の一部として計算される仕様になっているということですね。

私がおこないたい状況というのは、どちらかというと、複数の水分子をまとめて、挿入したいので、
多分この場合、内部水に別の分子名をつけて、行う状況のほうが近いと思います。
この場合も、別名をつけた水分子をまとめてひとつの分子として扱いたい(ここの分子を挿入するのではなくて)のですが、
それをする方法はどのようにあるのでしょうか?

現在別分子の名前をつける方法として採用しましたのは、gen_structure を実行時にGROMACS の.top ファイルの中で,
[ molecules ]
; Compound        #mols
Other_chain_B       1
Other_chain_C       1
SOL               630

[ molecules ]
; Compound        #mols
Other_chain_B       1
Other_chain_C       1
SOL               560
LIG                 70
と分けてのち、、ermodを実行させたところ、溶質の力場のファイルは1つの水分子のパラメータとなっており
計算はされましたが、エネルギーはどうやら水分子をひとつだけ入れた場合のようでした。

この場合、いくつかの疑問が生じます。
1) まず、トラジェクトリの読み込みの順序は上の場合、もともとの630 この水分子が 560 と70 に分けられたのですが、トラジェクトリの座標を読み込む際にも上の順序ですと、
最後の70 この座標がLIG の座標として使われているとみてよいのでしょうか?
2) 現在のuvrage.tt を見る限り、LIGも水分子が個別に扱われているようなのですが、これを一つとして取り扱うにはどうすればよろしいでしょうか?

それから、少し話が変わるのですが、ermod のwiki でmol_dissection のページがアクセスできないのは仕様なのでしょうか?

以上よろしくお願いします

浦野


2015年9月22日火曜日 3時44分01秒 UTC-4 Nobuyuki MATUBAYASI:

Nobuyuki MATUBAYASI

unread,
Sep 25, 2015, 1:08:28 AM9/25/15
to ermod-users
浦野さん

松林です


私がおこないたい状況というのは、どちらかというと、複数の水分子をまとめて、挿入したいので、
多分この場合、内部水に別の分子名をつけて、行う状況のほうが近いと思います。
その状況であれば、そうですね
 
この場合も、別名をつけた水分子をまとめてひとつの分子として扱いたい 
(ここの分子を挿入するのではなくて)のですが、それをする方法はどのようにあるのでしょうか?
現在別分子の名前をつける方法として採用しましたのは、gen_structure を実行時にGROMACS の.top ファイルの中で,
[ molecules ]
; Compound        #mols
Other_chain_B       1
Other_chain_C       1
SOL               630

[ molecules ]
; Compound        #mols
Other_chain_B       1
Other_chain_C       1
SOL               560
LIG                 70
と分けてのち、ermodを実行させたところ、溶質の力場のファイルは1つの水分子のパラメータと 
なっており、計算はされましたが、エネルギーはどうやら水分子をひとつだけ入れた場合のようでした。
上のようにして、LIGを溶質とすると、確かに、70個の水分子が溶質になります 

この場合、いくつかの疑問が生じます。
1) まず、トラジェクトリの読み込みの順序は上の場合、もともとの630 この水分子が 560 と70 に分けられたのですが、トラジェクトリの座標を読み込む際にも上の順序ですと、
最後の70 この座標がLIG の座標として使われているとみてよいのでしょうか?
はい、その通りです。
 
2) 現在のuvrage.tt を見る限り、LIGも水分子が個別に扱われているようなのですが、これを一つとして取り扱うにはどうすればよろしいでしょうか?

上の1)2)をまとめての話ですが、まず、MDinfoを見てみて下さい。
(trajectoryのframe数)   4
1    1    560    70
(chain_Bの原子数)  (chain_Cの原子数)  3  3
といった感じになっていると思います。
そして、この書式とtrajectory fileの対応なのですが、
まず、(chain_Bの原子数)の座標を読み取り、chain_Bというspeciesに割振り、
次に、(chain_Cの原子数)の座標を読み取り、chain_Cというspeciesに割振り、
さらに、3個の座標を読み取って3つ目のspeciesに割り振る、というのを、560回繰り返し、
そして、3個の座標を読み取って4つ目のspeciesに割り振る、というのを、70回繰り返す、
ということをします。
そこで、70個の水分子をまとめて、1つの溶質にしたければ、MDinfoを
(trajectoryのframe数)   4
1    1    560    1
(chain_Bの原子数)  (chain_Cの原子数)  3  210
という風にすれば良いです。4つめのspeciesが210個の原子からなるものであると解釈します。
ただし、その場合は、4つめのspeciesに対応するSltInfoを書き換える必要があります。
現状のSltInfoは、多分、3行からなっていて、各行が酸素と水素原子に対応していると思います。
これを拡張(?)して、210個の原子からなるものにします。
具体的には、現状のSltInfoを70回繰り返しコピーして、210行からなるファイルにすることにします。
最初の3行が、1つ目の水分子に関する酸素・水素の情報になり、
次の3行が、2つ目の水分子に関する情報になり・・・という具合です。
上のようにすれば、できると思います

ただし、70個の水分子を「溶質」にするというのは、かなり難しい計算になるかもと思います。
refsなんかがうまく行かないかもしれません。

 
ermod のwiki でmol_dissection のページがアクセスできないのは仕様なのでしょうか?
まだ、書いていないのです。すみません 
Message has been deleted

uran ry

unread,
Sep 25, 2015, 8:00:55 PM9/25/15
to ermod-users
松林様

返信ありがとうございます、

座標読み込みは問題ないということがわかりました、それから、

2) 現在のuvrage.tt を見る限り、LIGも水分子が個別に扱われているようなのですが、これを一つとして取り扱うにはどうすればよろしいでしょうか?

上の1)2)をまとめての話ですが、まず、MDinfoを見てみて下さい。
(trajectoryのframe数)   4
1    1    560    70
(chain_Bの原子数)  (chain_Cの原子数)  3  3
といった感じになっていると思います。
そして、この書式とtrajectory fileの対応なのですが、
まず、(chain_Bの原子数)の座標を読み取り、chain_Bというspeciesに割振り、
次に、(chain_Cの原子数)の座標を読み取り、chain_Cというspeciesに割振り、
さらに、3個の座標を読み取って3つ目のspeciesに割り振る、というのを、560回繰り返し、
そして、3個の座標を読み取って4つ目のspeciesに割り振る、というのを、70回繰り返す、
ということをします。
そこで、70個の水分子をまとめて、1つの溶質にしたければ、MDinfoを
(trajectoryのframe数)   4
1    1    560    1
(chain_Bの原子数)  (chain_Cの原子数)  3  210
という風にすれば良いです。4つめのspeciesが210個の原子からなるものであると解釈します。
ただし、その場合は、4つめのspeciesに対応するSltInfoを書き換える必要があります。
現状のSltInfoは、多分、3行からなっていて、各行が酸素と水素原子に対応していると思います。
これを拡張(?)して、210個の原子からなるものにします。
具体的には、現状のSltInfoを70回繰り返しコピーして、210行からなるファイルにすることにします。
最初の3行が、1つ目の水分子に関する酸素・水素の情報になり、
次の3行が、2つ目の水分子に関する情報になり・・・という具合です。
上のようにすれば、できると思います

実際この手順にしたがって計算してみましたが、
いくつか気になるメッセージが出ました
1つめ、gen_structureの実行時に
Warning: force-switching in GROMACS is unsupported, and potential-switch is used instead (leading possibly to inconsistent result)
というのがでました、これはどのオプションが関係しているのでしょうか?
2つめ, soln にて実行時に
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO
というのがでるのですが、これはどのような内容なのでしょうか?
 
ただし、70個の水分子を「溶質」にするというのは、かなり難しい計算になるかもと思います。
refsなんかがうまく行かないかもしれません。

すいません、この場合うまく行かないかもしれないということはどのようなことを意味しているのでしょうか?
水分子70こと言うのはある程度の大きさのタンパク質1個よりも小さいので、タンパク質の溶媒和自由エネルギーが求められるならば、
このくらいなら大丈夫だろうと
私はおもったのですが、どのレベルで問題が生じるのでしょうか?
私の理解する限り理論上は特に問題はないはずですが、実用上では
水分子を70個挿入するのが難しいということですか?
エネルギー計算上はそれでもタンパク質一つよりは小さいと思うのですが。

 
 
ermod のwiki でmol_dissection のページがアクセスできないのは仕様なのでしょうか?
まだ、書いていないのです。すみません 
tool はあったので、アクセス権が設定されないだけかと思いましたら、未実装ということですね
わかりました

何度も申し訳ありませんがよろしくお願いします
浦野
 

Nobuyuki MATUBAYASI

unread,
Sep 27, 2015, 11:47:18 PM9/27/15
to ermod-users
浦野さん

松林です


いくつか気になるメッセージが出ました
1つめ、gen_structureの実行時に
Warning: force-switching in GROMACS is unsupported, and potential-switch is used instead (leading possibly to inconsistent result)
というのがでました、これはどのオプションが関係しているのでしょうか?
これなんですが、ver 0.3.1 までは、gromacsでのforce switchingに対応していませんで、
potential switchだけに対応しました.
先週末に、ver 0.3.2 をリリースしまして、gromacsでのforce switchingに対応するようになりました。
ver 0.3.2 では、上のwarningは無くなります
 
2つめ, soln にて実行時に
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO
というのがでるのですが、これはどのような内容なのでしょうか?
にある通り、 Mac OS Xかcygwinで走らせると出ます。
そちらの環境は、Mac OS Xかcygwinでしょうか?
何故出るのか良く分らないのですが、結果を見る限りは、問題は無さそうです

ただし、70個の水分子を「溶質」にするというのは、かなり難しい計算になるかもと思います。
refsなんかがうまく行かないかもしれません。
この場合うまく行かないかもしれないということはどのようなことを意味しているのでしょうか?
原理的には問題ないのですが、
「溶質」の構造が、真空中と溶液中でかけ離れていると、
エネルギーの分布関数が重ならず、 slvfeの際に計算が停まります。
それで、70個の水分子からなる「溶質」なのですが、
具体的な系は分かりませんが、
solnの場合=タンパク質周り?での70個の水分子の配置と
refsの場合=真空中の70個の水分子の配置は、随分違うのかな、と思いました。
真空中の70個の水分子のMDの際に、
何からのorder parameterを入れて、umbrella samplingなどをして、
soln系の水の配置に近くなるように、真空中配置を生成すれば良いかもしれませんが。
その場合は、「本当の」真空中の配置ではないので、
真空MDの配置にある重みを付けてinsertionをする必要が出てきます。
ですので、うまいumbrellaがあるのかな?ということで、うまく行かないかも、と述べました。
ちなみに、重み付きinsertionですが、
の中の wgtins というところに記述があります

松林

uran ry

unread,
Oct 16, 2015, 6:02:40 PM10/16/15
to ermod-users
松林様
返信できていなくてすみませんでした、返答ありがとうございます。


これなんですが、ver 0.3.1 までは、gromacsでのforce switchingに対応していませんで、
potential switchだけに対応しました.
先週末に、ver 0.3.2 をリリースしまして、gromacsでのforce switchingに対応するようになりました。
ver 0.3.2 では、上のwarningは無くなります
情報ありがとうございます、新しいのをダウンロードしました。

 
 
2つめ, soln にて実行時に
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO
というのがでるのですが、これはどのような内容なのでしょうか?
にある通り、 Mac OS Xかcygwinで走らせると出ます。
そちらの環境は、Mac OS Xかcygwinでしょうか?
何故出るのか良く分らないのですが、結果を見る限りは、問題は無さそうです
私の利用マシンは
$uname -a
Linux  2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
のようにlinux です。
まあ、結果に影響がでるようなメッセージではないということですね。わかりました
 

ただし、70個の水分子を「溶質」にするというのは、かなり難しい計算になるかもと思います。
refsなんかがうまく行かないかもしれません。
この場合うまく行かないかもしれないということはどのようなことを意味しているのでしょうか?
原理的には問題ないのですが、
「溶質」の構造が、真空中と溶液中でかけ離れていると、
エネルギーの分布関数が重ならず、 slvfeの際に計算が停まります。
それで、70個の水分子からなる「溶質」なのですが、
具体的な系は分かりませんが、
solnの場合=タンパク質周り?での70個の水分子の配置と
refsの場合=真空中の70個の水分子の配置は、随分違うのかな、と思いました。
真空中の70個の水分子のMDの際に、
何からのorder parameterを入れて、umbrella samplingなどをして、
soln系の水の配置に近くなるように、真空中配置を生成すれば良いかもしれませんが。
その場合は、「本当の」真空中の配置ではないので、
真空MDの配置にある重みを付けてinsertionをする必要が出てきます。
なるほど、確かに、結合分離ができる複数粒子が真空中に存在する状況をシミュレーションする
というのは、ちょっと条件がわからないですね。

確認したいのですが、必要な熱力学過程は真空中の溶質結合からは変わりますが
70この水分子を普通に溶媒中にあるとしての、binding もエネルギー表示では利用可能でしょうか?
タンパク質のbinding を論文でされていたので大丈夫だとおもっているのですが。図でいうと次の状況で
                                                                  Delta G
(Water300 in solvent) + (Water70 in solvent)    =>        (Water370 in solvent)
                                                               
Ref をWater300 in solvent、 solute をWater 70 in solvent, soln をWater370 in solvent
でサンプリング(solvent はこの場合、有機溶媒です)して、 Delta G を求めるということです。


 
ですので、うまいumbrellaがあるのかな?ということで、うまく行かないかも、と述べました。
ちなみに、重み付きinsertionですが、
の中の wgtins というところに記述があります

重み付きinsertion はそういう状況で使うということですね。わかりました。
返答できていなくてすみませんでした

浦野
 

 

Nobuyuki MATUBAYASI

unread,
Oct 19, 2015, 7:00:25 AM10/19/15
to ermod-users
浦野さん

松林です


確認したいのですが、必要な熱力学過程は真空中の溶質結合からは変わりますが
70この水分子を普通に溶媒中にあるとしての、binding もエネルギー表示では利用可能でしょうか?
タンパク質のbinding を論文でされていたので大丈夫だとおもっているのですが。図でいうと次の状況で
                                                                  Delta G
(Water300 in solvent) + (Water70 in solvent)    =>        (Water370 in solvent)                                                               
Ref をWater300 in solvent、 solute をWater 70 in solvent, soln をWater370 in solvent
でサンプリング(solvent はこの場合、有機溶媒です)して、 Delta G を求めるということです。
この場合は、水70個を、上のsolventに入れるということですね?
原理的には問題ないと思いますが、具体的には、どんな状況でしょうか?
2つの溶媒の相互溶解可能性を調べるような感じでしょうか?
 

uran ry

unread,
Oct 19, 2015, 12:18:51 PM10/19/15
to ermod-users
松林様
浦野です、返信ありがとうございます


2015年10月19日月曜日 7時00分25秒 UTC-4 Nobuyuki MATUBAYASI:
はい、状況的には、有機溶媒中に界面活性剤と水分子が凝集していて、その中に、
さらに水分子を入れる場合の自由エネルギー差を求める予定です。
つまり、界面活性剤の数が固定されているとしたら、
水分子が700 + 70 => 770
水分子が770 +70 => 840
水分子が630 +70 => 700
のようにそれぞれの状況での自由エネルギー差を求める予定です

浦野

Nobuyuki MATUBAYASI

unread,
Oct 19, 2015, 11:36:54 PM10/19/15
to ermod-users
浦野さん

ここから先は、実際に計算される系に依存する話で、現時点ではオープンにできない面があると思いますが、
僕が勝手に思うところでは、

水分子が N (refs) + 1 (insertion) => N + 1 (solution)

というのを、飛び飛びの N でやる方が、もしかしたら良いのかもしれません。
ミセルの会合数のように、N がある幅で存在していて、
一義的な「ベスト N」に大きな意義がないかもしれないので。

いい加減な推測で言っています。ご参考までに、ということで、流していただいて結構です

松林
Message has been deleted

uran ry

unread,
Oct 22, 2015, 1:50:17 PM10/22/15
to ermod-users
松林様
返信ありがとうございます、
2015年10月19日月曜日 23時36分54秒 UTC-4 Nobuyuki MATUBAYASI:
原理的にはまとめてでも、できるということですので、いろいろ数を変えて試してみることにします
ありがとうございます

浦野

 
Reply all
Reply to author
Forward
0 new messages