PLUMED专题

PLUMED特征距离:欧氏、加权与Mahalanobis

同一32帧特征向量实际计算三种距离,说明差向量表示、权重、SPD矩阵和单位。

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

比较两个构型时,经常需要先把它们变成多个CV组成的向量,再计算到参考向量的距离。不同特征量纲和尺度不同,选择度量之前应先说明归一化方式。

1. 下载和看实际三种距离#

下载完整输入、原生结果和绘图包,保存为example.zip:

python3 -m zipfile -e example.zip .
cd plumed-feature-distances
bash results.sh
bash read.sh
bash plot.sh

这些命令直接读取随包实算结果;reference-results/存原生输出,data/存CSV,figures/存图片。read.sh和plot.sh默认使用集群ASE环境的Python,无需重新计算。自己的Python须安装NumPy、ASE和Matplotlib,可用YS_ANALYSIS_PYTHON指定解释器。

同一特征差在三种度量下的实际距离与输入SPD矩阵

本例沿用向量处理的32帧人工四原子构型。v=(r,s,t)是三个nm距离按1 nm归一化后的数值,参考为(0.2,0.3,0.05);不是32帧物理MD采样。

2. 向量差与输出形状#

ref: CONSTANT VALUES=0.2,0.3,0.05
displacement: DISPLACEMENT ARG1=v ARG2=ref
difference: DIFFERENCE ARG=v,ref

本例两者数值都是Δ=v−ref,但表示不同:DISPLACEMENT对这一个点对给出1×3矩阵,DIFFERENCE给出长度3向量。实际DUMPVECTOR中前者每帧一行带3个分量,后者按分量分行;读取时不能套用同一个行数假设。

3. 三种原生距离#

weights: CONSTANT VALUES=4,1,0.25
metric: CONSTANT NROWS=3 NCOLS=3 VALUES=4,0.3,0.2,0.3,1,0.1,0.2,0.1,0.25
euclidean: EUCLIDEAN_DISTANCE ARG1=v ARG2=ref
normalized: NORMALIZED_EUCLIDEAN_DISTANCE ARG1=v ARG2=ref METRIC=weights
mahalanobis: MAHALANOBIS_DISTANCE ARG1=v ARG2=ref METRIC=metric
动作 本例独立核对的公式
EUCLIDEAN_DISTANCE sqrt(Δ₁²+Δ₂²+Δ₃²)
NORMALIZED_EUCLIDEAN_DISTANCE sqrt(4Δ₁²+Δ₂²+0.25Δ₃²)
MAHALANOBIS_DISTANCE sqrt(ΔᵀGΔ)

对角权重越大,对应方向偏离被赋予的代价越大。完整G还含交叉项。本例矩阵为人为指定的正定度量,不是从32帧估计的协方差逆矩阵;不能据此赋予置信区间、自由能或统计概率意义。

如果特征混有距离、角度和配位数,应先定义相应的无量纲尺度;直接把不同量纲数值相加没有明确物理意义。周期角度还需要正确处理跨越±π的差值,本例只有非周期距离。

4. 实际运行与提取#

bash run.sh
bash read.sh work analysis-new
bash plot.sh analysis-new figures-new work

只看已完成的结果:

head reference-results/COLVAR
head reference-results/displacement.dat
head reference-results/difference.dat
cat data/PLUMED-feature-distance-metrics.csv

COLVAR列依次为时间/帧、r、s、t、欧氏距离、加权距离和Mahalanobis距离。本例全部32帧与独立公式最大差约4.94×10⁻¹⁵。图中纵轴是已归一化特征空间的距离,不能称作构型的总位移或自由能。

官方参数入口:NORMALIZED_EUCLIDEAN_DISTANCE。生产分析若采用协方差度量,应由独立且充分采样的数据确定统计模型,并检查正定性、病态性与相关性。

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

查看配图

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

100%查看原图 ↗