4.7.2.1. 径向分布函数 MDAnalysis.analysis.rdf
This module contains two classes to calculate radial pair distribution functions (radial distribution functions or "RDF"). The RDF \(g_{ab}(r)\) between types of particles \(a\) and \(b\) is
它被归一化,使得对于同质系统中的大间隔,RDF变为1。RDF有效地统计了 \(b\) 隔着一层壳的邻居们 \(r\) 大约在一个 \(a\) 粒子,并将其表示为密度。
径向累积分布函数为
和平均数量的 \(b\) 半径内的颗粒 \(r\)
(具有适当的密度 \(\rho\) )。后一函数可用于例如计算配位数,例如第一溶剂化壳层中的邻居数 \(N(r_1)\) 哪里 \(r_1\) 中第一个最小值的位置。 \(g(r)\) 。
我们提供了计算粒子密度的选项 \(b\) 在远处的一个贝壳里 \(r\) 大约在一个 \(a\) 粒子,这是
- class MDAnalysis.analysis.rdf.InterRDF(g1, g2, nbins=75, range=(0.0, 15.0), norm='rdf', exclusion_block=None, exclude_same=None, **kwargs)[源代码]
径向分布函数
InterRDF
是一种计算两组原子之间平均径向分布函数的工具。假设我们有两个原子组A
和B
。A
包含原子A1
,A2
,以及B
包含B1
,B2
。vt.给出A
和B
至InterRDF
,则输出将是以下RDF的平均值A1
和B1
,A1
和B2
,A2
和B1
,A2
和B2
。一个典型的应用是计算溶剂本身或与另一种溶质的RDF。这个 radial distribution function 是通过组织图中所有粒子之间的距离来计算的 g1 和 g2 同时通过最小图像约定考虑周期性边界条件。
这个 exclusion_block 关键字可用于从计算中排除一组距离。
结果在属性中可用
results.rdf
和results.count
。- 参数:
g1 (AtomGroup) -- 第一个原子组
g2 (AtomGroup) -- 第二原子基团
nbins (int) -- 直方图中的条件数
norm (str, {'rdf', 'density', 'none'}) -- 对于‘rdf’计算 \(g_{ab}(r)\) 。对于“密度”来说 single particle density \(n_{ab}(r)\) 是经过计算的。‘None’计算每个球壳中出现的粒子的数量。。。添加的版本::2.3.0
exclusion_block (tuple) -- 表示要从距离数组中排除的平铺的元组。
exclude_same (str) -- 将排除共享相同“残基”、“段”或“链”的原子对。这些是唯一有效的值。这是为了消除由于直接键合连接而在空间上相关的原子。
verbose (bool) -- 如果设置为,则显示计算的详细进度 True
- results.bins
numpy.ndarray
在世界的中心 nbins 直方图箱。在 2.0.0 版本加入.
- 类型:
- bins
的别名
results.bins
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.bins
取而代之的是。- 类型:
- results.edges
numpy.ndarray
的 nbins + 1 直方图箱的边缘。在 2.0.0 版本加入.
- 类型:
- edges
的别名
results.edges
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.edges
取而代之的是。- 类型:
- results.rdf
numpy.ndarray
的 radial distribution function 属性的值results.bins
。在 2.0.0 版本加入.
- 类型:
- rdf
的别名
results.rdf
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.rdf
取而代之的是。- 类型:
- results.count
numpy.ndarray
表示所有对象的径向直方图,即原始计数results.bins
。在 2.0.0 版本加入.
- 类型:
- count
的别名
results.count
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.count
取而代之的是。- 类型:
示例
首先创建
InterRDF
对象,方法是提供两个原子组,然后使用run()
方法:rdf = InterRDF(ag1, ag2) rdf.run()
结果可通过
results.bins
和results.rdf
属性::plt.plot(rdf.results.bins, rdf.results.rdf)
这个 exclusion_block 关键字允许屏蔽来自同一分子内的配对。例如,如果每个分子中每个原子有7个,则排除掩码
(7, 7)
可以使用。在 0.13.0 版本加入.
在 1.0.0 版本发生变更: 支持 start , stop ,以及 step 关键字已删除。相反,这些应该传递给
InterRDF.run()
。在 2.0.0 版本发生变更: 将结果存储为属性 bins , edges , rdf 和 count 的 results 的属性
AnalysisBase
。
- class MDAnalysis.analysis.rdf.InterRDF_s(u, ags, nbins=75, range=(0.0, 15.0), norm='rdf', density=False, **kwargs)[源代码]
场地特定径向分布函数
计算场地特定的径向分布函数。它将原子基团对列表作为输入而不是两组原子,
[[A, B], [C, D], ...]
。在相同的情况下A
和B
至InterRDF_s
,则输出将是以下各个RDF的列表A1
和B1
,A1
和B2
,A2
和B1
,A2
和B2
(类似地,对于C
和D
)。如果人们对配体在结合位置的溶剂化壳感兴趣,或者对蛋白质中特定残基的溶剂化感兴趣,则通常计算这些位点特定的径向分布函数。- 参数:
u (Universe) -- 一个包含原子的宇宙 ags 。。已弃用::2.3.0此参数是多余的,将在MDAnalysis 3.0.0中删除。
nbins (int) -- 直方图中的条件数
norm (str, {'rdf', 'density', 'none'}) -- 对于‘rdf’计算 \(g_{ab}(r)\) 。对于“密度”来说 single particle density \(n_{ab}(r)\) 是经过计算的。‘None’计算每个球壳中出现的粒子的数量。。。添加的版本::2.3.0
density (bool) --
False :计算 \(g_{ab}(r)\) ; True :计算真值 single particle density \(n_{ab}(r)\) 。 density 重写 norm 参数。
在 1.0.1 版本加入: 此关键字从0.19.0开始可用,但未记录在案。此外,它还有相反的含义。从1.0.1开始,正式支持它,如文档所示。
自 2.3.0 版本弃用: 而不是 density=True 使用 norm='density'
- results.bins
numpy.ndarray
在世界的中心 nbins 直方图箱;所有单个站点特定的RDF都有相同的箱。在 2.0.0 版本加入.
- 类型:
- bins
的别名
results.bins
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.bins
取而代之的是。- 类型:
- results.edges
数组中的
nbins + 1
直方图箱的边缘;所有单个站点特定的RDF都有相同的箱。在 2.0.0 版本加入.
- 类型:
- edges
的别名
results.edges
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.edges
取而代之的是。- 类型:
- results.rdf
list
特定于站点的 radial distribution functions 如果 norm='rdf' 或 density functions 对于bins
如果 norm='density' 。该列表包含len(ags)
参赛作品。的每个条目i
-第4对 [A, B] = ags[i] 在……里面 ags 是一种numpy.ndarray
有形状的(len(A), len(B))
即一堆RDF。例如,results.rdf[i][0, 2]
是原子之间的RDF吗A[0]
和B[2]
。在 2.0.0 版本加入.
- 类型:
列表
- rdf
的别名
results.rdf
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.rdf
取而代之的是。- 类型:
列表
- results.count
list
站点特定的径向直方图,即原始计数results.bins
。数据的结构与results.rdf
只是数组包含原始计数。在 2.0.0 版本加入.
- 类型:
列表
- count
的别名
results.count
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.count
取而代之的是。- 类型:
列表
- results.cdf
list
特定于站点的 cumulative counts ,为所有人results.bins
。数据的结构与results.rdf
除了数组包含累计计数之外。此属性仅在以下情况下存在
get_cdf()
已经运行过了。在 2.0.0 版本加入.
- 类型:
列表
- cdf
的别名
results.cdf
属性。自 2.0.0 版本弃用: 该属性将在3.0.0中删除。使用
results.cdf
取而代之的是。- 类型:
列表
示例
首先创建
InterRDF_s
对象,通过提供一个语义层和一个原子组对列表,然后使用run()
方法:from MDAnalysisTests.datafiles import GRO_MEMPROT, XTC_MEMPROT u = mda.Universe(GRO_MEMPROT, XTC_MEMPROT) s1 = u.select_atoms('name ZND and resid 289') s2 = u.select_atoms('(name OD1 or name OD2) and resid 51 and sphzone 5.0 (resid 289)') s3 = u.select_atoms('name ZND and (resid 291 or resid 292)') s4 = u.select_atoms('(name OD1 or name OD2) and sphzone 5.0 (resid 291)') ags = [[s1, s2], [s3, s4]] rdf = InterRDF_s(u, ags) rdf.run()
结果可通过
results.bins
和results.rdf
属性::plt.plot(rdf.results.bins, rdf.results.rdf[0][0, 0])
(它绘制了第一个原子之间的RDF
s1
其中的第一个原子s2
)要生成 累积分布函数 (CDF)在“半径内的粒子”意义下 \(r\) “,即, \(N_{{ab}}(r)\) ,请使用
get_cdf()
方法:cdf = rdf.get_cdf()
结果可通过
results.cdf
属性::plt.plot(rdf.results.bins, rdf.results.cdf[0][0, 0])
(它绘制了中第一个原子之间的CDF
s1
其中的第一个原子s2
)在 0.19.0 版本加入.
在 1.0.0 版本发生变更: 支持 start , stop ,以及 step 关键字已删除。相反,这些应该传递给
InterRDF_s.run()
。在 2.0.0 版本发生变更: 将结果存储为属性 bins , edges , rdf , count 和 cdf 的 results 的属性
AnalysisBase
。在 2.3.0 版本发生变更: 介绍 norm 和 exclusion_blocks 属性。
自 2.3.0 版本弃用: 而不是 density=True 使用 norm='density'
自 2.3.0 版本弃用: 这个 universe 参数是多余的。
- get_cdf()[源代码]
计算所有站点的累计计数。
这是 cumulative count 在给定的半径内,即, \(N_{{ab}}(r)\) 。
返回结果并将其存储在属性中
results.cdf
。- 返回:
cdf --结构与相同的数组列表
results.rdf
- 返回类型: