9.热图注释--超方便的文件格式导入

本文详细介绍了如何使用R语言和openxlsx、ComplexHeatmap库读取并处理Excel文件,实现行和列注释,以及自定义颜色分组,最终生成带有注释的热图。作者提供了具体步骤和示例代码,帮助读者解决热图注释问题。
摘要由CSDN通过智能技术生成

热图注释问题已经困扰了很多人,特别是那个颜色注释,在这个教程里你只要制备好你的xlsx文件,就能轻松搞定,拒绝烦恼。
行注释分组文件:annotation_row.xlsx
列注释分组文件:annotation_col.xlsx
颜色分组文件:ann_colors.xlsx
样本基因丰度文件:rrr_matrix.xlsx(一般是列名为样本,名行名为基因名)

 为了更好的看清每个样本的数据结构,我直接上图把!

ann_colors.xlsx

annotation_row.xlsx

 

annotation_col.xlsx

 rrr_matrix.xlsx

话不多说,上R代码:


library(openxlsx)             # Load the openxlsx package
library(ComplexHeatmap)

# 读取Excel文件,将第一列设置为行名
rrr<- read.xlsx("rrr_matrix.xlsx", colNames = TRUE, rowNames = TRUE)
annotation_col=read.xlsx("annotation_col.xlsx", colNames = TRUE, rowNames = TRUE)
annotation_row=read.xlsx("annotation_row.xlsx", colNames = TRUE, rowNames = TRUE)


# 读取Excel文件
data <- read.xlsx("ann_colors.xlsx")

# 初始化一个空的列表
ann_colors <- list()

# 遍历Excel文件中的每一行数据
for (i in 1:nrow(data)) {
  category <- data$Category[i]
  key <- data$Key[i]
  value <- data$Value[i]
  
  # 检查category是否已经存在于列表中
  if (!category %in% names(ann_colors)) {
    ann_colors[[category]] <- setNames(character(), character())
  }
  
  # 将数据添加到正确的category下
  ann_colors[[category]][key] <- value
}

# 查看重构的列表
print(ann_colors)


#自己设定颜色

pheatmap(as.matrix(rrr),cluster_rows = T,cluster_cols = F,
         color=colorRampPalette(c("navy","white","firebrick3"))(100),
         show_colnames = T,border_color = NA,scale = "row",show_rownames =F,
         annotation_col = annotation_col, annotation_row = annotation_row,
         annotation_colors = ann_colors)
################行和列进行分裂
pheatmap(as.matrix(rrr),cluster_rows = T,cluster_cols = T,
         color=colorRampPalette(c("navy","white","firebrick3"))(100),
         show_colnames = T,border_color = NA,scale = "row",show_rownames =F,
         annotation_col = annotation_col, annotation_row = annotation_row,
         annotation_colors = ann_colors,cutree_row = 4, cutree_cols = 5)

 结果图如下

 

按照聚类分裂一下:

学废了吗?

关注我,以后的内容更精彩哦。
另外如有错误欢迎指正!
b站号:羽球最强生信

微信公众号:小秋的R语言笔记

闲鱼号/淘宝号:小秋家的小卖铺

  • 16
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值