热图pheatmap()函数

2019-11-01 17:59:24 浏览数 (1)

先看一眼这个函数的参数,这么多! 而且最后还有省略号!

那么我们应该怎么合理使用这些参数让你的热图看起来更加高大上呢?

数据准备:

此次例子,我们选择了一套GEO数据库的肺癌数据,数据编号为GSE19804,120个样本,其中包含60个癌症样本和60个癌旁正常样本,前面我们使用t检验,并对p值进行BH校正,筛选fdr小于0.01的基因中前40个在癌症相对于正常样本中显著差异表达的基因进行热图绘制。

数据格式如下:

默认参数画图:

#绘图 pheatmap(heatmap_data)

是不是很不好看?基因名和样本名乱成一堆,也看不出来那些样本聚类到了一起…

参数调整:

#颜色参数:

color

表示颜色,用来画热图的颜色,可以自己定义,默认值为colorRampPalette(rev(brewer.pal(n = 7, name =”RdYlBu”)))(100),RdYlBu也就是Rd红色,Yi黄色,Bu蓝色的过度,则主调色为红黄蓝。

#数据变换参数:

scale

是指对数值进行均一化处理,在基因表达量的数据中,有些基因表达量极低,有些基因表达量极高,因此把每个基因在不同处理和重复中的数据转换为平均值为0,方差为1的数据,可以看出每个基因在某个处理和重复中表达量是高还是低,一般选择做row均一化。

clustering_method

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

cluster_rows

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

clustering_distance_rows

行距离度量的方法,如欧氏距离

cutree_rows

行聚类数

treeheight_row

行聚类树的高度,默认为50

gaps_row

对行进行分割,就不应对相应的行进行聚类

cluster_cols

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

clustering_distance_cols

列距离度量的方法

cutree_cols

列聚类数

treeheight_col

列聚类树的高度,默认为50

gaps_col

对列进行分割,就不应对相应的列进行聚类

#色度条参数

就是热图右上角那个小小的长方条

legend

逻辑值,是否显示色度条,默认为T

legend_breaks

显示多少个颜色数值段

legend_labels

对色度条上对应位置的字符进行修改

#注释条

annotation_colors

对标签的颜色进行修改

annotation_legend

是否显示标签注释条

annotation_row

数据框格式,用来定义热图所在行的注释条

annotation_names_row

逻辑值,是否显示行标签名称

annotation_col

数据框格式,用来定义热图所在列的注释条

annotation_names_col

逻辑值,是否显示列标签名称

#其他修改参数

main

设置图的标题

fontsize

是设置所有除主图以外的标签的大小

number_color

字体的颜色

show_rownames

是否显示行名

fontsize_row

行名的字体大小

labels_row

X轴坐标名设置

show_colnames

是否显示列名

fontsize_col

列名的字体大小

labels_col

y轴坐标名设置

经过小编一系列参数更改,修改如下:

#加载包

library(pheatmap) library(RColorBrewer)

#设置颜色

color.1 <- colorRampPalette(rev(c(“#ff0000”, “#000000”, “#00ff00”)))(100)

#注释条

#设置列的注释条

anno_col=data.frame(sampleType=factor(rep(c(“tumor”,”normal”),each=60)))

#与数据样本名对应 row.names(anno_col)=colnames(heatmap_data)#设置列的注释条的颜色 ann_color=list(sampleType=c(tumor=’#cd0000′,normal=’#3a5fcd’))

#绘图

pheatmap(heatmap_data,scale=”none”,color=color,annotation_col=anno_col,annotation_colors=ann_color,fontsize=8,show_colnames=F,main=”GSE19804:tumor vs normal heatmap”,legend_breaks=c(4,12),legend_labels=c(‘low’,’high’))

是不是已经比一开始使用默认参数好看多了呢?如下:

当然还有一些其他的用到不多的参数

留给读者自己去实验一下吧…

#小格子参数设置

热图是由一个个的小四方格子组成的,每一个小格子代表一个基因在一个样本内的表达情况

fontsize_number

小格子中数字大小

display_numbers

逻辑值,是否在小格子中显示数字

number_format

小格子中数字显示形式,但仅有在display_numbers=T时才能使用

na_col

设置小格子为缺失值时的颜色

cellwidth

表示每个小格子的宽度

cellheight

表示每个小格子的高度

#输出文件参数设置

一般可以直接将画好的热图以png格式或者pdf格式进行写出

filename

输出图画的文件名

width

输出图画的宽度

height

输出图画的高度

我们下期绘图再见~

0 人点赞