limma 包

在 R 中使用 limma 进行差异表达分析

John Blischak

Instructor

limma 包的优点

  • 对成千上万基因逐个检验需要大量样板代码
pval <- numeric(length = nrow(x))
r2 <- numeric(length = nrow(x))
for (i in 1:nrow(x)) {
  mod <- lm(x[i, ] ~ p[, "er"])
  result <- summary(mod)
  pval[i] <- result$coefficients[2, 4]
  r2[i] <- result$r.squared
}
  • 通过在基因间共享信息改进推断

  • 提供大量预处理和后处理函数(综述见 Ritchie et al., 2015)

biocManager::install("limma")
在 R 中使用 limma 进行差异表达分析

指定线性模型

$$ Y = \beta_0 + \beta_1 X_1 + \epsilon $$

  • $Y$ - 基因的表达水平
  • $B_0$ - ER 阴性组的平均表达
  • $B_1$ - ER 阳性组的平均差异
  • $X_1$ - ER 状态:0 = 阴性,1 = 阳性
  • $\epsilon$ - 随机噪声
在 R 中使用 limma 进行差异表达分析

在 R 中指定线性模型

model.matrix(~<explanatory>, data = <data frame>)
design <- model.matrix(~er, data = pData(eset))
head(design, 2)
      (Intercept) erpositive
VDX_3           1          0
VDX_5           1          1
colSums(design)
(Intercept)  erpositive 
        344         209
table(pData(eset)[, "er"])
negative positive 
     135      209
在 R 中使用 limma 进行差异表达分析

使用 limma 进行检验

library(limma)
# 拟合模型
fit <- lmFit(eset, design)
# 计算 t 统计量
fit <- eBayes(fit)
# 汇总结果
results <- decideTests(fit[, "er"])
summary(results)
   erpositive
-1       6276
0       11003
1        5004
在 R 中使用 limma 进行差异表达分析

让我们来练习!

在 R 中使用 limma 进行差异表达分析

Preparing Video For Download...