前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pheatmap 与 complexheatmap

pheatmap 与 complexheatmap

原创
作者头像
派大星在吗
发布2021-12-06 13:52:38
3580
发布2021-12-06 13:52:38
举报
文章被收录于专栏:我的技术专刊

ComplexHeatmap 实战

参数介绍里面很丰富,但具体细节可能需要多做几张图才能慢慢体会!

下载及练习使用的矩阵在下面代码:

代码语言:txt
复制
#下载可以通过GitHub和biocmanage两种,前者最新版本,后者稳定版本
代码语言:txt
复制
library(devtools)
代码语言:txt
复制
install_github("jokergoo/ComplexHeatmap")
代码语言:txt
复制
sessionInfo()
代码语言:txt
复制
library(ComplexHeatmap)
代码语言:txt
复制
#这个矩阵是官方document提供的
代码语言:txt
复制
set.seed(123)
代码语言:txt
复制
nr1 = 4; nr2 = 8; nr3 = 6; nr = nr1 + nr2 + nr3
代码语言:txt
复制
nc1 = 6; nc2 = 8; nc3 = 10; nc = nc1 + nc2 + nc3
代码语言:txt
复制
mat = cbind(rbind(matrix(rnorm(nr1*nc1, mean = 1,   sd = 0.5), nr = nr1),
代码语言:txt
复制
                  matrix(rnorm(nr2*nc1, mean = 0,   sd = 0.5), nr = nr2),
代码语言:txt
复制
                  matrix(rnorm(nr3*nc1, mean = 0,   sd = 0.5), nr = nr3)),
代码语言:txt
复制
            rbind(matrix(rnorm(nr1*nc2, mean = 0,   sd = 0.5), nr = nr1),
代码语言:txt
复制
                  matrix(rnorm(nr2*nc2, mean = 1,   sd = 0.5), nr = nr2),
代码语言:txt
复制
                  matrix(rnorm(nr3*nc2, mean = 0,   sd = 0.5), nr = nr3)),
代码语言:txt
复制
            rbind(matrix(rnorm(nr1*nc3, mean = 0.5, sd = 0.5), nr = nr1),
代码语言:txt
复制
                  matrix(rnorm(nr2*nc3, mean = 0.5, sd = 0.5), nr = nr2),
代码语言:txt
复制
                  matrix(rnorm(nr3*nc3, mean = 1,   sd = 0.5), nr = nr3))
代码语言:txt
复制
)
代码语言:txt
复制
mat = mat[sample(nr, nr), sample(nc, nc)] # random shuffle rows and columns
代码语言:txt
复制
rownames(mat) = paste0("row", seq_len(nr))
代码语言:txt
复制
colnames(mat) = paste0("column", seq_len(nc))

第一部分 Heatmap函数

直接实战来认识参数

图一涉及到颜色,标题,分版块等

图一

代码展示
代码语言:txt
复制
Heatmap(mat,
代码语言:txt
复制
        name = "mat",
代码语言:txt
复制
        col=colorRamp2(c(-2,0,2),c('skyblue2','white','red3')),  #颜色设置
代码语言:txt
复制
        color_space = "RGB",
代码语言:txt
复制
        border = T,
代码语言:txt
复制
        cluster_columns = F,
代码语言:txt
复制
        cluster_rows = F,
代码语言:txt
复制
        row_order=NULL,                                 
代码语言:txt
复制
        column_order=NULL,
代码语言:txt
复制
        column_title_side = "bottom",                     #设置行名及列名具体格式
代码语言:txt
复制
        column_title_gp = gpar(fontsize=13,fondface="bold"),
代码语言:txt
复制
        row_title_gp = gpar(fontsize=13,fondface="bold"),
代码语言:txt
复制
        row_split = factor(c(rep(c("gene A","gene B","gene C"),time= c(4,6,8))),    #根据行列分版块
代码语言:txt
复制
                           levels = c("gene A","gene B","gene C")),
代码语言:txt
复制
        column_split = factor(c(rep(c("low risk","high risk"),12)),
代码语言:txt
复制
                              levels =c("low risk","high risk"),
代码语言:txt
复制
                              labels = c("low risk","high risk")),
代码语言:txt
复制
        show_column_names = F)

第二部分 Annotation

注释主要用到 HeatmapAnnotation 这个参数,参数使用直接上图来体会

图二涉及到注释

图二

代码语言:txt
复制
#图二
代码语言:txt
复制
Heatmap(matrix(rnorm(100), 10), 
代码语言:txt
复制
       col = colorRamp2(c(-2,0,2),c("skyblue","white","red3")),
代码语言:txt
复制
        show_row_names = F,
代码语言:txt
复制
        row_split = rep(c("model 1","model 2","model3"),time=c(2,3,5)),
代码语言:txt
复制
        row_title_gp = gpar(fontsize=14,fontface='bold'),
代码语言:txt
复制
        top_annotation = HeatmapAnnotation(foo = anno_block(gp = gpar(fill = 2:4),
代码语言:txt
复制
                                                            labels = c("group1", "group2", "group3"), 
代码语言:txt
复制
                                                            labels_gp = gpar(col = "white", fontsize = 10))),
代码语言:txt
复制
        cluster_rows = F,
代码语言:txt
复制
        cluster_columns = F,
代码语言:txt
复制
        column_split = rep(1:3,time=c(2,3,5)),
代码语言:txt
复制
        show_column_names = F)

·

简单认识参数之后,那就开始吧,实战一

实战一

中的一张简单的热图,热图中5中signature在不同分组 中的表达,注释文件时是

实战一

.

一个小时搞定

实战一

代码如下:
代码语言:txt
复制
mat <- matrix(rnorm(500),nrow = 5)
代码语言:txt
复制
colnames(mat) <- paste0("sample",1:100)
代码语言:txt
复制
rownames(mat) <- paste0("signature",c(1,16,3,2,13))
代码语言:txt
复制
cli <- data.frame(Tobacoo=sample(c("No","Yes"),100,replace = T),
代码语言:txt
复制
                  Alchoal=sample(c("No","Yes"),100,replace = T),
代码语言:txt
复制
                  HPV16=c(sample(c("No","Yes"),30,replace = T),rep("No",20),rep("Yes",30),rep("No",20)),
代码语言:txt
复制
                  cluster=rep(c("A","B","C1","C2"),time=c(20,30,30,20)))
代码语言:txt
复制
cli$Tobacoo <- factor(cli$Tobacoo)
代码语言:txt
复制
Tobacoo <- c(pal_nejm()(8)[1],pal_nejm()(8)[2])
代码语言:txt
复制
names(Tobacoo) <- c("Yes","No")
代码语言:txt
复制
cli$Alchoal <- factor(cli$Alchoal)
代码语言:txt
复制
Alchoal <- c(pal_nejm()(8)[1],pal_nejm()(8)[2])
代码语言:txt
复制
names(Alchoal) <-c("Yes","No")
代码语言:txt
复制
cli$HPV16 <- factor(cli$HPV16)
代码语言:txt
复制
HPV16<- c(pal_nejm()(8)[1],pal_nejm()(8)[2])
代码语言:txt
复制
names(HPV16)<- c("Yes","No")
代码语言:txt
复制
cli$cluster <- factor(cli$cluster)
代码语言:txt
复制
cluster <- c(pal_nejm()(8)[3],pal_nejm()(8)[4],pal_nejm()(8)[5],pal_nejm()(8)[6])
代码语言:txt
复制
names(cluster) <- c("A","B","C1","C2")
代码语言:txt
复制
library(ComplexHeatmap)
代码语言:txt
复制
library(circlize)
代码语言:txt
复制
library(ggsci)
代码语言:txt
复制
Heatmap(mat,col = colorRamp2(c(-2,0,2),c("skyblue2","white","red2")),
代码语言:txt
复制
        color_space = "RGB",
代码语言:txt
复制
        column_split = factor(rep(c("A","B","C"),time=c(20,30,50))),
代码语言:txt
复制
        cluster_columns = F,
代码语言:txt
复制
        show_column_names = F,
代码语言:txt
复制
        top_annotation = HeatmapAnnotation( Tobacoo=cli$Tobacoo,
代码语言:txt
复制
                                            Alchoal=cli$Alchoal,
代码语言:txt
复制
                                            HPV16=cli$HPV16,
代码语言:txt
复制
                                            cluster=cli$cluster,
代码语言:txt
复制
                                            annotation_legend_param=list(labels_gp = gpar(fontsize = 9),
代码语言:txt
复制
                                                                         title_gp = gpar(fontsize = 9, fontface = "bold"),
代码语言:txt
复制
                                                                         ncol=1),
代码语言:txt
复制
                                            col = list(Tobacoo=Tobacoo,
代码语言:txt
复制
                                                       Alchoal=Alchoal,
代码语言:txt
复制
                                                       HPV16=HPV16,
代码语言:txt
复制
                                                       cluster=cluster),
代码语言:txt
复制
                                            show_annotation_name = TRUE,
代码语言:txt
复制
                                            annotation_name_side="right",
代码语言:txt
复制
                                            annotation_name_gp = gpar(fontsize = 9, fontface = "bold")))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • ComplexHeatmap 实战
    • 第一部分 Heatmap函数
      • 第二部分 Annotation
        • 简单认识参数之后,那就开始吧,实战一
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档