4.3.3. 水桥分析 MDAnalysis.analysis.hydrogenbonds.WaterBridgeAnalysis
- 作者:
吴志义
- 年:
2017-2018年
- 版权所有:
GNU公共许可证v3
- 维护员:
吴志毅<zhiyi.wu@gtc.ox.ac.uk>, @xiki-tempula 论GitHub
给出了一个 Universe
(具有1个或更多帧的模拟轨迹)测量选择1和选择2之间每个帧的所有水桥。水桥被定义为桥接水,它同时与选择1和选择2中的原子形成两个氢键。
在两个氢键受体之间可以形成水桥。
例如-CO2 - :···H−O−H···:- o2 c-
两个氢键施主之间也可以形成一座水桥。
例如-NH···:O:···HN-(式中O为桥水的氧)
氢键受体和另一个氢键供体可以通过水连接。
例如-CO2 - :···H−O:···HN-(其中H−O是 H−O −H)
高阶水桥被定义为一个以上的水桥接氢键的受体和给体。二阶水桥的一个示例:
例如-CO2 - :···H−O:···H−O:···HN-(其中H−O是 H−O −H)
以下关键字参数对于控制水桥分析的行为很重要:
water_selection (
resname SOL
): the selection string for the bridging water订单 水桥两端的最大桥数
供体-受体 距离 (?):3.0
角度 截止日期 (度):120.0
力场 在不同力场的默认值之间切换
捐赠者 和 接受者 原子类型(添加其他原子名称)
4.3.3.1. 理论
该模块试图通过类似于广度优先搜索的方法来寻找多阶水桥,其中选择了选择1的第一个溶剂化壳,然后选择第二个溶剂化壳以及选择1中的任何氢键伙伴。之后,检测到第三个溶剂化壳以及选择2中的任何结合伙伴。重复这一过程,直到达到水桥的最大订单。
4.3.3.2. 作为网络输出
因为连接选择两端的水域本质上是一个网络。我们提供了水网络的网络表示。每帧返回水桥数据,该数据存储在 WaterBridgeAnalysis.results.network
。每一帧被表示为词典,其中关键字是源自选项1的氢键,并且值是表示从与选项1形成氢键的相应分子中产生的氢键的新词典。
至于达到选择2的氢键,相应键的值为无。其中选择1和选择2由也与另一水(B)氢键连接的一个水分子(A)连接的一个实例将表示为:
# (selection 1)-O:···H-O(water 1):···H-(selection 2)
# | :
# H·············O-H(water2)
# H
{(sele1_acceptor, None, water1_donor, water1_donor_heavy, distance, angle):
{(water1_acceptor, None, sele2_donor, sele2_donor_heavy,
distance, angle): None},
{(water1_donor, water1_donor_heavy, water2_acceptor, None,
distance, angle):
{(water2_acceptor, None, sele2_donor, sele2_donor_heavy,
distance, angle): None}
},
}
原子用原子指数表示,如果原子是氢键给体,则后面跟着相应重原子的指数 (donor_proton, donor_heavy_atom)
。如果原子是氢键受体,后面就没有氢键。
4.3.3.3. 作为时间序列输出
对于较低阶的水桥,可能需要将连接表示为 WaterBridgeAnalysis.results.timeseries
。每帧返回结果,并且是选项1或选项2与桥接水之间的氢键的列表。由于高阶水桥的复杂性,以及三阶和四阶水桥中都可能出现两水之间的一个氢键,因此,高阶水桥中的氢键 WaterBridgeAnalysis.results.timeseries
属性以深度优先的搜索方式生成,以避免重复。示例代码说明如何 WaterBridgeAnalysis.results.timeseries
已生成::
def network2timeseries(network, timeseries):
'''Traverse the network in a depth-first fashion.
expand_timeseries will expand the compact representation to the
familiar timeseries representation.'''
if network is None:
return
else:
for node in network:
timeseries.append(expand_timeseries(node))
network2timeseries(network[node], timeseries)
timeseries = []
network2timeseries(network, timeseries)
一个例子就是。**
results = [
[ # frame 1
[ <donor index>, <acceptor index>,
(<donor residue name>, <donor residue number>, <donor atom name>),
(<acceptor residue name>, <acceptor residue number>,
<acceptor atom name>),
<distance>, <angle>],
....
],
[ # frame 2
[ ... ], [ ... ], ...
],
...
]
使用 WaterBridgeAnalysis.generate_table()
方法一可以将结果重新格式化为扁平的“标准化”表,以便更容易地导入到数据库或数据帧中进行进一步处理。
4.3.3.4. 水上桥梁的检测
如果桥接水同时与选择1和选择2形成氢键,则记录水桥。
氢键的检测基于几何标准:
受体与氢之间的距离小于或等于 distance (默认为3?)。
给氢受体夹角大于或等于 angle (缺省值为120?)。
分界值 angle 和 distance 可以设置为关键字 WaterBridgeAnalysis
。
从原子名称中检测到施主和受主重原子。当前默认设置适用于表中定义的CHARMM27和GLYCAM06力场 Default atom names for water bridge analysis 。
根据氢原子与施主的距离来搜索与施主相连的氢原子。该算法搜索所有氢(名称“H*”或名称“ [123] H“或类型”H“)与施主原子相同的残基,截止距离为1.2?
组 |
捐助者 |
接受者 |
评论 |
---|---|---|---|
主链 |
N |
O、OC1、OC2 |
来自amber99sb-ildn(Gromacs)的OC1、OC2 |
水 |
俄亥俄州俄亥俄州 |
俄亥俄州俄亥俄州 |
SPC、TIP3P、TIP4P(CHARMM27、Gromacs) |
ARG |
Ne、NH1、NH2 |
||
ASN |
ND2 |
OD1 |
|
ASP |
OD1、OD2 |
||
CYS |
SG |
||
CYH |
SG |
CyS可能出现假阳性 |
|
GLN |
Ne2 |
Oe1 |
|
GLU |
Oe1、Oe2 |
||
HIS |
ND1、NE2 |
ND1、NE2 |
H的存在决定了供体是否 |
HSD |
ND1 |
Ne2 |
|
HSE |
Ne2 |
ND1 |
|
HSP |
ND1、NE2 |
||
LYS |
NZ |
||
MET |
SD |
参见例如 [Gregoret1991] |
|
SER |
OG |
OG |
|
THR |
OG1 |
OG1 |
|
TRP |
NE1 |
||
TYR |
OH |
OH |
元素 |
捐助者 |
接受者 |
---|---|---|
N |
N、NT、N3 |
N,NT |
O |
哦,哇! |
O、O2、OH、OS、OW、OY |
S |
SM |
CHARMM27力场的施主和受主名称也适用于例如OPLS/AA或琥珀(在Gromacs中测试)。表中的残留物名称仅供参考,在确定接受者和捐赠者时不作考虑。这可能会导致对组氨酸或胞嘧啶等残基的供体/受体的分配有一定的模糊性。
有关GLYCAM06中的命名约定的更多信息,请参阅 Carbohydrate Naming Convention in Glycam 。
通过提供原子名称列表,可以扩展施主和受主名称列表 donors 和 acceptors 关键字至 WaterBridgeAnalysis
。如果这些列表完全不合适(例如,当分析使用非常不同的原子名称的力场进行的模拟时),则应该使用 forcefield 不设置默认值或派生新类并自行设置默认列表的步骤:
class WaterBridgeAnalysis_OtherFF(WaterBridgeAnalysis):
DEFAULT_DONORS = {"OtherFF": tuple(set([...]))}
DEFAULT_ACCEPTORS = {"OtherFF": tuple(set([...]))}
然后只需使用新类而不是父类,并使用 `forcefield` = "OtherFF"
。还请考虑将重原子名称列表提供给MDAnalysis。
参考文献
Lydia M. Gregoret, Stephen D. Rader, Robert J. Fletterick, and Fred E. Cohen. Hydrogen bonds involving sulfur atoms in proteins. Proteins: Structure, Function, and Bioinformatics, 9(2):99–107, 1991. doi:https://doi.org/10.1002/prot.340090204.