1. Poisson-Boltzmann, PB模型
============================

在量子化学计算和使用经典分子力学进行模拟中,常会用到隐式溶剂模型,特别是作为一种快速估算溶剂化自由能的方法,在蛋白-底物分子作用计算,和蛋白质折叠等方面特别有用。量子化学gauss中,还会经常用来估算溶剂中某些分子的pKa。那么,隐式溶剂如何做到不使用溶剂而估算溶剂的影响呢?它的原理是什么?

我们首先从最基本的问题谈起,即溶剂化效应是怎么回事。溶剂化效应是发生在溶剂中的很多化学现象的关键。它影响反应的自由能势能面,改变反应速率和热力学平衡。我们知道,一旦知道一个反应的势能面,我们就知道了它的全部热力学和动力学信息。举个例子,比如乙烷的二面角的旋转,如果我们把二面角作为反应坐标,则如果我们知道了这个旋转势能面,那么我们就知道了每个二面角取值的能量(势能),那么根据Boltzmann分布,我们可以计算任意温度下,乙烷对各二面角取值的分布概率:

{P_{torsion}}=exp(-E_{torsion}/kT) / P_0}

{P_{torsion}}是能量为{E_{torsion}}的构象的权重,而P0是配分函数,P0是把所有构象的权重加起来。

这个概率就是所谓的热力学平衡分布,即体系平衡后某构象的浓度等于总浓度乘以该构象的概率:
{C_{torsion} = C_{total} * P_{torsion}}

而动力学,就是翻越构象能垒的速率,可由能垒高度ΔE得到:
反应速率常数:{ k= exp^{-\Delta E/kT}}
反应速率由阿伦尼乌斯公式,即产物浓度变化:{ d/dt = A*k*C_{reactant}} (C_reactant为反应物浓度)

由上面可知反应势能面真的很厉害。有了反应势能面,别无他求。有些初学者往往觉得跑个Gauss没什么,做MD才给力。其实,如果量子化学计算能够计算势能面,干嘛要跑MD呢?MD不过是模拟体系在那个势能面上随时间的变化而已。不过,量子化学计算个单分子在气相中的反应,搜个过渡态啥的,很准确。但是对于溶剂中的反应呢?这时候,溶剂的作用,即溶剂分子在反应物分子周围来来往往的影响就不能不考虑了。回到上面乙烷的例子,如果在水里面旋转,肯定要受到水分子的阻力什么的影响。那么多的水分子,随便哪个分子动一下,阻力就不一样,这就是熵效应,即所有水分子的不同构象对乙烷旋转势能面的影响。在考虑了周围溶剂的影响后,乙烷的势能面已经不叫势能面了,而叫旋转自由能势能面。自由能包括内能和熵两个部分。当然,熵不仅包括溶剂的,也包括乙烷自身的构象熵,比如它自身在水里面的振动,转动,平动,都影响最后的自由能势能面结果。

那么,怎么考虑溶剂化效应对反应的势能面的影响呢?即,如果我们要计算自由能势能面,那有2个方法:第一,跑MD,随机模拟溶液体系的一些构象,然后根据体系中乙烷取各构象的概率,反推出自由能势能面;第二,不跑MD,还是用量子化学的方法来计算单个乙烷的旋转势能面,但是使用隐式溶剂模型,即使用一个经验的公式,来把溶剂的影响的平均结果考虑进来,这样,直接得出自由能势能面。

怎么平均化溶剂作用影响呢?学过高中物理的都知道,设置一个等效介电常数。即,真空中两电荷作用力 {F= (1/4\pi\epsilon_0)*q_1*q_2/r^2 }
那,放到溶剂中,{F= 1/4\pi\epsilon0*\epsilon_r*q_1*q_2/r^2 }
比如,水的{\epsilon_r=78 }

当然,我们在拉格朗日图景中,要使用能量而不是牛顿力学中的力。即,我们要求的双点电荷的Coulomb势能U(r12):
{U(r_{12})=(1/4\pi\epsilon_0)*q_1*q_2/r }

十分简单。But,wait a minute...实际的隐式溶剂模型,并不使用Coulomb公式,而是使用Poisson-Boltzmann公式!!!


为什么呢? 模型不一样。Coulomb公式用的是点电荷模型,q1, q2,距离r。但是,对于真实的分子,是由原子核加核外电子云构成,电子云是有体积的。量子化学计算就是核外电子云的密度变化。即使是使用经典分子力学力场, AMBER, CHARMM什么的,也是把原子看成是带电荷的,有半径r的球的,这样,必然每个原子附近都有不同的电荷密度。如果把原子看作点电荷,进行对加和计算,则收敛慢且截断误差很大。一个更聪明,更快速的办法是:把体系分成均匀格点,计算每个格点的静电势Φ(r),然后在该点上的电荷q(r)所具有的能量则为

{U(r) = q(r)*\phi(r) }

这样,最后把各点上的U(r)加起来,就得到总的静电势能U(注意静电势与静电势能的差别)。这就是Poisson方法的思想。Poisson与Coulomb对加和计算的差别,类似于量子化学计算中DFT方法与HF的差别, PB把Coulomb的多体作用转化为随空间变化的密度问题,势能等于密度乘以静电势。现在,最关键的,是静电势如何得到?它是由Poisson解决的。简单说,Poisson给出了一个微分方程,这个微分方程描述了介电常数,电荷密度分布和静电势的关系,给出了一个由一大片电子云或几个空间分布的带电原子球ρ(r)计算静电势Φ(r)的关系。

Poisson公式:

{\nabla = \rho(r)}

∇:拉普拉斯算符,可理解为一阶偏导
r: 表示空间格点,你可以把空间用线切割开,把r想象成一个个格点位置(注意跟上面的表示两电荷距离的r定义不同),格点是使用有限差分方法求解微分方程的常用方法
ε: 介电常数
Φ:所要求的静电势
ρ:各格点上的电荷密度分布

这里,Φ(r)是代表体系r处的静电势,是我们要求的量, 它的二阶导由该点的电荷密度ρ(r)及其介电常数ε(r)决定。虽然这个公式的物理意义我理解不了,但是我只需要知道通过它我们可以得到静电势Φ(r)就足够了,即由上式可得:

{\nabla^2\phi(r)=-4\pi*\rho(r)/\epsilon(r)}

这样,我们得到在各点r处静电势能的二阶导∇^2Φ(r),最后对整个盒子所有格点进行二重数值积分即可得到最终静电势,乘以各点上的电荷得到静电势能U(r) = q(r)*Φ(r)。MD中一般使用的计算静电势能的PME方法,即Particle Mesh Ewald方法,原理就是利用Poisson公式进行格点积分。

上面只说了Poisson公式,不是说隐式溶剂用的是Poisson-Boltamann公式吗?Boltzmann干了啥?

问题是这样的,上面的模型,用来计算蛋白质在一定浓度电解质溶液中的静电势能,存在一个系统误差,原因是没有考虑反离子的分布的贡献。蛋白质往往是带电荷的,结果在真实溶液体系中,在一个蛋白的不同表面处,往往分布着较高浓度的相反电荷。这叫离子氛模型。它造成的结果是,溶液中的静电作用的衰减要比由库仑公式计算的势能面的衰减快得多。这叫离子屏蔽效应。电解质溶液理论中使用Debye长度来屏蔽效应的强弱。但是Debye长度是一个经验量,无法很方便地定义。怎么能考虑这个屏蔽效应呢?

一个直接的想法是,把溶质比如蛋白附近的反离子浓度计算出来。即一个改变了的电荷分布: ρ(r)+ Δρ(r),其中后面一项Δρ(r)就是溶液体系中反离子的浓度在r处的分布。

即: {\nabla = \rho(r)+ \Delta\rho(r)}

通过这个改进的Poisson公式,可以更好的考虑蛋白质在电解质溶液即离子溶液中的静电势能。当然,由于反离子分布本身改变静电势能,而静电势能又改变反离子浓度分布,因此,这必然是个自洽计算。

那么怎么计算反离子浓度呢? Poisson-Boltzmann公式中的Boltzmann部分:

{\Delta\rho(r) = n_i(r) = n_i^0*exp(-q_i*\phi/kT)}

{n_i(r)}: 溶液中离子种类i在r处的数密度(可以是分数个)
{n_i^0(r)}: 溶液中离子种类i的平均数密度
{q_i}: 该种类离子的电荷
{\phi(r)}:盒子空间中该区域的静电势

上式的物理意义是,某离子在盒子内某处数密度对平均密度的偏差,与其在该处的造成的静电势能的大小成自然幂反比关系。换句话说,在蛋白附近处静电势Φ越高,则该处的反离子浓度越高,同号离子的浓度越低。因为前者造成能量下降,后者造成能量上升。

对于一般尺寸的盒子,由于在数千到数万个格点上进行含指数计算的自洽计算,收敛相当相当慢,伤不起,只好对该指数进行tylor展开为多项式,如果截取多项式到第一项,则ni与Φ为一个线性关系,这样的近似称为线性PB计算LPBE. LPBE对于不带净电荷的小分子来说是足够准确的;但是,对于带电荷的,特别是电荷浓度较大的体系,通常要取到第二项,ni是Φ的三次方的函数,这样的近似称为非线性PB计算NPBE。这方面的论文很多,尝试用各种妖娆的数值方式加快计算。简单了解一下上面这些名词很有必要。

在很多采用一阶近似的线性PB模型中,为了避免屏蔽效应考虑的不充分,会在Boltzmann那一部分的前面加上一个系数 {K'^2=8\pi*N_A*e^2*I/1000kT}, 直接考虑Debye-Hukel效应。其中 {Debye length=1/k = 1/\sqrt{(K'^2/\epsilon)}}


2. Gernalized Born - GB模型
===========================

为了计算一个半径为r,带净电荷为q的球的溶剂化自由能,即把它从气相移到介电常数为ε的溶剂中,Born提出了一个及其简单的计算公式:

{\Delta G_{elec}=-(q^2/2r)*(1/\epsilon-1)}

可以简单理解为,如果你想往溶剂里移动了一个电荷q,那么溶剂必然会被极化,在电荷所在位置产生了一个同号的q,你的移动必须克服这电荷与镜像之间的排斥力。

这个模型的奇妙之处在于只有一个可调参数,即半径r. 一开始born使用原子的共价半径r,计算结果虽然误差较大,但定性准确。考虑到模型的简单性,可以说是出乎意料。后来有人用vdW半径计算,误差大大减小,但仍需提高。于是,不断有人试图使用不同的半径,经验关联的,量子化学计算的。总而言之,Born半径是Born模型的关键。

Generalize Born模型,即广义Born模型,或一般化了的Born模型,是用它来估算分子的溶剂化自由能,即把分子中的每个组成原子用上面的模型估算一下,然后加和得到总的溶剂化自由能;你会问,分子表面的原子与溶剂的作用比较强,分子内部的原子与溶剂几乎没有作用,怎么能加和呢?不要紧,给分子不同位置的原子设置不同的有效半径即可,这个有效半径可以用来反应原子离表面的距离,或者说被埋的程度。另外,你必须注意到,每个原子不仅与自身的镜像作用,而且还会与其它原子作用。

{\Delta G_{elec}=-\sum\{(q_i^2/f_i)*(1/\epsilon-1)\}-\sum\{(q_i*q_j/f_{ij})*(1/\epsilon-1)}\}

前面一项就是原来的Born,后面一项是原子间两两作用。这两项中的r都被f取代了。f的计算:

{f=\sqrt{r_{ij}^2+a_{ij}^2*exp^{-D}}}  f等于原子间距rij和原子born半径aij按指数衰减的均方根;
{a_{ij}=\sqrt{a_i*a_j}} 其中有效半径aij等于两原子的有效半径的几何平均;
{D=r_{ij}^2/(2a_{ij})^2 } D是f中aij^2按指数衰减的幂,这个衰减类似于考虑周围反离子分布的屏蔽效应;

GB模型是PB模型的特例。(To be addressed)

当然,这里仅仅计算了静电作用对溶剂化自由能的贡献。还有一部分贡献来自于分子体积破坏了水分子间的氢键网络,从而产生的能量代价。这一部分的贡献对于中性分子的溶剂化自由能大概占10%。怎么计算这一部分的能量呢?先问破坏了H键网络的后果是什么呢?水分子在分子表面形成了表面张力,由朗格谬而,表面形成能等于表面张力乘以表面积,所以这部分自由能必然是表面积的线性函数。所以,要计算的就是溶剂可及表面solvent accessible area, SA。由于一般使用vdw半径作为探测溶剂可及表面的基准,所以可称之为ΔGvdw。
即: ΔGvdw = σ*A

最终: {\Delta G_{solvation} = \Delta G_{elec} + \Delta G_{vdw}}

因此,这种估算溶剂化自由能的方法称为GB/SA模型,分子模拟中有时称为MM/GBSA。必须注意有报道称MM/GBSA模拟多肽的构象得到的结果与显式溶剂模型的结果有显著的不同(参考英文wiki: implicit solvation - GBSA条目),其MM/GBSA不能正确识别蛋白native的结构。还有盐桥过于稳定的毛病,可能是因为屏蔽效应估计不足;alpha-helix的分布也明显高估。看来,这个PB的近似模型尽管简单,但是要慎重使用阿。

要想提高计算精度,可以使用PB/SA模型,即静电部分的贡献,占溶剂化自由能的主要部分(>90%),使用PB来计算。当然,这一部分要在几千个格点上做自洽计算,所以要慢的多。

参考文献
1. Wiki: implicit solvation
2. D. R. Livesay, Continuum Electrostatic Methods, http://coitweb.uncc.edu/~drlivesa/ITSC8311/ITSC8311_elec.pdf
3. P. Grochowski, J. Tryska, Continuum molecular electrostatics, salt effects, and counterion binding--a review of the Poisson-Boltzmann theory and its modifications. Biopolymers. (2008) 89, 93-113.
标题Generalize-Born应为Generalized-Born
第二段:“举个例子,比如乙烷的二面角的旋转”
修改为:“举个例子,比如真空中一个乙烷分子的二面角的旋转”
1. Poisson-Boltzmann, PB模型============================在量子化学计算和使用经典分子力学进行模拟中,常会用到隐式溶剂模型,特别是作为一种快速估算溶剂化自由能的方法,在蛋白-底物分子作用计算,和蛋白质折叠等方面特别有用。量子化学gauss中,还会经常用来估算溶剂中某些分子的pKa。那么,隐式溶剂如何做到不使用溶剂而估算溶剂的影响呢?它的
DFT的matlab源代码 我们已经实现了一个 隐式 溶剂 模型 ,该 模型 描述了静电,空化和分散对溶质与 溶剂 之间相互作用的影响,该溶入了平面波DFT代码VASP中。 我们的实现提供了一种计算有效的方法来计算 溶剂 化作用对分子和晶体表面以及React势垒的影响。 我们的 溶剂 模型 实现的优势在于其处理大型周期性系统(如金属和半导体表面)的能力,以及与标准超软伪电势和投影仪增强的波电势库的互操作性。 版本5.2.12或5.3.3或5.3.5或> 5.4.1。 编译器和库的要求与VASP相同([vasp wiki]()) 对于VASP版本= 5.2.12或5.3.3或5.3.5: VASP许可证禁止我们在github之类的公共平台上分发补丁文件。 如果您想将VASPsol与VASP 5.2.12、5.3.3或5.3.5一起使用,请联系Richard Hennig博士(rhennig mse.ufl.edu)或我(km468 cornell.edu)获取所需的补丁文件。 带来不便敬请谅解 将适当的接口修补程序应用于原始VASP源代码。 VASPsol
隐式 格式的MATLAB代码PLRMM(Plackett-Luce回归混合 模型 ) PLRMM提供了一种算法的Python实现,该算法可用于在一定数量的排名者中查找聚类并学习其排名功能。 我们称这类簇为首选项组。 每个排名由它在某些项目集上产生的排名集表示。 这些项目由其功能定义。 PLRMM是一种概率 模型 ,用于指定观察到的排名上的混合。 每个首选项组均通过其权重向量进行标识,权重向量是用于将项目特征空间中的点转换为其分数的回归系数。 分数用于在一个要排名的项目集上进行排名。 基本直觉是,分数越高,该项目在排名中的位置应越高。 准确地说,分数定义了所有可能项目排列的概率分布(称为Plackett-Luce 模型 ),每个观察到的排名都是该分布的样本。 如果对学习排名 模型 感兴趣(不使用混合建模),则PLR(Plackett-Luce回归)是在PLRMM的每个首选项组中定义的学习排名 模型 ,并且可以将预期数量的 模型 建模为特例。聚类为K 关键字:Plackett-Luce 模型 ,学习排名,概率 模型 ,期望最大化 可以在以下论文中找到有关算法和实验的详细说明: Maksim Tkach
泊松-玻尔兹曼 Poi sso n– Bolt zmann 方程的提出1.简要历史回顾1.1 基本原理1.2 方程推导 1.简要历史回顾 泊松-玻尔兹曼方程是用来计算电解质溶液中离子浓度和电荷密度分布的一个微分方程,其基本形式为 ∇2ϕ(r)=−4πϵ∑ici0ziqe−βziqϕ(r)(1)\nabla^2\phi(\textbf r)=-\frac{4\pi}{\epsilon}\sum_{i} c_i^0z_iqe^{-\beta z_iq\phi(\textbf r)} \tag{1}∇2ϕ(r)=−ϵ4π​i
隐式 格式的MATLAB代码morgen-天然气和能源网络 模型 降阶(版本0.99) morgen是一个开放源代码的MATLAB和OCTAVE测试平台,用于基于等温Euler方程相互比较燃气网络和其他能源网络系统的 模型 ,求解器和 模型 简化方法。 主分支必须成功完成测试! 源头必须包括:项目,版本,作者,许可证,摘要! MathWorks> 2020b 5.9(含) morgen已根据许可获得许可。 morgen是研究软件,正在开发中。 请通过其配套文件引用morgen平台: Himpe,S。Grundel和P. Benner:天然气和能源网络的现代订单减少; arXiv(math.OC):2011.12099,2021。 要尝试morgen SETUP "tests" folder lists scripts sample pipeline model reduction 古诺 模型 实际上是假定两个寡头厂商同时作出各自的产量决策的。 现在假设厂商1先决定它的产量,然后厂商2知道厂商1的产量后再做出它的产量决策。因此,在确定自己产量时,厂商1必须考虑厂商2将如何作出反应。其他假设与古诺 模型 相同,这一 模型 称为斯塔克伯格(Stackelberg) 模型 。 斯塔克尔伯格竞争 模型 是一个价...
文章目录读取训练数据BeautifulSoup处理获取词袋和向量预测结果使用随机森林分类器进行分类输出提交结果尝试使用xgb还是随机森林好用 教程地址: https://www.kaggle.com/c/word2vec-nlp-tutorial/overview/part-1-for-beginners-bag-of-words 读取训练数据 训练数据的内容是2500条电影评论。 impor...
http://blog.163.com/magicc_love/blog/static/18585366220142125836878/Entity Relationship Model - ER 模型 - 实体关系 模型 1976年Peter Chen首次提出了Entity Relationship Modeling(实体关系建模)概念,并发明了陈氏表示法Peter Chen’s Not