ComplexHeatmap绘制热图并进行个性化标注

使用ComplexHeatmap包来绘制热图并进行个性化标注

iMeta | 2022年iMeta进展与审稿人致谢-CSDN博客

详细学习见:R语言教程|如何为热图添加指定的基因标记? - 知乎 (zhihu.com)​​​​​​

数据格式和基础版

模拟数据

## 热图并标记
rm(list = ls())
library(ComplexHeatmap)
library(circlize)
#生成数据
set.seed(123)
group1 <- runif(100, 3, 5)
group2 <- runif(100, 2, 7)
group3 <- runif(100, 30, 50)
group4 <- runif(100, 20, 70)
df <- data.frame(group1, group2, group3,group4)
#添加行名
rownames(df) <- paste("gene", 1:nrow(df), sep = "")

#由于scale函数默认对列进行归一化,因此这里做了两次转置;
df_scaled <- t(scale(t(df)))
head(df_scaled)

##基础版
Heatmap(df_scaled,row_names_gp = gpar(fontsize = 6)
        ,column_names_gp = gpar(fontsize = 8),
        name = "exp")
dev.off()


#进行颜色修改
range(df_scaled)#标准化后数值范围
#[1] -0.9581163  1.3979563
#然后,根据数据范围建立自定义颜色映射关系;自定义颜色
col_fun = colorRamp2(c(-1,0.25,1.5), c("greenyellow","white", "red"))
#使用自定义渐变色绘制热图;
Heatmap(df_scaled,row_names_gp = gpar(fontsize = 6),
        column_names_gp = gpar(fontsize = 8),
        col = col_fun,##自己修改的颜色
        name = "exp")
dev.off()

聚类树

#关于聚类树
p <- Heatmap(df_scaled,
             row_names_gp = gpar(fontsize = 6),
             column_names_gp = gpar(fontsize = 8),
             column_split = 2,##添加gap
             column_title = "ABCD",#标题
             show_row_dend = FALSE,##是否显示聚类树
             col = col_fun,##自己修改的颜色
             name = "exp")
p
dev.off()

注释条和标注

##注释条
class = anno_block(gp = gpar(fill = c("blue","#FF9900"),
                             col="white"),height = unit(5, "mm"),
                   labels = c("AAAA", "BBBB"),
                   labels_gp = gpar(col = "white", fontsize = 8,fontface="bold"))
group= HeatmapAnnotation(group=class)
p <- Heatmap(df_scaled,
             row_names_gp = gpar(fontsize = 6),
             column_names_gp = gpar(fontsize = 8),
             column_split = 2,##添加gap
             column_title = "ABCD",#标题
             cluster_rows = TRUE,
             show_row_dend = FALSE,##是否显示聚类树
             col = col_fun,##自己修改的颜色
             top_annotation =group,#注释条
             name = "exp")
p
dev.off()

#显示的具体数值标记
#anno_mark()其中at是原始数据矩阵的索引,标签是对应的文本
mark <- c("gene10","gene20","gene30","gene40","gene50")
lab = rowAnnotation(ano = anno_mark(at = c(10,20,30,40,50),
                                    labels = mark,
                                    labels_gp = gpar(fontsize = 8)))
p <- Heatmap(df_scaled,
             row_names_gp = gpar(fontsize = 6),
             column_names_gp = gpar(fontsize = 8),
             column_split = 2,##添加gap
             column_title = "ABCD",#标题
             cluster_rows = TRUE,#行聚类
             show_row_dend = FALSE,##是否显示行聚类树
             show_column_dend =  FALSE,##列聚类树
             col = col_fun,##自己修改的颜色
             top_annotation =group,#注释条
             show_row_names = FALSE,#原来的行名不显示
             right_annotation = lab,#注释的行名
             row_names_side = "left",
             name = "exp"##图例注释
             )
p
dev.off()

R语言绘制基因表达热图来展示差异基因结果 (qq.com)

感谢:ComplexHeatmap作者和基迪奥生物 !!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值