数学推导与算法
本节补全 WGCNA 中软阈值、TOM 和模块特征基因的数学细节,推导数据处理不等式、收缩强度和差异共表达检验,给出 GENIE3 与模块保守性检验的伪代码,并写出用 AUPR 评估推断网络的具体计算。符号: 个样本、 个基因, 为基因 的表达向量, 为相关系数, 为邻接权重, 为连接度。
软阈值与 TOM 的性质
软阈值保持排序、拉开差距。 是 的单调增函数,所以不改变边的强弱排序;但两条边的比值被放大为 。例如 与 的比值从 1.8 变成 。这就是“软”阈值:没有一刀切,但弱边的贡献被压到可以忽略。
TOM 为什么在 内。由于 ,
同理 ,所以 ;而分母 。故 。 要求 且度较小的那个基因的所有邻居都是另一个基因的满权邻居; 要求二者既不相连也无共同邻居。在无权图上,TOM 就是“直接相连 + 共同邻居数”除以可能的最大值。
模块特征基因。把模块 的 个基因的表达逐基因标准化,得 ,做奇异值分解 。特征基因取第一左奇异向量 (即第一主成分得分的方向),其解释的方差比例为 。奇异向量的符号不唯一,WGCNA 把 ME 的符号调整为与模块平均表达正相关。模块成员度 本质上是基因 在第一主成分上的(标准化)载荷。
若 很低(如低于 0.3),说明模块内部并不“一维”,用一个 ME 概括整个模块会丢失大量信息,ME–性状关联也就难以解释。
收缩强度的推导
设要估计的量为 (这里是真实相关 ),无偏估计为 (),目标 为常数(相关矩阵向单位阵收缩时,非对角 )。收缩估计 的总均方误差为
对 求导令其为 0:,得
最后一步用了 。把未知的期望换成样本估计:分母用 ,分子用样本乘积 的经验方差,就得到正文中的 Schäfer–Strimmer 公式(Ledoit & Wolf, 2004 给出了以单位阵倍数为目标的同类结果)。公式表明:估计越不确定、或真值离目标越近,就越应该收缩。
数据处理不等式(DPI)
互信息的链式法则把 按两种顺序展开:
若 构成马尔可夫链,则给定 后 与 独立,。于是 ;同理 。ARACNe 据此对每个三角形删去 MI 最小的边。
算法 1 ARACNe(简化版)
输入:表达矩阵 X(n×p);MI 显著性阈值 α;DPI 容差 ε(0 表示严格 DPI,常用 0–0.15)
输出:无向网络
1. 对每对基因估计 I(i;j)(核密度或自适应分箱) // O(p²·n)
2. 用置换得到零分布,删去 I(i;j) 不显著的边
3. 对每个三角形 (i,j,k),若 I(i,j) < (1−ε)·min{I(i,k), I(j,k)}:标记 (i,j) 待删
4. 一次性删除所有标记边(先标记后删除,结果不依赖遍历顺序)
复杂度:第 3 步最坏 O(p³);实际只需遍历第 2 步后剩余边构成的三角形
GENIE3
GENIE3 的边权是随机森林(或极端随机树)的方差减少重要性。在树的一个内部节点 ,样本集 被特征 划分为 与 ,该节点的贡献为
把特征 在所有树、所有节点上的 求和并取平均,即为 对该靶基因的重要性。
算法 2 GENIE3
输入:表达矩阵 X(n×p,每个基因标准化为单位方差);候选调控因子集合 R;
树的数目 T(如 1000);每次分裂考察的候选特征数 K(随机森林常取 sqrt(|R|))
输出:按权重排序的有向边列表 (g → j, w_gj)
1. 对每个靶基因 j = 1..p:
2. 输入特征 ← R \ {j};输出 ← x_j
3. 训练 T 棵树(随机森林:每棵树用 bootstrap 样本,每次分裂在随机选出的 K 个特征中
找最优划分;极端随机树:用全部样本,分裂阈值也随机抽取)
4. 对每个 g ∈ R \ {j}:w_gj ← 所有树中以 g 分裂的节点的 Δ 之和 / T
5. 把全部 (g, j, w_gj) 汇总,按 w_gj 从大到小排序
复杂度:约 O(p · T · K · n log n);对 p 个靶基因完全可并行
第 1 步中先把每个靶基因标准化为单位方差,是为了让不同靶基因的重要性可以放在一起排序。有向边的“方向”完全来自集合 的先验设定。
差异共表达检验与模块保守性
Fisher 检验的依据:若 近似二元正态, 近似服从 。两组样本独立,所以差的方差为两组方差之和,标准化后在 下近似标准正态。对 个基因对同时检验时,检验统计量之间高度相关(共享基因),BH 程序在正相关依赖下仍控制 FDR,但功效有限,因此常把检验聚合到基因或模块层面。
算法 3 模块保守性的置换 Z 统计量(简化版)
输入:参考数据相关矩阵 R_ref;检验数据 X_test;模块 M(大小 m);置换次数 B
1. 计算观测统计量:密度类 D = (meanCor, meanAdj, propVarExpl, meanKME);
连接模式类 C = (cor.kIM, cor.kME, cor.cor),均在检验数据中、以参考数据为对照计算
2. 对 b = 1..B:在检验数据中随机抽取 m 个基因作为“伪模块”(置换模块标签),重算 D_b、C_b
3. 每个统计量的 Z = (观测值 − 置换均值) / 置换标准差
4. Zdensity = median(Z_D);Zconnectivity = median(Z_C);Zsummary = (Zdensity + Zconnectivity) / 2
复杂度:O(B · m² · n);B 取 100–200 通常足以估计均值与标准差
AUPR 的计算与基线
把推断结果排成边列表 ,金标准真边集合为 ,评估的候选边全集为 。前 条预测中真阳性数为 :
随机排序的期望精确率处处等于真边比例 ,因此随机 AUPR 。DREAM5 中 常远低于 1%,所以“AUPR=0.05”可能已是随机水平的几倍,而 AUROC 在这种极端不平衡下会显得很高、区分度低。实践要点: 只应包含金标准覆盖的调控因子与靶基因之间的边;PR 曲线不能在相邻点之间线性插值(Davis & Goadrich, 2006);报告 AUPR 时应同时报告 或 AUPR/。
不完整金标准的影响:设真实真边集合为 ,金标准只覆盖其中比例 (,),且漏标与预测得分无关。则前 条预测中被记为真阳性的期望数为 ,表观精确率 ,随机基线也同比变为 。所以比值 AUPR/ 对随机漏标近似不变,而 AUPR 本身被按比例低估;若漏标与得分相关(例如数据库偏好研究充分的高表达基因,而方法也偏好它们),比值也会有偏。