4.2.3. 距离分析 MDAnalysis.analysis.distances
此模块提供快速计算原子或原子组之间的距离的功能。
- MDAnalysis.analysis.distances.between(group, A, B, distance)[源代码]
返回子组 group 那就是在 distance 两者中的 A 和 B
此函数不知道周期性边界条件。
可用于在界面中寻找桥接水或分子。
Similar to "group and (AROUND A distance and AROUND B distance)".
- MDAnalysis.analysis.distances.contact_matrix(coord, cutoff=15.0, returntype='numpy', box=None)[源代码]
计算接触矩阵。
有一个快速、高内存使用率的版本,适用于小型系统( 返回类型 =‘Numpy’),以及速度较慢、内存使用率较低的版本,适用于较大的系统( 返回类型 =‘稀疏’)。
如果 box 传递尺寸,然后应用周期性边界条件。
- 参数:
coord (array) -- 形状坐标数组
(N, 3)
和dtype Float32。cutoff (float, optional, default 15) -- 内含粒子 cutoff 都被认为构成了一种联系。
returntype (string, optional, default "numpy") -- 选择返回联系人基准表的方式。 *
"numpy"
: return as an(N. N)
numpy.ndarray
*"sparse"
:以身份返回scipy.sparse.lil_matrix
box (array-like or
None
, optional, defaultNone
) -- 以以下形式表示的模拟单元尺寸MDAnalysis.trajectory.timestep.Timestep.dimensions
在计算接触时应考虑周期性边界条件。
- 返回:
联系人矩阵以由 returntype 关键字。
- 返回类型:
array or sparse matrix
在 0.11.0 版本发生变更: 关键字 suppress_progmet 和 progress_meter_freq 都被移除了。
- MDAnalysis.analysis.distances.dist(A, B, offset=0, box=None)[源代码]
两个原子群中的原子之间的返回距离。
这个距离是以原子为单位计算的。还会返回残基ID,因为典型的用例是查看对齐前后的CA距离。使用 offset 关键字一还可以向残留物添加一个恒定的偏移量,这便于与PDB编号进行比较。
- 参数:
- 返回:
resids_A ( 阵列 )--剩余的ID A 组(可能更改为 offset )
resids_B ( 阵列 )--剩余的ID B 组(可能更改为 offset )
距离 ( 阵列 )--原子之间的距离
- MDAnalysis.analysis.distances.distance_array(reference: ndarray[Any, dtype[_ScalarType_co]] | AtomGroup, configuration: ndarray[Any, dtype[_ScalarType_co]] | AtomGroup, box: ndarray[Any, dtype[_ScalarType_co]] | None = None, result: ndarray[Any, dtype[_ScalarType_co]] | None = None, backend: str = 'serial') ndarray[Any, dtype[_ScalarType_co]] [源代码]
计算参考集和另一配置之间的所有可能距离。
如果有
n
职位在 reference 和m
职位在 configuration ,形状的距离数组(n, m)
将会被计算出来。如果可选参数 box ,则在计算距离时应用最小图像约定。支持正交盒或三斜盒。
如果数据类型2DNumPy数组
numpy.float64
其形状为(n, m)
中提供的 result ,则填充该预分配的数组。这可以加快计算速度。- 参数:
reference (numpy.ndarray or
AtomGroup
) -- 形状的参考坐标数组(3,)
或(n, 3)
(数据类型是任意的,将被转换为numpy.float32
内部)。还接受一个AtomGroup
。configuration (numpy.ndarray or
AtomGroup
) -- 形状的配置坐标数组(3,)
或(m, 3)
(数据类型是任意的,将被转换为numpy.float32
内部)。还接受一个AtomGroup
。box (array_like, optional) -- 系统的单位单元尺寸,可以是正交的或三斜的,并且必须以与返回的相同格式提供
MDAnalysis.coordinates.timestep.Timestep.dimensions
:[lx, ly, lz, alpha, beta, gamma]
。result (numpy.ndarray, optional) -- 必须具有以下形状的预分配结果数组
(n, m)
和数据类型numpy.float64
。避免在重复调用函数时创建可节省时间的数组。backend ({'serial', 'OpenMP'}, optional) -- 关键字选择加速类型。
- 返回:
d --包含距离的数组
d[i,j]
在参考坐标之间i
和配置坐标j
。- 返回类型:
numpy.ndarray (
dtype=numpy.float64
,shape=(n, m)
)
在 0.13.0 版本发生变更: 已添加 后端 关键字。
在 0.19.0 版本发生变更: 将输入坐标的内部数据类型转换为
numpy.float32
。现在还接受单个坐标作为输入。在 2.3.0 版本发生变更: 现在可以接受
AtomGroup
作为任意位置的参数,并使用类型提示检查输入。
- MDAnalysis.analysis.distances.self_distance_array(reference: ndarray[Any, dtype[_ScalarType_co]] | AtomGroup, box: ndarray[Any, dtype[_ScalarType_co]] | None = None, result: ndarray[Any, dtype[_ScalarType_co]] | None = None, backend: str = 'serial') ndarray[Any, dtype[_ScalarType_co]] [源代码]
计算配置内所有可能的距离 reference 。
如果可选参数 box ,则在计算距离时应用最小图像约定。支持正交盒或三斜盒。
如果数据类型1DNumy数组
numpy.float64
其形状为(n*(n-1)/2,)
中提供的 result ,则填充该预分配的数组。这可以加快计算速度。- 参数:
reference (numpy.ndarray or
AtomGroup
) -- 形状的参考坐标数组(3,)
或(n, 3)
(数据类型是任意的,将被转换为numpy.float32
内部)。还接受一个AtomGroup
。box (array_like, optional) -- 系统的单位单元尺寸,可以是正交的或三斜的,并且必须以与返回的相同格式提供
MDAnalysis.coordinates.timestep.Timestep.dimensions
:[lx, ly, lz, alpha, beta, gamma]
。result (numpy.ndarray, optional) -- 必须具有以下形状的预分配结果数组
(n*(n-1)/2,)
和数据类型numpy.float64
。避免在重复调用函数时创建可节省时间的数组。backend ({'serial', 'OpenMP'}, optional) -- 关键字选择加速类型。
- 返回:
d --包含距离的数组
dist[i,j]
在参考坐标之间i
和j
在位置d[k]
。循环通过d
:..范围(N)中i的代码块::Python:范围(i+1,n)中的j的代码块:k+=1距离 [i, j] =d [k]- 返回类型:
numpy.ndarray (
dtype=numpy.float64
,shape=(n*(n-1)/2,)
)
在 0.13.0 版本发生变更: 已添加 后端 关键字。
在 0.19.0 版本发生变更: 将输入坐标的内部数据类型转换为
numpy.float32
。在 2.3.0 版本发生变更: 现在可以接受
AtomGroup
作为任意位置的参数,并使用类型提示检查输入。