
点击上方蓝字关注我们


实验室主页:https://bioinf.wehi.edu.au/limma/源码:https://bioconductor.org/packages/limma/
limma 和 edgeR 两个软件包都是由澳大利亚沃尔特和伊丽莎·霍尔医学研究所(WEHI)的 Gordon Smyth 教授及其团队开发和维护的。
- limma:早期主要用于微阵列,后来通过引入
voom转换,limma 同样可以出色地处理 RNA-seq 数据,并且支持处理极其复杂的实验设计(如多因素方差分析、时间序列等)。 - edgeR:专门针对数字基因表达数据(如 RNA-seq 的原始 count 矩阵)和扩增子测序筛选(如 CRISPR-Cas9 筛选)进行了专门优化,在处理无生物学重复的小样本数据或检测低表达差异基因时具有独特的优势。
limma 和 edgeR 区别
limma 和 edgeR在count 数据整理、低表达过滤和 TMM 标准化工具部分是一致的,不一致的是后面的统计分析部分:

预处理部分:
DGEList():组织 count 和样本信息;filterByExpr():根据实验设计过滤低表达基因;calcNormFactors():计算 TMM 标准化因子;
统计部分:
edgeR:glmQLFit() → glmQLFTest()limma:voom() → lmFit() → eBayes()
limma-voom 流程代码:
library(edgeR)library(limma)y <- DGEList(counts = counts)keep <- filterByExpr(y, design)y <- y[keep, , keep.lib.sizes = FALSE]y <- calcNormFactors(y, method = "TMM")————————————————————————————————————————————v <- voom(y,design,plot = TRUE)fit <- lmFit(v, design)fit <- contrasts.fit(fit, contrast)fit <- eBayes(fit)
edgeR流程代码:
library(edgeR)y <- DGEList(counts = counts)keep <- filterByExpr(y, design)y <- y[keep, , keep.lib.sizes = FALSE]y <- calcNormFactors(y, method = "TMM")——————————————————————————————————————————————fit <- glmQLFit(y,design,robust = TRUE)qlf <- glmQLFTest(fit,contrast = contrast)
更适合 edgeR 的情况
样本数较少; 希望直接使用 count 分布模型; 需要较谨慎的 QL 检验; count 很低的基因比较多; 希望使用 glmTreat()检验最小 fold change;分析对象天然是 count。
更适合 limma-voom 的情况
样本量较大; 实验设计复杂; 需要非常灵活的 contrast; 需要重复测量或相关样本扩展; 希望使用 limma 完整的线性模型生态; 需要观测级或样本级质量权重。
limma 核心原理
1、voom 估计均值—方差趋势
v <- voom(y,design,plot = TRUE)

不稳定的观测获得较小权重; 稳定的观测获得较大权重。
2、lmFit() 拟合加权线性模型
fit <- lmFit(v, design)对表达矩阵中的每一个基因,根据
design指定的实验结构,使用v中的 logCPM 和精度权重拟合加权线性模型。

这一步主要完成的是:
拟合每个基因的线性模型; 估计模型系数; 计算拟合值和残差; 估计每个基因的原始残差方差。
3、多重假设检验
fit <- contrasts.fit(fit, contrast)将基础模型系数重新组合为真正关心的比较。fit <- eBayes(fit)经验贝叶斯收缩,使用所有基因的信息稳定方差估计,计算 moderated t/F、P 值和 B 值。(BH法)
result <- topTable(fit)#topTable():整理并排序结果- logFC (Log2 Fold Change):对数变化倍数。表示实验组相对于对照组,基因表达量的变化幅度。
- AveExpr (Average Expression):平均表达量。该基因在所有样本中的平均表达水平(通常经过 log2 转换)。数值越大,说明该基因表达越丰富。
- t (t-statistic):t 统计量。这是 limma 进行假设检验时计算出的统计值。绝对值越大,说明两组之间的差异越显著。
- P.Value (P-value):原始 P 值。表示观察到的差异是由随机误差引起的概率。数值越小,差异越显著。
- adj.P.Val (Adjusted P-value):校正后的 P 值(通常是 FDR,即错误发现率)。由于同时检测成千上万个基因,必须校正以防止假阳性。这是判断基因是否显著差异的最重要指标。
- B (B-statistic / LOR):B 统计量(对数优势比)。
- B > 0:表示该基因更有可能是差异表达基因。
- B < 0:表示该基因更有可能不是差异表达基因。


end

如果在学习的过程中有不理解不明白的地方,欢迎在评论区留言。
做这期内容是想帮助对分子生物学这门课感兴趣的朋友,希望通过我的讲解大家能更好的理解这些知识点,所以我这里没有知识点汇总和重难点标注,还请见谅。
如果有一些专业名词不太清楚,可以去翻一下前几次课程中的内容,我会在每一次课程中逐渐增加难度,如果之前没提到过,这篇文章中全文不会去提那个专业名词,好好学习,打好基础,让专业的知识简单化,简单的知识轻量化。
如果有讲错的地方也请大家多多指点(用疑问句不要用反问句提问),这里没有老师,都是学生,我们互相学习互相成长。

点一下小爱心再走吧!
夜雨聆风