分号可以用来分段么_更高效的GMX分段模拟方法:修改tpr文件
■2020-11-01 22:42:18
在以前的一篇文章中, 我簡單說過基于GROMACS的分段模擬方法[1]. 這種方法非常通用, 幾乎能完成任意的功能, 且無須修改源代碼, 但是運行效率比較差, 因為每次運行mdrun都要重新生成tpr文件. 對大分子來說, 使用grompp生成tpr還是很耗時的, 可能會成為運行的瓶頸部分.
最近重新思考了一下這個問題, 想到, 在拓?fù)浜湍M參數(shù)不變, 只有坐標(biāo)或速度改變的情況下, 我們沒有必要重新運行g(shù)rompp生成tpr, 可以直接修改tpr中的坐標(biāo)或速度, 然后使用修改過的tpr運行模擬. 這應(yīng)該是不修改源代碼情況下能做到的最快方法了. 與此類似的另一種方法是直接修改cpt文件, 可以達到同樣的目的, 但適用情況有點不同.
tpr和cpt文件都是二進制文件, 格式比較復(fù)雜, 完全弄明白且自如地修改它們并不容易, 但如果只是修改其中的一部分, 就要簡單些.
對tpr的最簡單修改應(yīng)該是修改原子坐標(biāo)了. 在體系拓?fù)洳蛔兊那闆r下, 利用外部程序修改體系中部分原子的坐標(biāo), 然后使用mdrun直接運行修改后的tpr文件, 就可以將mdrun當(dāng)做一個引擎, 達到自己的目的.
這種方法的一個簡單應(yīng)用就是用GROMACS來做MC或?qū)? 剛性或柔性的都可以. 如果只是簡單地計算下單點的能量, 就是剛性的; 如果進行能量最小化, 那就是柔性的. 更復(fù)雜的能量, 或許可以使用先進行能量最小化再模擬一段時間的平均能量, 甚至可以使用基于MM-PBSA的自由能. 這些都是可行的, 理論上也沒有什么困難, 雖然效率可能不佳.
基于上面的想法, 我就嘗試寫了一個簡單的MC程序, 用來搜索能量最低的構(gòu)型. 拿一個小肽和石墨烯的體系做測試, 發(fā)現(xiàn)確實可以找到能量很低的構(gòu)型. 這說明拿mdrun作為模擬引擎來實現(xiàn)自己的MC程序確實可行, 而且也比較簡單, 只要關(guān)注MC移動部分就可以了, 能量計算, 構(gòu)型優(yōu)化都可以交由mdrun處理. 當(dāng)然, 缺點在于效率可能不夠好. 但對于普通體系來說, 效率可能也就夠了, 沒有必要弄得最高.
待完善
1.直接讀取edr文件中的能量, 而不是log文件中的, 這樣可能速度更好2.MC移動中除平移, 旋轉(zhuǎn)外, 增加其他操作, 如二面角改變3.MC移動中監(jiān)測移動的步長, 根據(jù)接受率調(diào)整步長, 使MC步驟更加高效4.其他MC中常用的一些做法5.試著修改tpr文件中的其他信息, 特別是拓?fù)湎嚓P(guān)的信息, 以期能夠在運行中增刪分子.
外部鏈接
[1] 基于GROMACS的分段模擬方法: https://jerkwin.github.io/2018/04/09/%E5%AE%9E%E6%97%B6%E6%94%B9%E5%8F%98GROMACS%E6%8B%93%E6%89%91%E7%9A%84%E5%88%86%E6%AE%B5%E6%A8%A1%E6%8B%9F%E6%96%B9%E6%B3%95/
總結(jié)
以上是生活随笔為你收集整理的分号可以用来分段么_更高效的GMX分段模拟方法:修改tpr文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机控制系统第1次作业,计算机控制系统
- 下一篇: mysql 备份 windows_win