PLUMED专题

PLUMED:RDC的SVD取向张量

用12对构造方向和带噪声目标实际反算张量,解释输入、残差、参考系与分析范围。

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

本篇演示根据一组 RDC 和几何方向反算取向张量,再回算各核对的耦合。输入是 12 对构造的几何点和人为设置的带噪声目标,不是实验 NMR,也不是蛋白质模拟。它适合先熟悉 SVD 输入、输出和参考系,再换成有明确来源的真实数据。

1. 下载并读取实际结果#

下载完整输入、原生输出、CSV 与绘图脚本,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd plumed-RDC-SVD
module load ase/3.29.0
bash read.sh
bash plot.sh

12对方向、原生回算值及带噪声目标的残差

包内有两次实际 PLUMED 2.10.1 调用:原始几何及刚性旋转后的几何。当前使用 CP2K 2026.2 配套的独立 PLUMED,编译环境为 Intel oneAPI 2024.2、Intel MPI、MKL 和 GSL 2.8;不运行 CP2K 电子结构。

2. 准备几何和目标#

head -14 inputs/original/bonds.xyz
cat inputs/original/plumed.dat

XYZ 使用 nm,本例的元素标签只是几何占位;GYROM=-72.5388 按 N–H 核对设置,并不会由 XYZ 标签自动推断核种。真实分析时要让核对、几何和旋磁比真正对应。

每条 ATOMS 选择一对坐标,每条 COUPLING 提供对应目标,单位 Hz。本篇目标由给定的无迹张量加上明确的小噪声构造,详细数值在 reference-results/PLAN.json,可以逐项检查。

完整输入:

UNITS LENGTH=nm ENERGY=kj/mol TIME=ps
fit: RDC ...
 GYROM=-72.5388 SCALE=1 SVD NOPBC
 ATOMS1=1,2 COUPLING1=21.912887793664
 ATOMS2=3,4 COUPLING2=-5.4793049714749
 ATOMS3=5,6 COUPLING3=-11.885430518925
 ATOMS4=7,8 COUPLING4=7.5059746506018
 ATOMS5=9,10 COUPLING5=0.73791997746349
 ATOMS6=11,12 COUPLING6=-5.7989177899152
 ATOMS7=13,14 COUPLING7=8.7965510684473
 ATOMS8=15,16 COUPLING8=-6.8392542747147
 ATOMS9=17,18 COUPLING9=-3.9595391663777
 ATOMS10=19,20 COUPLING10=-4.4028808182197
 ATOMS11=21,22 COUPLING11=-3.1953269033799
 ATOMS12=23,24 COUPLING12=-0.60097659965375
...
stats: STATS ARG=fit.rdc-0,fit.rdc-1,fit.rdc-2,fit.rdc-3,fit.rdc-4,fit.rdc-5,fit.rdc-6,fit.rdc-7,fit.rdc-8,fit.rdc-9,fit.rdc-10,fit.rdc-11 PARAMETERS=21.912887793664,-5.4793049714749,-11.885430518925,7.5059746506018,0.73791997746349,-5.7989177899152,8.7965510684473,-6.8392542747147,-3.9595391663777,-4.4028808182197,-3.1953269033799,-0.60097659965375
PRINT ARG=fit.*,stats.* FILE=COLVAR STRIDE=1 FMT=%.14g

多行输入以裸 ... 收尾。SVD 需要启用了 GSL 的程序;五个独立张量分量至少需要足够独立的方向来确定,仅增加相互平行的核对不能解决欠定问题。本例使用 12 对方向,设计矩阵秩为 5。

3. 提交原生计算#

bash submit.sh
squeue -u "$USER"

CPU 模板按集群规则申请 56 核整节点,实际 driver 使用 1 线程,依次处理两组几何。结束后:

bash read.sh work-new analysis-read
bash plot.sh
head -8 analysis-read/PLUMED-RDC-SVD-couplings.csv
cat analysis-read/PLUMED-RDC-SVD-tensors.csv

若已经获得作业资源,要单独调用 driver,可在一组输入所在目录运行:

source /etc/profile.d/lmod.sh
module load cp2k/2026.2-8173m
plumed_bin=/public/software/cp2k/deps/2026.2/8173m/plumed-2.10.1/bin/plumed
"$plumed_bin" driver --plumed plumed.dat --ixyz bonds.xyz \
  --length-units nm --box 2,2,2

各 RDC 均指定 NOPBC,所以这里的盒子声明只是提供 driver 所需的元数据,不改变直接几何距离,也不表示执行了周期 MD。

4. 输出怎样读#

原生 COLVAR 中:

  • fit.rdc-0 至 fit.rdc-11 是回算的 RDC,输出编号从零开始;输入 ATOMS1 等从 1 开始。
  • fit.exp-0 等回显 COUPLING 目标。本例这些列仍是人为构造值,字段名中的 exp 不代表它们来自实验。
  • fit.Sxx、Syy、Szz、Sxy、Sxz、Syz 是无量纲对称张量分量,其中 Sxx+Syy+Szz=0。

原始几何下实际得到 Sxx≈0.000801089、Syy≈−0.000307907、Szz≈−0.000493182。本例设置 SCALE=1;任意更改 SCALE 或核对常数都会改变拟合张量的解释,不能混用不同参数下的分量。

实现先按各键的最大耦合归一化,再求解最小二乘;键长不同时,它与直接最小化所有 Hz 残差并不完全相同。包内 read.py 按相同定义独立求解,全部张量分量和回算 RDC 均逐项对照。

5. 残差与参考系#

实际回算值对目标的 RMSD 为 0.0617356 Hz,相关系数 0.999976。输入带有噪声,残差本来就不应该被强行清零。

STATS 还输出平方偏差和、线性斜率和截距;这里线性关系按“目标 = slope × 回算值 + intercept”解释,得到斜率约 1.00151、截距约 0.00536 Hz。高相关性不能单独证明真实数据的结构模型正确。

第二次实际调用将整个几何刚性旋转,目标保持相同。回算 RDC 保持一致,张量则随坐标系按 S′=R S Rᵀ 变换。比较两份结构或轨迹时,既要核对原子映射,也要统一参考系。

6. 适用范围#

这个 SVD 入口用于分析,当前没有实现相应的原子力。不要把 fit.rdc-* 或张量直接接到需要原子力的 RESTRAINT,也不能把本篇称为已经执行了 RDC 约束采样。

要做多副本平均约束,应使用可计算导数的直接 RDC,再结合 ENSEMBLE 等工具;基础直接量见RDC取向量教程。真实实验分析还要确认取向介质、核对定义、数据误差和构象平均方式。PLUMED 官方 RDC 说明给出了两种使用方式的范围。

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

查看配图

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

100%查看原图 ↗