21 DESeq2 差异分析(下):从统计检验到火山图、热图的生物学解读
21.1 【导语】万事之源:为何要这样做?
经过上一章的标准化校准后,我们现在终于拥有了一份可以在“公平”基准上进行比较的数据。差异表达分析的下一程,也是其核心所在,是利用严谨的统计模型,为转录组中的每一个基因,都独立地进行一次严格的“假设检验”。
这个过程的本质,是在为每一个基因回答一个根本性的科学问题:“我们观察到的这个基因在处理组与对照组之间的表达量差异,究竟是一个真实的、由实验处理所驱动的生物学信号,还是有极大的可能性,仅仅是由生物学重复样本内部的随机波动所导致的?”最终,我们产出的那份差异表达基因列表,就是在这场对上万个基因进行的大规模假设检验中,通过了最严格筛选的“胜出者”集合。
21.2 【核心实践】从原理到决策
21.2.1 【一步运行差异分析:DESeq()函数】
DESeq2将复杂的统计流程,高度封装在了一个核心函数DESeq()之中。这并非一个“黑箱”,而是一个逻辑清晰的整合性命令。
当你运行dds <- DESeq(dds)时,这个函数会在后台为你依次、无缝地执行三大核心步骤:第一,计算每个样本的标准化缩放因子(`Size Factor Estimation);第二,为每一个基因估算其在样本内的表达波动程度,即离散度(Dispersion Estimation);第三,将数据拟合到负二项分布广义线性模型中,并对你指定的实验设计进行统计检验(Model Fitting and Hypothesis Testing)。
21.2.2 【提取与解读结果:results()函数】
在DESeq()运行完毕后,results()函数就是你用来提取最终分析结果的唯一窗口。
## 提取结果表
res <- results(
dds,
contrast = c(
"group", "Treated", "Control"
)
)
核心输出列:
log2FoldChange:差异倍数的log2转换值。它代表了生物学效应的大小。正值表示在Treated组中上调,负值表示下调。
pvalue:名义P值,代表了统计检验的原始结果。
padj:经过多重检验校正后的P值,也常被称为FDR(错误发现率)。这是你判断统计学显著性的唯一标准。
参数决策:contrast参数是一项至关重要的“比较方向”决策。contrast = c("group", "Treated", "Control")这行代码,是在明确地告诉DESeq2:“请用Treated组的平均表达量,作为分子,去除以Control组的平均表达量,来计算FoldChange”。如果你将后两者的顺序颠倒,那么你得到的log2FoldChange值的正负号将完全相反,这将彻底颠覆你对基因上下调的判断。
21.2.3 【筛选差异基因的“双重阈值”决策】
一份可靠的差异基因列表,必须同时通过统计学和生物学的双重过滤。
padj < 0.05:这是“统计学显著性”的门槛。它用于严格控制分析结果的假阳性率,确保我们筛选出的基因,其差异不太可能是由随机因素造成的。
abs(log2FoldChange) > 1:这是“生物学意义”的门槛。它用于进一步筛选那些表达水平变化足够大(通常定义为变化2倍以上,即log2(2) = 1)的基因。一个padj很显著但log2FoldChange极小的基因,其统计差异可能是真实的,但生物学效应可能微乎其微。
同时满足这两个条件的基因,才是我们通常意义上所说的“显著差异表达基因”。
21.2.4 【结果可视化:火山图与热图】
火山图 (volcano plot):这是一种宏观、直观地概览差异表达全景的经典图形。它将“统计学意义”(通常用-log10(padj)表示,值越大越显著)作为Y轴,将“生物学意义”(log2FoldChange)作为X轴,展现在一张二维散点图上。通过这张图,你可以一眼看出差异基因的总体分布、数量以及上下调的平衡情况。
热图 (heatmap):与火山图不同,热图是一种更聚焦的、用于展示表达模式的可视化方法。我们通常会提取差异最显著的前N个基因(例如,top 50),用热图来展示它们在所有样本中的相对表达水平。热图是检查我们筛选出的差异基因,能否清晰地将不同实验组别的样本分离开,以及观察上下调基因内部是否存在共表达模式的“金标准”视图。
21.3 【认知升维】常见的思维陷阱与对策
21.3.1 思维陷阱一:只用pvalue不用padj
当我们在一个转录组数据中同时检验上万个基因时,如果仅仅使用传统的p < 0.05作为阈值,那么由于“多重检验问题”,我们必然会因为纯粹的概率,而引入大量的假阳性结果。
其对策是,必须用一个生动的例子来建立心智模型:如果你连续购买一万张中奖率为5%的彩票,你几乎必然会中几百张奖,但这并不代表你拥有任何特殊的运气。在基因组学分析中,pvalue就是单张彩票的中奖率,而padj(或FDR)则是对你中得所有奖项的真实性进行了校正后的评估。因此,必须建立铁律:在任何高通量数据分析中,必须使用padj作为统计显著性的最终评判标准。
21.3.2 思维陷阱二:差异基因数量太少或太多
当分析结束后,得到0个或几千个差异基因时,新手往往会不知所措。
其对策是,提供一个系统性的“诊断清单”来指导思考: 差异基因太少?
样本间差异是否过大?(检查PCA图,看生物学重复是否分散)
生物学效应是否本身就极其微弱?(这是生物学问题,而非计算问题)
实验重复数是否不足?(如只有2v2,统计功效会极低)
差异基因太多?
生物学处理效应是否本身就极强?(例如, knockout vs wildtype)
是否存在未被校正的、强烈的批次效应?(PCA图上,样本是否首先按批次分开)
筛选阈值是否设置得过于宽松?(尝试提高
log2FC的门槛)
21.4 【总结与拓展】构建你的思维框架
我们必须将差异表达分析的整个过程,视为一次严谨的、多阶段的“信号筛选”工程。在这个工程中,你的核心任务,是设定科学、合理的统计学(padj)和生物学(log2FoldChange)双重“过滤器”,从充满噪音的全转-录组原始数据中,层层筛选,最终提纯出那些最有可能驱动你所观察到的生物学表型的、核心的基因集合。
基于此框架,请思考一个能够深化你对统计结果理解的启发性问题:在你的差异分析结果表格中,你发现了两个有趣的基因。基因A的log2FoldChange高达5(表达量变化了32倍),但它的padj值却不显著(例如,0.1)。与此同时,另一个基因B的log2FoldChange只有1.2(表达量变化约2.3倍),但它的padj值却达到了极显著的水平(例如,1e-10)。你认为,造成这两种截然不同现象的根本原因是什么?(提示:请思考基因表达量的“离散度”,即样本内的方差大小)。在这两个基因中,哪一个所代表的生物学故事,在统计学上是更“可靠”的?
探索生命科学前沿,提升实战技能!欢迎微信搜索并加入「生信实战圈」,获取最新技术干货、实战案例与行业动态。 点击关注,与同行一起成长!
