画图专题:热图pheatmap()函数

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

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

数据准备:

此次例子,我们选择了一套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
输出图画的高度

我们下期绘图再见~

基础实验

转染方法的选择以及转染技术的注意事项

2019-10-31 16:10:08

基础实验

如何让Western blot曝光图变得更好看

2019-11-1 19:47:35

声明 本网站部分文章源于互联网,出于传递更多信息和学习之目的转载,并不保证内容正确或赞同其观点。
如转载稿涉及失效、版权等问题,请立即联系管理员;我们会予以修改、删除相关文章,请留言反馈
Notice: When your legal rights are being violated, please send an email to: sci666net@qq.com.
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索