在 R 中使用 limma 进行差异表达分析
John Blischak
Instructor
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")
$$ Y = \beta_0 + \beta_1 X_1 + \epsilon $$
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
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 进行差异表达分析