8.6.6. 没有跳跃轨迹展开 MDAnalysis.transformations.nojump

展开轨迹,使原子的移动永远不会超过半个周期框长度。这样做的结果是,当需要时,粒子将在周期性边界上扩散。这种解缠方法适合作为计算分子扩散的前处理步骤,或者更常见的是在轨迹分析过程中保持多结构域蛋白质的完整性。所使用的算法基于 [Kulke2022]

class MDAnalysis.transformations.nojump.NoJump(check_continuity=True, max_threads=None, parallelizable=False)[源代码]

返回给定时间步的变换坐标,这样原子在两个时间步之间的移动不会超过周期框大小的一半,并将穿过周期边界边。所使用的算法基于 [Kulke2022] 对于非正交系,方程B6,因此对于分子轨迹不应该从周期框的一侧“跳”到另一侧的大多数应用来说是通用的。

请注意,此变换依赖于为轨迹中的每一帧设置的周期长方体维度,并且该长方体维度可以转换为正交法向单位单元。如果不是,则发出错误。由于展开轨迹时通常会按顺序变换所有帧,因此如果使用NoJump变换非连续时间步,则会发出警告。

示例

假设你有一个蛋白质二聚体的分子轨迹,它跨越了一个周期边界。这通常看起来会使二聚体分裂。这种变换使用包裹轨迹中的帧之间的分子运动来创建展开轨迹,在该轨迹中,分子在后续帧之间的移动永远不会超过周期框维度的一半。因此,正常的用例是将变换应用于轨迹的每一帧,并按顺序执行。

transformation = NoJump()
u.trajectory.add_transformations(transformation)
for ts in u.trajectory:
    print(ts.positions)

在这种情况下, ts.positions 将返回NoJump展开轨迹,这将使蛋白质二聚体保持在一起,如果它们在初始时间步长中在一起。展开轨迹也可用于通过爱因斯坦关系计算扩散系数。要反转该过程,请再次对坐标进行换行。

返回类型:

MDAnalysis.coordinates.timestep.Timestep

引用

[Kulke2022] (1,2,3,4,5,6)

Martin Kulke and Josh V. Vermaas. Reversible unwrapping algorithm for constant-pressure molecular dynamics simulations. Journal of Chemical Theory and Computation, 18(10):6161–6171, 2022. doi:10.1021/acs.jctc.2c00327.

参数:
  • max_threads (int, optional) -- 可以使用最大线程数。默认值为 None ,表示默认设置或外部设置。

  • parallelizable (bool, optional) -- 检查这是否可以用于拆分-应用-合并并行分析方法。默认值为 True