十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Pheatmap怎样绘制热图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站建设、外贸网站建设、西工网络推广、成都小程序开发、西工网络营销、西工企业策划、西工品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供西工建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
随机生成,10个基因,每个基因4个处理,每个处理3个平行,表达量RPKM值在1-120之间,矩阵第一个RPKM数值为250:
> library(pheatmap)
> data <- matrix(runif(120,0,120),ncol=12)
> data[1] <- 250
> colnames(data) <- c(paste0('tr_1_',seq(1,3)),paste0('tr_2',seq(1,3)),paste0('tr_3',seq(1,3)),paste0('tr_4',seq(1,3)))
> rownames(data) <- c(paste0('gene',seq(1,10)))
运行过程生成matrix和图片:
利用border_color参数修改边界颜色:
>pheatmap(data,border_color = "blue")
> pheatmap(data,border_color = "red")
> pheatmap(data,border_color = "pink")
> pheatmap(data,border_color = "green")
colorRampPalette参数的使用:
> colors <- colorRampPalette(c("blue", "red"))(5)#颜色从蓝色到红色渐变色,5表示长度为5的颜色梯度
> colors
[1] "#0000FF" "#3F00BF" "#7F007F" "#BF003F" "#FF0000"
> pheatmap(data,border_color = "yellow",color=colorRampPalette(c('#00ff00','white','#EE0000'))(100))
运行结果如下:
scale参数的使用:
scale是指对数值进行均一化处理,在基因表达量的数据中,有些基因表达量极低,有些基因表达量极高,因此把每个基因在不同处理和重复中的数据转换为平均值为0,方差为1的数据,可以看出每个基因在某个处理和重复中表达量是高还是低。
“row”、“colume”、“none”分别表示对成行或成列的进行均一化,或不做均一化,一般数据处理中基因的表达量做均一化处理,选择“row”
> pheatmap(data,border_color = "yellow",color = colorRampPalette(c('pink','blue'))(100),scale='row')
参数:cluster_rows/cluster_cols和cellwidth/cellheight
对基因的顺序进行聚类,因此可使用cluster_rows/cluster_col来修改;同时可以使用cellwidth/cellheight对每个单元方块的大小进行设置:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20)
参数:legend/legend_breaks/legend_labels
使用legend阈值逻辑值来对色度条进行隐藏,以及对色度条上对应位置的字符进行修改:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'))
运行结果如下:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend=FALSE,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'))
参数:gaps_row/gaps_col、cutree_rows/cutree_cols和treeheight_row/treeheight_col
cutree_rows按聚类分割,如cutree_rows=2,把基因表达量聚类分成2类;gaps_col=c(3,6,9)不能聚类,把重复都分开。gaps_XX对行或列进行分割,就不应对相应的行或列进行聚类;treeheight_row参数改变聚类的支长长度:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend=FALSE,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'),cutree_rows = 2,gaps_col = c(3,6,9),treeheight_row = 10)
参数:annotation_row/annotation_col、annotation_colors、annotation_legend和annotation_names_row/annotation_names_col
利用annotation_col参数,给各个处理添加一个颜色标签;
利用annotation_colors对标签的颜色进行修改;
利用annotation_legend设置是否显示标签注释条;
利用annotation_names_col设置是否显示标签名称。
>annotation_col=data.frame(treat=factor(rep(paste0('T',1:4),each=3)),class=factor(rep(paste0('class',1:2),each=6)))
>ann_color=list(a=c(T1='yellow',T2='#757083',T3='firebrick',T4='#66A61E'),b=c(class1='blue',class2='#1B9E77'))
> row.names(annotation_col)=colnames(data)
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'),cutree_rows = 2,gaps_col = c(3,6,9),treeheight_row = 10,annotation_col=annotation_col,annotation_legend=TRUE,annotation_colors=ann_color,annotation_names_col=TRUE)
运行过程中产生数据与图:
annotation_col:
参数:display_numbers、number_format、number_color和fontsize_number
利用display_numbers参数可以在每个单元框内显示每个方框对于的数据,其中有三个选项,TRUE、FALSE以所对应的数据,如果设置display_numbers=T,这显示做了均一化的数据(如果之前使用过scale参数),设置display_numbers=data,则表示为直接显示原始数据,即可直接显示出RPKM值在单元格中;
number_color顾名思义就是这是设置显示数据的颜色了
fontsize_number则为显示每个数据的大小;
利用number_format可以设置保留小数位数或者字符串格式(如%.2f),但仅有在display_numbers=T时才能使用,很鸡肋,因此不建议使用该参数,而我们一般是直接显示RPKM值,所以我们需要之前对数据集进行保留小数处理,不然数据显示会超出单元格
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'),cutree_rows = 2,treeheight_row = 10,annotation_col=A,annotation_legend=TRUE,annotation_colors=ann_color,annotation_names_col=TRUE,display_numbers = TRUE,number_color = 'red',fontsize_number = 8,number_format = "%.2f")
运行结果如下:
参数:show_rownames/show_colnames、fontsize_col/fontsize_row、fontsize和main
show_rownames表示是否显示gene名称,用逻辑值设置,fontsize_col设置横坐标名称的大小,fontsize则是设置所有除主图以外的标签的大小,利用main设置热图的名称,如:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'),cutree_rows = 2,treeheight_row = 10,annotation_col=A,annotation_legend=TRUE,annotation_colors=ann_color,annotation_names_col=TRUE,display_numbers = TRUE,number_color = 'red',fontsize_number = 8,number_format = "%.2f",show_rownames = FALSE,fontsize_col = 15,fontsize=5,main = "heatmap test 2")
看完上述内容,你们掌握Pheatmap怎样绘制热图的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!