热图2:分组聚类,让热图分裂

还记得之前我们发过的热图吗?


image.png

样品之间聚类的时候发现对照和实验组混合到了一起。这是由于样品一致性差造成的,这种情况很多时候都会遇到。一般的做法是放弃列的聚类。但是我不,很多文章也是,我就想样品聚类。
怎么办?
让聚类按照样本来,把热图裂开来就可以了。这次使用的还是ComplexHeatmap包。
读入作图数据、并加载包:

setwd("D:/生物信息学")
A <- read.csv("基因.csv", header = T,row.names = 1)
library(ComplexHeatmap)

对样本进行注释:

A <- as.matrix(A)
samples <- rep(c('Control', 'Treat'), c(3, 3)) #定义样本分组信息  
for (i in 1:nrow(A)) A[i, ] <- scale(log(unlist(A[i, ] + 1), 2))#标准化处理
Group = factor(rep(c("control","treat"),times = c(3,3)))#分组信息,用于热图分割
Group = factor(Group,levels = c("control","treat"))

热图顶部注释(结合图的效果自行修改):

top_annotation = HeatmapAnnotation(cluster = anno_block(gp = gpar(fill = c("#009933", "#FF3333")),
                       labels = c("Control","Treat"),
                       labels_gp = gpar(col = "black", fontsize = 12)))#通用代码

作图:

Heatmap(A,#表达矩阵
        col = colorRampPalette(c("navy","white","firebrick3"))(100),#颜色定义
        show_row_names = F,#不展示行名
        top_annotation = top_annotation,#顶部分组信息
        column_split = Group,#用group信息将热土分开,以group聚类
        column_title = NULL,#不显示列标题
        show_column_names = F)#不显示列名
效果如下,看起来还是可以!
image.png

热图都是常规操作了,没啥好说的,我们这里准备做一个系列,大概会有4~5篇文章的篇幅,每篇文章短小精悍,直击问题要害,说说热图的不常规操作,让热图更加美化,也更加有高级文章的质感!
那么下一次的热图系列预告:---行的分组注释!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容