首页 > 科研绘图 > 干货 | heatmap常用参数应用及案例演示
2022
06-27

干货 | heatmap常用参数应用及案例演示

来源:解螺旋·医生科研助手

导语我们把筛出来的差异表用一种直观的图表示出来,一般使用热图(heatmap)将差异表达基因进行数据可视化处理,传统的方法采用R语言包里面的(heatmap)函数对其进行绘制,这里重点讲解一下heatmap包各个常用参数的使用,如果要求较高可以采用这种方法来画图。另外,如果要求不高,也可以使用Heatmap builder这个软件做图,窗口化操作,方法简单。

如果大家掌握了左边的heatmap图的做法,那么今天介绍一下右边这个更高级一点的heapmap图的做法,并对详细的代码做一下介绍。

首先我们还是导入数据,转换为矩阵,用到下面这几行代码。值得注意的是,导入代码的时候,需要先设置工作目录(working directory),菜单Misc里面的Change Working Directory,把工作目录改为数据存在所在的文件夹。注意:文件夹仅支持英文命名。

data<-read.table("heatmap.txt", head=T) #读取数据文件attach=data #数据备份row.names(data)<-data$index#提取行名data<-data[,-1] #去除数据中的行名data<-data.matrix(data) #转换为矩阵

index以Excel表中的第一列表头标题相对应。 Excel里的数据格式按以下编排,第一行从左到右分别为基因名,后面的数据可以是不同实验组间的比较,基因芯片的表达数据等等。但是这里的数据必须经过均一化,否则heatmap图没有意义。

Excel文件可以导出为.txt格式或者.csv格式两种,但是txt格式必须为“制表符分隔的文本.txt” 如果是.csv格式,第一行代码read.table改为read.csvlibrary(pheatmap) #加载pheatmap函数library("RColorBrewer") library()表示加载相应的函数,如果没有安装,要提前安装。这里我们加载了两个函数,一个是做heatmap图的函数pheatmap,另一个是颜色函数RColorBrewer。col.pal <- brewer.pal(9,"YlOrBr") 这里我们选择的是“YlOrBr”颜色,也就是Yl黄色,Or橙色,Br蓝色的过度,数字9代表从黄色过度到蓝色分为9个等级。如果不满意颜色,也可以替换。输入brewer.pal显示出多种颜色替换方案,如Greens,Greys,Oranges等单一颜色,也可以是多色渐变,如PuBuGn,RdYlBu,YlGnBu,YlOrRd等。

drows1 <- "euclidean"dcols1 <- "euclidean" 距离度量的方法分别赋值给聚类的行和列,符合Pearson相关分析的"correlation",dist函数支持的所有距离度量包括"euclidean", "maximum", "manhattan", "canberra","binary", "minkowski"。如果该值是上述值,则假定为距离矩阵。 生成heatmap图有以下两个方案,首先利用pheatmap函数看一下大概的效果,

方案1

pheatmap(data,cluster_cols=FALSE,clustering_distance_row="correlation",clustering_method="complete",color=colorRampPalette(c("green","black","red"))(100),scale="row", margins=c(5,10),fontsize_row=8,cellheight=10, cellwidth=30)

cluster_cols表示是否双向聚类,值可以是FALSE或TRUE

clustering_distance_row表示行距离度量的方法

clustering_method 表示聚类方法,值可以是hclust的任何一种,如"ward.D","single", "complete", "average", "mcquitty", "median", "centroid", "ward.D2"。color 表示颜色,赋值渐变颜色调色板colorRampPalette属性,选择“绿,黑,红”渐变,分为100个等级

sclae表示值集中的方向按照行或列,或者没有,值可以是"row", "column" 或者"none"

margins表示页边空白的大小

fointsize表示每一行的字体大小

cellheight表示每个单元格的高度

cellwidth表示每个单元格的宽度

方案2

hm.parameters <- list(data, color = col.pal,cellwidth = 15, cellheight = 12, scale = "none",treeheight_row = 200,kmeans_k = NA,show_rownames = T, show_colnames = T,main = "Full heatmap (avg, eucl, unsc)",clustering_method = "average",cluster_rows = TRUE, cluster_cols = TRUE,clustering_distance_rows = drows1, clustering_distance_cols = dcols1)

color 表示颜色,赋值之前定义的col.pal属性,“YlOrBr”颜色,也就是Yl黄色,Or橙色,Br蓝色的过度。

cellwidth表示每个单元格的宽度

cellheight表示每个单元格的高度

sclae表示值集中的方向按照行或列,或者没有,值可以是"row", "column" 或者"none"

treeheight_row表示200行的数值用于聚类构建heatmap图,默认为50,类似的参数还有treeheight_col表示列

kmeans_k表示kmeans聚类的个数,如果要用全部数据绘制heatmap图,那么输入NA

show_rownames表示显示行名

show_colnames表示显示列名

main表示heatmap图的title

clustering_method 表示聚类方法,值可以是hclust的任何一种,如"ward.D","single", "complete", "average", "mcquitty", "median", "centroid", "ward.D2"。

cluster_rows表示以行聚类,值可以是FALSE或TRUE

cluster_cols表示以列聚类,值可以是FALSE或TRUE

clustering_distance_rows表示行距离度量的方法,赋值为之前定义的drows1

clustering_distance_cols表示列距离度量的方法,赋值为之前定义的dcols1do.call("pheatmap", hm.parameters)

这里用到的是参数模式hm.parameters,最后do.call参数运行pheatmap函数 filename <- "my.pheatmap.pdf" #导出文件名outfile <- paste(basedir, filename, sep="/") #导出文件的路径do.call("pheatmap", c(hm.parameters, filename=outfile)) #做图并按路径导出文件 如果需要导出文件,只需要加入上面这几行代码即可。



最后编辑:
作者:萌小白
一个热爱网络的青年!

发布评论

表情