跳转到内容

差异表达:统计模型与假设检验

所属板块 分析方向与案例

把基础对象与算法方法重新放回真实分析任务与工作流。

适合谁读 建议在以下阶段阅读

已理解 RNA-seq 定量流程,希望掌握差异表达统计建模原理的读者

建议起点 推荐阅读路径

从 count 数据的统计分布特性出发,理解负二项分布模型、离散度估计与多重检验校正的算法基础。

快速概览

差异表达分析的核心是构建统计模型来判断观察到的表达差异是否超出随机波动范围。本节介绍基于负二项分布的 count 数据建模、离散度估计方法与多重检验校正算法。

  • 统计模型:为什么 RNA-seq 差异分析使用负二项分布而非正态分布
  • 离散度估计:技术噪声与生物学变异的分离
  • 多重检验:FDR 控制的算法原理(Benjamini-Hochberg 方法)

差异表达检测问题:给定两个或多个生物学条件下的 RNA-seq count 数据,识别表达水平发生系统性变化的基因。

  • 输入

    • 基因表达计数矩阵 C=[cij]C = [c_{ij}]cijc_{ij} 为基因 ii 在样本 jj 中的 counts
    • 实验设计矩阵 XX,描述样本分组、批次、协变量
    • 基因长度信息(可选,用于某些归一化方法)
  • 输出

    • 每个基因的 log fold change 估计值 β^i\hat{\beta}_i
    • 统计显著性度量(p-value、调整后的 p-value / FDR)
    • 差异表达基因列表(满足 FDR 阈值的基因集合)
  • 核心难点

    • Count 数据的离散分布特性(方差 > 均值)
    • 样本间技术偏差与生物学变异的分离
    • 多重假设检验中的假阳性控制

为什么从 Counts 出发:统计分布基础

Section titled “为什么从 Counts 出发:统计分布基础”

RNA-seq counts 服从离散概率分布,具有以下特征:

  1. 非负整数:counts {0,1,2,...}\in \{0, 1, 2, ...\}
  2. 过度离散(Overdispersion):方差显著大于均值
  3. 均值-方差依赖:高表达基因的绝对波动更大

简单模型假设 counts 服从泊松分布:

cijPoisson(λij)c_{ij} \sim \text{Poisson}(\lambda_{ij})

其中 Var(cij)=λij=E[cij]\text{Var}(c_{ij}) = \lambda_{ij} = \mathbb{E}[c_{ij}]

问题:泊松分布假设方差等于均值,但 RNA-seq 数据中观察到:

Var(cij)E[cij]\text{Var}(c_{ij}) \gg \mathbb{E}[c_{ij}]

这种过度离散来源于生物学重复间的真实变异。

更合适的模型是负二项分布(Negative Binomial, NB):

cijNB(μij,ϕi)c_{ij} \sim \text{NB}(\mu_{ij}, \phi_i)

其中:

  • μij\mu_{ij}:基因 ii 在样本 jj 中的期望 counts
  • ϕi\phi_i:离散度参数(dispersion),控制方差大小

负二项分布的方差为:

Var(cij)=μij+ϕiμij2\text{Var}(c_{ij}) = \mu_{ij} + \phi_i \cdot \mu_{ij}^2

  • ϕi0\phi_i \rightarrow 0:退化为泊松分布
  • ϕi>0\phi_i > 0:允许方差大于均值(过度离散)

差异表达分析使用广义线性模型来关联实验条件与表达水平:

log(μij)=log(sj)+xjTβi\log(\mu_{ij}) = \log(s_j) + x_j^T \beta_i

其中:

  • sjs_j:样本 jj 的大小因子(size factor,归一化因子)
  • xjx_j:样本 jj 的设计矩阵行向量
  • βi\beta_i:基因 ii 的系数向量(包含 log fold change)

模型假设条件对数期望的线性关系:

logE[cijxj]=αi+logsj+kxjkβik\log \mathbb{E}[c_{ij} | x_j] = \alpha_i + \log s_j + \sum_k x_{jk} \beta_{ik}

参数解释

  • αi\alpha_i:基因 ii 的基础表达水平(截距)
  • βik\beta_{ik}:条件 kk 相对于对照的 log fold change
  • sjs_j:样本特异性归一化因子(DESeq2 使用 median ratio 方法估计)

对于两个条件(control vs treatment),检验:

H0:βi=0vsH1:βi0H_0: \beta_i = 0 \quad \text{vs} \quad H_1: \beta_i \neq 0

使用 Wald 检验似然比检验(LRT)计算 p-value。

Wald 统计量

Wi=β^iSE(β^i)N(0,1) (under H0)W_i = \frac{\hat{\beta}_i}{\text{SE}(\hat{\beta}_i)} \sim \mathcal{N}(0, 1) \text{ (under } H_0)

离散度参数 ϕi\phi_i 决定了统计检验的灵敏度:

  • 低估离散度 \rightarrow 假阳性增加(把噪声当信号)
  • 高估离散度 \rightarrow 假阴性增加(错过真实差异)

方法 1:基因特异性估计(Gene-wise)

Section titled “方法 1:基因特异性估计(Gene-wise)”

使用每个基因的数据独立估计:

ϕ^igene=si2cˉicˉi2\hat{\phi}_i^{\text{gene}} = \frac{s_i^2 - \bar{c}_i}{\bar{c}_i^2}

其中 si2s_i^2cˉi\bar{c}_i 为样本方差和均值。

问题:低表达基因样本数少,估计不稳定。

方法 2:平均离散度(Mean-based)

Section titled “方法 2:平均离散度(Mean-based)”

假设具有相似平均表达水平的基因具有相似离散度,将基因按平均表达量分 bin,在每个 bin 内共享离散度估计。

方法 3:经验贝叶斯收缩(DESeq2/edgeR 采用)

Section titled “方法 3:经验贝叶斯收缩(DESeq2/edgeR 采用)”

算法核心:将基因特异性估计向全局趋势收缩:

ϕ^ishrunk=niϕ^igene+mϕ^trendni+m\hat{\phi}_i^{\text{shrunk}} = \frac{n_i \cdot \hat{\phi}_i^{\text{gene}} + m \cdot \hat{\phi}^{\text{trend}}}{n_i + m}

其中:

  • nin_i:基因 ii 的有效样本量
  • mm:收缩强度参数
  • ϕ^trend\hat{\phi}^{\text{trend}}:平均表达-离散度趋势线估计

算法复杂度

  • 时间:O(G×n)O(G \times n)GG 为基因数,nn 为样本数
  • 空间:O(G)O(G)

当同时对 G20,000G \approx 20{,}000 个基因进行假设检验时,即使所有基因都无真实差异,在 α=0.05\alpha = 0.05 水平下仍预期有:

G×α=1,000 个假阳性G \times \alpha = 1{,}000 \text{ 个假阳性}

算法步骤

  1. 将所有基因按 p-value 从小到大排序:p(1)p(2)...p(G)p_{(1)} \leq p_{(2)} \leq ... \leq p_{(G)}

  2. 找到最大的 kk 使得:

p(k)kGαp_{(k)} \leq \frac{k}{G} \cdot \alpha

  1. 拒绝所有 iki \leq k 的假设(即标记为显著差异)

输出:每个基因的调整 p-value(FDR)

算法复杂度O(GlogG)O(G \log G),主要由排序步骤决定。

策略:在 FDR 校正前,过滤掉低表达基因以提高检验效能。

算法原理

如果基因在所有样本中的 counts 都低于阈值 cminc_{\min},则认为其缺乏足够信息支持差异检测。

过滤后的基因数 G<GG' < G,FDR 控制更严格:

p(k)kGαp_{(k)} \leq \frac{k}{G'} \cdot \alpha

假设有两组 RNA-seq 样本:control 与 treatment。某个基因在 treatment 组 counts 明显更高,统计建模需要回答:

  1. 测序深度归一化:两组样本的 logsj\log s_j 是否一致?
  2. 离散度估计:该基因在组内重复之间的变异 ϕi\phi_i 有多大?
  3. 假设检验:在 NB-GLM 模型下,βi\beta_i 是否显著偏离 0?
  4. 多重检验校正:在同时检验 20,000 基因的背景下,这个差异是否还能在 FDR 控制后保留?

只有这些问题都被纳入模型,这个”更高”才更接近真正可报告的差异表达信号。

Raw counts matrix
1. 归一化因子估计(median ratio method)
2. 离散度估计(empirical Bayes shrinkage)
3. GLM 拟合(negative binomial)
4. Wald 检验 / LRT
5. Independent filtering
6. Benjamini-Hochberg FDR correction
Differential expression results
参数作用默认值
alphaFDR 控制阈值0.1
lfcThreshold最小 log2 fold change0
altHypothesis双侧或单侧检验”greaterAbs”
minReplicatesForReplace异常值替换所需重复数7

差异表达分析的统计效能取决于:

  1. 效应大小:log fold change 越大,越容易检测
  2. 离散度:生物学变异越小,效能越高
  3. 样本量:重复数 nn 增加,效能提升

经验法则

  • 对于中等效应(LFC = 1)和中等变异,每组 n=3n = 3 可检测约 50-60% 的真阳性
  • 每组 n=6n = 6 可提升至 80-90%
  • 稀有转录本或高变异基因需要 n10n \geq 10

设计矩阵扩展

logμij=logsj+conditionjβi+batchjγi\log \mu_{ij} = \log s_j + \text{condition}_j \cdot \beta_i + \text{batch}_j \cdot \gamma_i

在模型中显式包含批次变量,可分离技术变异与生物学信号。

差异表达分析在 RNA-seq 工作流中的位置:

  • 上游依赖:稳定的定量结果、正确的注释版本、一致的 gene/transcript 层级
  • 下游应用:功能富集分析、通路分析、可视化验证

一个”差异表达结果不合理”的问题,根源可能来自:

  • 前处理或 QC 不足
  • counts 构建方式不合适
  • 样本设计存在混杂因素
  • transcript 层与 gene 层目标混用