4.2.3. 距离分析 MDAnalysis.analysis.distances

此模块提供快速计算原子或原子组之间的距离的功能。

dist()between() 可以获得甚至不一定来自相同的原子基团 Universe

MDAnalysis.analysis.distances.between(group, A, B, distance)[源代码]

返回子组 group 那就是在 distance 两者中的 AB

此函数不知道周期性边界条件。

可用于在界面中寻找桥接水或分子。

Similar to "group and (AROUND A distance and AROUND B distance)".

参数:
  • group (AtomGroup) -- 查找的成员 group 介于两者之间 AB

  • A (AtomGroup) --

  • B (AtomGroup) -- AB 是原子之间的原子团 group 都在寻找。在以下情况下,该函数的工作效率会更高 group 比任何一个都要大 AB

  • distance (float) -- 原子的最大距离被算作在 AB

返回:

AtomGroup 符合标准的原子的数量

返回类型:

AtomGroup

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, default None) -- 以以下形式表示的模拟单元尺寸 MDAnalysis.trajectory.timestep.Timestep.dimensions 在计算接触时应考虑周期性边界条件。

返回:

联系人矩阵以由 returntype 关键字。

返回类型:

array or sparse matrix

在 0.11.0 版本发生变更: 关键字 suppress_progmetprogress_meter_freq 都被移除了。

MDAnalysis.analysis.distances.dist(A, B, offset=0, box=None)[源代码]

两个原子群中的原子之间的返回距离。

这个距离是以原子为单位计算的。还会返回残基ID,因为典型的用例是查看对齐前后的CA距离。使用 offset 关键字一还可以向残留物添加一个恒定的偏移量,这便于与PDB编号进行比较。

参数:
  • A (AtomGroup) -- AtomGroup 具有相同数量的原子

  • B (AtomGroup) -- AtomGroup 具有相同数量的原子

  • offset (integer or tuple, optional, default 0) -- 一个整数 offset 添加到 resids_Aresids_B (见下文),以产生PDB编号。如果 offsettuple 然后 offset[0] 添加到 resids_Aoffset[1]resids_B 。请注意,实际上可以提供与原子组相同长度的NumPy数组,以便将单独的偏移量添加到每个REID。

返回:

  • 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 职位在 referencem 职位在 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.float64shape=(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] 在参考坐标之间 ij 在位置 d[k] 。循环通过 d :..范围(N)中i的代码块::Python:范围(i+1,n)中的j的代码块:k+=1距离 [i, j] =d [k]

返回类型:

numpy.ndarray (dtype=numpy.float64shape=(n*(n-1)/2,) )

在 0.13.0 版本发生变更: 已添加 后端 关键字。

在 0.19.0 版本发生变更: 将输入坐标的内部数据类型转换为 numpy.float32

在 2.3.0 版本发生变更: 现在可以接受 AtomGroup 作为任意位置的参数,并使用类型提示检查输入。