mdp文件是能量最小化,NVT模擬,NPT模擬與MD模擬的必須文件。
mdp文件的詳細解釋可以參考官方文檔http://manual.gromacs.org/online/mdp_opt.html
接下來我將使用四個文件為例子來解釋mdp文件。
能量最小化minim.mdp
1 ; minim.mdp - used as input grompp to generate *.tpr
2 integrator = steep ; steep = steepest descent minimization 3 emtol = 1000.0 4 emstep = 0.01 5 nsteps = 50000 6 7 ; Parameters describing how to find the neighbors of each atom and how to calculate the interactions 8 nstlist = 1 9 cutoff-scheme = Verlet 10 ns_type = grid 11 coulombtype = PME 12 rcoulomb = 1.0 13 rvdw = 1.0 14 pbc = xyz
接下來我一行一行注解:
1.從";"到換行之間的字符將被視為注釋。此文件用於能量最小化(例如蛋白質剛放入溶劑,或者單純的蛋白質在真空中的能量最小化)
2.這不是積分,只是選項用了這個名字而已,采用最速下降法是因為這里我們想將能量最小化,而不是運行NVT模擬或者MD模擬。
3.當最大力小於1000kJ/mol/nm時停止模擬
4.能量步長
5.最大步數
7.下面的參數描述了如何搜尋近鄰原子並計算相互作用。
8.臨近列表與長程力計算更新頻率,1代表每步都更新
9.截斷方案:Verlet
10.臨近原子確定方案:可分為grid格點搜索和simple簡單搜索。grid即格點法,計算速度要比simple快很多。
11.計算長程庫倫力的方法:PME
12:短程庫倫力的截斷距離
13:短程范德華力的截斷距離
14:周期性邊界條件,在XYZ三個方向上均采用周期性邊界條件(Periodic Boundary Condition)
關於最速下降法:第2行
最速下降法不是最有效的搜索方法,但它很穩健並且容易實現。關於最速下降法可參考官方文檔P51.最速下降法中需要定義最大位移,並且每一步都會用到Fmax。
關於近鄰搜索:8-10行
配對列表的生成:只需要對一些粒子對 i,j之間的非鍵配對力進行計算, 在這些粒子對中, 粒子 ii和 j的最近映象之間的距離小於給定的截斷半徑 Rc. 如果彼此之間的相互作用已完全被鍵合作用
所考慮, 一些滿足這一條件的粒子對仍然會被排除. GROMACS使用了一個 配對列表, 其中包含了那些必須計算彼此之間非鍵力的粒子對. 這個列表中包含原子 i, 原子 i的位移向量,
距離原子 i的這個特殊映象rlist
范圍內的所有粒子 j. 該列表每nstlist
步更新一次, nstlist
的典型值為10. 有一個選項可用來計算每個粒子所受到的總的非鍵力, 這些力來源於圍繞列表截斷
值, 即距離在rlist
和rlistlong
之間的殼層中的所有粒子. 在更新配對列表時, 會計算這些力, 並在隨后的nstlist
中保持不變.為創建鄰區列表,必須找到與給定粒子相近(即在鄰居列表截斷內)
的所有粒子. 這種搜索通常被稱為鄰區搜索(NS, neighbor search)或對搜索(pair search), 涉及到周期性邊界條件和映象的確定。
鄰區截斷方案: 原子組與Verlet緩沖
GROMACS支持兩種不同的截斷方案設置: 最初的基於原子組的方案和使用Verlet緩沖區的方案. 它們之間存在一些非常重要的區別, 這些區別可能會影響計算結果, 計算性能和某些功能的支持情況. 組方案(幾乎)可以像Verlet方案一樣運行, 但這將導致性能降低. 對在模擬中常用的水分子, 組方案特別快, 但在最近的x86處理器中, 這種優勢消失了, 因為可以在Verlet方案的實現中使用更好的指令級並行. 在5.0版本中已經不再提倡使用組方案了, 將來的版本中將會刪除此方案.
在組方案中, 近鄰列表由至少含一個原子的原子對構成. 這些原子組最初是電荷組。
Verlet截斷方案默認使用緩沖對列表. 它也使用了原子團簇, 但這些不像在組方案中是靜態的. 相反, 團簇以空間定義, 包含4個或8個原子, 使用如SSE, AVX和GPU的CUDA等可方便地對此進行流計算. 在近鄰搜索步驟中, 使用Verlet緩沖創建對列表, 即對列表的截斷距離大於相互作用的截斷距離. 在計算非鍵力的內核中, 只有當一個原子對在特定時間步處於截斷距離之內時, 這個力才會被加入到近鄰列表中. 當原子在兩次對搜索步驟中移動時, 這確保了幾乎所有處於截斷距離內的原子之間的力都會被計算. 我們說, 幾乎 所有的原子, 是因為GROMACS使用了一個固定的對列表更新頻率以提高效率. 一個處於截斷距離外的原子對, 在這樣固定的步數中, 可能移動得足夠多以致處於截斷距離之內. 這種小概率事件會導致小的能量漂移, 而且概率的大小取決於溫度. 當使用溫度耦合時, 給定能量漂移的一定容差, 可以自動確定緩沖大小.
關於長程庫倫力的計算:11-14行
參考手冊4.8.1節。Ewald方法差不多是直接根據庫倫力公式去計算長程力,速度很慢,計算量巨大。一般不采用Ewald方法,而是采用PME(Particle-Mesh Ewald)方法,該方法
可以提高倒易空間加和的計算速度,這種方法不直接對波矢進行加和, 而是使用內插方法將電荷分配到網格上.先使用3DFFT算法對格點進行傅里葉變換, 在k空間中利用對格點的單個加和就可以得到倒易空間的能量項.
以上能量最小化的一個典型mdp文件,其中的一些解釋(近鄰搜索與長程庫倫力計算)在其他mdp文件中還能用到。