如何用R做通路富集热图
时间: 2023-10-13 19:06:21 浏览: 173
要使用 R 语言绘制通路富集热图,你需要进行以下步骤:
1. 首先,使用通路富集分析工具(例如 GSEA、KEGG 等)对你的基因表达数据进行通路富集分析,并将结果保存为表格文件(例如 CSV 文件),其中每个通路都有其富集得分和基因列表。
2. 加载所需的库:
```R
library(ggplot2)
library(RColorBrewer)
library(pheatmap)
```
3. 导入数据文件,例如 CSV 文件:
```R
data <- read.csv("pathway_enrichment_results.csv", header = TRUE, row.names = 1)
```
4. 对数据进行预处理,例如去除不需要的列、对基因列表进行拆分和排序等:
```R
# 去除不需要的列
data <- data[, c("NES", "pval", "FDR", "Genes")]
# 对基因列表进行拆分,并将其转换为因子变量以进行排序
data$Genes <- lapply(strsplit(as.character(data$Genes), split = "///"), sort)
data$Genes <- factor(data$Genes, levels = unique(data$Genes))
```
5. 绘制热图,并按照通路富集得分(NES)对其进行着色。你可以选择使用不同的颜色调色板(例如 RColorBrewer 库中提供的调色板):
```R
# 选择颜色调色板
colormap <- colorRampPalette(brewer.pal(9, "YlOrRd"))
# 绘制热图
pheatmap(t(data[, 1:3]),
color = colormap(100), # 颜色调色板
cluster_rows = FALSE, # 关闭行聚类
cluster_cols = FALSE, # 关闭列聚类
show_rownames = FALSE, # 不显示行名称
show_colnames = FALSE, # 不显示列名称
annotation_col = data$Genes, # 基因列表作为列注释
fontsize_col = 5, # 列字体大小
fontsize_row = 8, # 行字体大小
legend = FALSE # 不显示图例
) +
scale_fill_gradientn(colours = colormap(100), # 颜色调色板
name = "NES", # 色标名称
limits = c(min(data$NES), max(data$NES))) # 色标范围
```
6. 这将生成一个基本的通路富集热图,其中每个单元格的颜色根据其富集得分而变化。你可以根据需要进行自定义,例如更改颜色调色板、添加行列名称等。
阅读全文