MDAnalysis专题

MDAnalysis随机邻近嵌入与构象距离

对真实蛋白质轨迹运行原生SPE,导出三维坐标,并检查随机重复、应力和距离保持程度。

更新于 2026-11-08约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

SPE把构象之间的距离近似映射到低维空间,便于观察轨迹中相近的结构。它与PCA的输入和算法不同;本例直接提供51帧泛素、76个Cα的完整距离矩阵,不把距离矩阵误当成PCA的笛卡尔坐标。

1 下载并运行#

下载SPE、协方差与重采样示例,保存为spe-covariance.zip,执行:

python3 -m zipfile -e spe-covariance.zip .
cd mdanalysis-spe-covariance
bash setup.sh
bash run.sh
bash verify.sh
bash plot.sh

环境为MDAnalysis 2.9.0、NumPy 1.26.4、SciPy 1.13.1。脚本只分析包内的真实轨迹坐标,不重新运行分子动力学。数据来自已有100 ps轨迹,每2 ps保存一帧;结构预先对齐到同一个参考。

results/FULL-FIELDS.npz保存输入矩阵、三次SPE的完整3×51坐标与51×51嵌入距离;plots/中保存本次运行的图。verify.sh会检查全部矩阵的形状、有限性、独立重算的距离与应力。

2 距离如何定义#

本例使用共同参考对齐后的Cα RMSD:对每对帧,把76个对应原子的坐标差平方求平均,再开平方。没有对每一对帧重新做旋转拟合。 替换自己的轨迹时,原子顺序、选择和对齐方法必须一致,不能混用不同原子集得到的矩阵。

原生调用的关键参数为:

method = StochasticProximityEmbeddingNative(
    dimension=3, distance_cutoff=1.5,
    min_lam=0.1, max_lam=2.0,
    ncycle=100, nstep=10000
)
coordinates, details = method(triangular_distance_matrix)

dimension=3输出三维坐标;图上只展示前两维。distance_cutoff与输入距离采用相同长度单位,本例为Å。ncycle和nstep控制嵌入优化次数,不是MD步数,也不会增加物理采样时间。

source env.sh
"$YS_PY" - <<'PYCODE'
import numpy as np
f = np.load('results/FULL-FIELDS.npz')
print('input distance matrix:', f['input_distance_A'].shape)
for i in range(3):
    xyz = f[f'SPE{i}_coordinates'].T
    np.savetxt(f'spe-run-{i+1}.dat', xyz,
               header='embedding_x embedding_y embedding_z')
    print(i+1, 'stress=', f[f'SPE{i}_native_stress'],
          'pair-distance rank=', f[f'SPE{i}_rank_correlation'])
PYCODE

3 三次实际结果如何看#

原始示例的三次运行得到:

运行 原生加权应力 全部帧对距离的Spearman相关
1 0.05091 0.84356
2 0.05070 0.85762
3 0.05154 0.85716

每次图形可以旋转、翻转或出现局部差异。图中的连线仅表示原轨迹帧的先后顺序,不是低维空间里重新积分得到的动力学轨迹。

三次原生随机邻近嵌入的真实轨迹结果

当前版本的底层C程序用时间与进程号初始化随机数;只设置NumPy随机种子不能固定SPE坐标。因此重跑后的数值不必与上表逐位相同。配套检查保留同一数学条件:三维输出有限、独立应力与原生应力相差不超过1e-10,且本例应力小于0.25、距离秩相关大于0.6。这是本教学数据的几何检查,不是适用于所有体系的物理收敛阈值。

真实RMSD与完整三维嵌入距离的逐对比较

偏离对角线说明降维损失了部分距离信息。不要把点云团块直接解释为稳定态,也不要把图中点密度当作自由能;这些判断还需要足够采样、合理状态定义和专门的统计分析。

4 重跑与原图重绘#

bash run.sh --output results-repeat
bash verify.sh --output results-repeat
bash plot.sh --output results-repeat
bash plot.sh --reference

前三条分析并绘制新的随机结果,图写到plots/;最后一条只读取包内归档数据,把本文原始结果重绘到reference-plots/。这两种用途分开,不能用原始坐标冒充新随机分析的输出。

进一步比较两段轨迹,可阅读主成分与构象聚类、降维分布与采样检查和协方差与HES重采样。

接口依据MDAnalysis 2.9降维说明。ENCORE在2.9仍可使用;官方已将后续维护转向mdaencore,升级环境时应按对应版本检查接口。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗