以下是使用R语言和DESeq2进行差异表达分析后的结果可视化的详细教程,适合初学者学习。主要包括绘制火山图和热图的步骤。

1. 准备工作

首先,确保你已完成DESeq2分析并有了分析结果。接下来,安装并加载必要的R包。

# 安装和加载必要的包

library(DESeq2)
library(pheatmap)
library(ggplot2)

2. 绘制火山图

火山图是展示基因表达差异显著性和变化幅度的经典方式。

a. 提取DESeq2结果

这行代码从DESeq2分析对象dds中提取差异表达分析的结果。

res <- results(dds)

res对象包含了基因的log2变化倍数(log2FoldChange)、p值和调整后的p值(padj)。

b. 创建火山图数据框
# 创建火山图数据框
res$gene <- rownames(res)
volcanoData <- as.data.frame(res[, c("log2FoldChange", "padj", "gene")])

# 定义一个新的列来表示颜色
volcanoData$color <- ifelse(volcanoData$padj <= 0.05 & volcanoData$log2FoldChange > 1, "red",
                            ifelse(volcanoData$padj <= 0.05 & volcanoData$log2FoldChange < -1, "blue", "grey"))

这里首先在res中添加一列,用于存储基因ID。然后,从res中选取需要用于绘图的列(log2FoldChange和padj),并转换为DataFrame,方便绘图。volcanoData$color列用于根据特定条件(如log2FoldChange的值和padj的显著性)定义点的颜色。

c. 绘制火山图
ggplot(volcanoData, aes(x = log2FoldChange, y = -log10(padj), color = color)) +
  geom_point() + 
  theme_minimal() +
  labs(title = "火山图", x = "Log2 Fold Change", y = "-Log10 adjusted P-value") +
  geom_vline(xintercept = 0, linetype = "dashed") +
  scale_color_identity()

这个代码块使用ggplot2包绘制火山图。aes函数定义了x轴和y轴的数据来源,并使用color列指定点的颜色。scale_color_identity()函数确保了在绘图中使用color列中指定的实际颜色值。

3. 绘制热图

热图是展示基因表达模式和样本间关系的有用工具。

a. 提取差异表达基因

选取调整后P值低于特定阈值的基因。

sigGenes <- subset(res, padj < 0.05)

这行代码从DESeq2的结果中选择调整后p值小于0.05的显著差异表达基因。

b. 准备绘图数据

从DESeq2对象提取计数矩阵,并对选中的基因进行归一化。

counts <- counts(dds, normalized = TRUE)
heatmapData <- counts[rownames(counts) %in% rownames(sigGenes), ]

这里先获取归一化的计数数据,然后从中选取显著差异表达的基因,用于绘制热图。

c. 绘制热图
pheatmap(heatmapData, cluster_rows = TRUE, cluster_cols = TRUE, scale = "row",
         color = colorRampPalette(c("blue", "white", "red"))(100),
         show_rownames = FALSE, show_colnames = TRUE)

使用pheatmap包绘制热图。cluster_rowscluster_cols用于聚类基因和样本。scale = "row"表示按行(基因)标准化。颜色从蓝色(低表达)到红色(高表达)变化。

知识拓展

在生物学研究中,选择特定的阈值来识别显著的差异表达基因是出于实用性和生物学意义的考虑。对于fold change和p-value的常用阈值(如fold change ≥ 2和p-value ≤ 0.05),这些标准主要基于以下考虑:

  • Fold Change ≥ 2的理由:

    • 生物学意义:Fold change用于衡量基因表达量的变化幅度。在许多情况下,至少两倍的表达变化被认为是生物学上有意义的。
    • 实验可重复性:较大的表达变化更可能在不同的实验和条件下被重复检测到。
    • 后续实验验证:较大的表达变化更容易被验证和观察。
  • P-value ≤ 0.05的理由:

    • 统计显著性:P-value是用于衡量结果在统计上是否具有显著性的指标。
    • 常规惯例:在生物学和其他科学领域,p-value ≤ 0.05作为显著性的标准已被广泛接受。
    • 平衡假阳性率:该阈值在控制假阳性和假阴性之间提供了一种平衡。

选择fold change ≥ 2和p-value ≤ 0.05作为差异表达基因的阈值是基于生物学意义、统计显著性、实验可重复性和后续实验验证的需要。然而,这些标准并不是绝对的,根据特定研究的目的和背景,阈值可以进行相应的调整。

总结

通过上述步骤,你可以使用R语言和DESeq2绘制差异表达基因的火山图和热图。这些可视化方法有助于理解和解释RNA-seq数据分析的结果。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐