在线客服
客服热线
400-664-9912
客服组:
阿趣客服
客服组:
在线客服
QQ:
Amy
服务时间:
8:00 - 24:00

关注官方微信平台

电话:400-664-9912

QQ:2850277929

邮箱:marketing@biotree.cn

地址:上海市嘉定区新培路51号焦点梦想园B栋5楼

Copyright 2012-2020 SHANGHAI BIOTREE BIOTECH CO., LTD. All rights reserved.上海阿趣生物科技有限公司. 版权所有 沪ICP备17019578号-1

实用干货 | 代谢组学中层次聚类热图的R语言实现-pheatmap( )函数

分类:
阿趣动态
发布时间:
2021/12/10 10:53
浏览量

在代谢组学的数据分析中,通常根据代谢物的含量进行层次聚类分析,以反映各个样本之间代谢物含量的差异。

 

常用的数据分析工具中,R语言中的程序包可以灵活绘制出非常美观的层次聚类热图形。本文将利用R语言中的pheatmap包对绘制层次聚类热图进行详细的介绍(详细参数见文末彩蛋!)。

 

1  pheatmap( )函数常用参数简介

pheatmap(mat,  # 热图的输入数据,数据类型为数值型data.frame或matrix

color = colorRampPalette(rev(brewer.pal(n = 7, name = "RdYlBu")))(100),  # 热图颜色设置

cellwidth = NA,  # 设置热图单元格的宽度

cellheight = NA,  # 设置热图单元格的高度

treeheight_row = ifelse((class(cluster_rows) == "hclust") || cluster_rows, 50, 0),  # 设置行聚类树的高度

treeheight_col = ifelse((class(cluster_cols) == "hclust") || cluster_cols, 50, 0),  # 设置列聚类树的高度

cluster_rows = TRUE,  # 是否对行进行聚类

cluster_cols = TRUE,  # 是否对列进行聚类

cutree_rows = NA,  # 设置将行聚类的结果分割成多少个集群,分割依据时基于层次聚类结果,如果未对行进行聚类,则该参数被直接忽略

cutree_cols = NA,  # 设置将列聚类的结果分割成多少个集群,分割依据时基于层次聚类结果

annotation_row = NA,  # 在热图左侧添加注释,可用于显示代谢物的分类信息,数据为data.frame格式

annotation_col = NA,  # 在热图顶部添加注释,可用于显示分组信息,数据为data.frame类型

border_color = "grey60",  # 热图内部单元格的边界颜色,可设置为NA无边界

display_numbers = F,  # 是否在热图单元格中显示相应的数值

fontsize = 10,  # 基础字体大小设置

fontsize_row = fontsize,  # 行名字体大小设置

fontsize_col = fontsize,  # 列名字体大小设置

filename = NA,  # 保存热图的全文件路径,包含路径和输出的热图文件名(当设置了filename时,图形显示器将不再显示热图

…)

2 pheatmap( )函数绘制热图实战

 第一步:安装所需的R包及原始数据导入

install.packages("openxlsx")   # 导入excel数据所需的R包

install.packages("pheatmap")   # 绘制热图所需的R包

library(openxlsx)

library(pheatmap)

data <- read.xlsx(‘E: /R_TEST.xlsx’)  # 导入数据(案例中的数据非真实数据)

rownames(data) <- data[, 1]  # 设置行名

第二步:基础热图-默认参数

pheatmap(data[, c(3:8)])

第三步:设置颜色

pheatmap(data[, c(3:8)], color = colorRampPalette(c('red', 'white', 'blue'))(100))  

# 其中('red', 'white', 'blue')和(100)可根据需求自行修改

第四步:设置单元格大小

pheatmap(data[, c(3:8)], cellwidth = 18, cellheight = 18)

第五步:设置聚类树的高度

pheatmap(data[, c(3:8)], treeheight_row = 100)  

# 设置行(代谢物)聚类树的高度

pheatmap(data[, c(3:8)], treeheight_col = 100)  

# 设置列(样本)聚类树的高度

第六步:取消聚类

pheatmap(data[, c(3:8)], cluster_rows = FALSE)  

# 取消行聚类

pheatmap(data[, c(3:8)], cluster_cols = FALSE)  

# 取消列聚类

第七步:依据聚类结果对热图进行分割

pheatmap(data[, c(3:8)], cluster_rows = TRUE, cluster_cols = FALSE, cutree_rows = 3) 

# cutree_rows = 3 是根据聚类结果进行的具体值设置

第八步:添加样本分组信息

annotation_col = data.frame(Group = factor(rep(c('A','B'), c(3,3))), row.names = colnames(data[, c(3:8)]))   

# 对每个样本设置相对于的分组,(A、B为组名,3为每个组的样本数)

注意:原始数据表中每个分组的样本放在一起,否则factor( )需一一对应样本名设置相对应的分组名。pheatmap(data[, c(3:8)], cluster_rows = TRUE, cluster_cols = FALSE, cutree_rows = 3, annotation_col = annotation_col)

第九步:添加代谢物分类信息

annotation_row = data.frame(Class = data$Class, row.names = rownames(data))

pheatmap(data[, c(3:8)], cluster_rows = TRUE, cluster_cols = FALSE, cutree_rows = 3, annotation_col = annotation_col, annotation_row = annotation_row)

第十步:设置单元格边框颜色,默认颜色为灰色(grey30)

pheatmap(data[, c(3:8)], cluster_rows = TRUE, cluster_cols = FALSE, cutree_rows = 3, annotation_col = annotation_col, annotation_row = annotation_row, border_color = NA)

# border_color = NA 表示不设置单元格边框颜色

第十一步:单元格内显示数值

pheatmap(data[, c(3:8)], cluster_rows = TRUE, cluster_cols = FALSE, cutree_rows = 3, annotation_col = annotation_col, annotation_row = annotation_row, border_color = NA, display_numbers = T)

第十二步:设置字体大小

pheatmap(data[, c(3:8)], cluster_rows = TRUE, cluster_cols = FALSE, cutree_rows = 3, annotation_col = annotation_col, annotation_row = annotation_row, border_color = NA, display_numbers = T, fontsize = 11)也可使用fontsize_row和fontsize_col分别对行标签和列标签进行字体大小设置。pheatmap(data[, c(3:8)], cluster_rows = TRUE, cluster_cols = FALSE, cutree_rows = 3, annotation_col = annotation_col, annotation_row = annotation_row, border_color = NA, display_numbers = T, fontsize = 11, fontsize_row = 13, fontsize_col = 15)

第十三步:保存热图

pheatmap(data[, c(3:8)], cluster_rows = TRUE, cluster_cols = FALSE, cutree_rows = 3, annotation_col = annotation_col, annotation_row = annotation_row, border_color = NA, display_numbers = T, filename = 'E:/R_TEST.png')   # filename为保存路径和文件名注意:设置filename后,RStudio图形界面将不再显示出热图。

 

彩蛋:pheatmap( )函数的参数详解

网盘下载链接:

https://pan.baidu.com/s/1ao690Lpk2upH57_pu5AElw 

提取码:98e4

>
>
>
实用干货 | 代谢组学中层次聚类热图的R语言实现-pheatmap( )函数