热图,又称为热点图、热度图,是一种数据可视化技术。pheatmap是一种在R语言中用于生成热图的包。pheatmap包提供了许多可定制化的参数,使用户可以轻松地自定义热图的外观和行为。
一、安装和加载pheatmap包
在使用pheatmap之前,必须先安装和加载该包。可以通过以下命令在R中安装pheatmap包:
install.packages("pheatmap")
安装完成后,在每个新的R会话中,使用以下命令加载pheatmap包:
library(pheatmap)
二、生成热图的基本语法
在pheatmap中,生成热图的基本语法如下:
pheatmap(mat, ...)
其中,mat参数是要绘制的矩阵,...是一系列可选的图形参数,如行和列的标签等。
三、加载数据
在使用pheatmap之前,需要将数据加载到R环境中。假设我们有一个名为data的数据集和一个名为labels的标签集。通过以下命令可以将数据集放到R环境中:
data <-read.csv("data.csv",header=TRUE,sep=",")
该命令将CSV文件data.csv作为数据集加载到data中,并将第一行设置为标题。sep参数指定了CSV文件中的列分隔符,通常为逗号。
如果有行标签和列标签,可以使用以下语法将它们分别放到row_labels和col_labels变量中:
row_labels <-data[,1]
col_labels <-names(data[,2:ncol(data)])
四、生成最简单的热图
以下是生成最简单热图的代码:
pheatmap(data)
该代码将直接生成一个热图,该热图没有标签、没有颜色边界或文本。这是最基本和简单的热图。
五、添加标签
热图的标签对于读者来说非常重要。可以使用pheatmap中的row_names和col_names参数添加相应的标签。以下是使用row_names和col_names参数生成标签的代码:
pheatmap(data, row_names=row_labels, col_names=col_labels)
六、自定义颜色
在pheatmap中,可以使用colorRampPalette函数来自定义颜色。以下是自定义颜色的代码:
# 自定义颜色
my_palette <- colorRampPalette(c("yellow", "red"))(n = 99)
pheatmap(data,
color=my_palette)
该代码将生成一个使用自定义颜色的热图,这里生成的颜色是从黄色到红色渐变的。color参数指定颜色向量。
七、添加行和列的注释
在热图中添加行注释和列注释是一项有用的功能。可以使用pheatmap中的注释函数来添加注释。以下是添加行注释和列注释的代码:
# 添加行注释和列注释
library(RColorBrewer)
col_anno_colors <- brewer.pal(3, "Set1")
rownames(data) <- paste("gene", 1:nrow(data), sep = "")
pheatmap(data,
annotation_col = data.frame(cell_type = c(rep("Type1", 3), rep("Type2", 3)),
row.names = colnames(data)),
annotation_row = data.frame(exp_group = c(rep("A", 2), rep("B", 2), rep("C", 2)),
row.names = rownames(data)),
annotation_colors = list(exp_group = c(A = col_anno_colors[1],
B = col_anno_colors[2],
C = col_anno_colors[3])))
该代码添加了行注释和列注释,它们用不同的颜色和标签表示了输入数据的分类。annotation_col和annotation_row参数用于注释行和列的注释,annotation_colors参数定义颜色。
八、设置字体
在pheatmap中,可以使用字体参数来设置字体。以下是设置字体的代码:
# 设置字体
library(extrafont)
pheatmap(data,
fontface = "bold",
fontsize_row = 14,
fontsize_col = 12)
该代码设置了热图中行和列的字体大小和粗细。
九、调整布局
pheatmap提供了几个参数,以方便调整热图的布局。以下是调整布局的代码:
# 调整布局
pheatmap(data,
cellwidth = 30,
cellheight = 20,
margin = c(10,12),
main = "My heatmap")
该代码调整了热图的单元格大小、边距和标题。cellwidth和cellheight参数用于定义单元格的大小,margin参数定义了热图的外边距,main参数定义了热图的标题。
十、合并热图
使用layout函数,可以将多个热图合并成一个完整的热图。以下是合并热图的代码:
# 合并热图
p1 <- pheatmap(data1,
fontsize_col = 10,
fontsize_row = 16,
annotation_col = data.frame(type = c("A", "B", "C")),
annotation_colors = list(type = c(A = "red", B = "blue", C = "green")))
p2 <- pheatmap(data2,
fontsize_col = 10,
fontsize_row = 16,
annotation_col = data.frame(type = c("D", "E", "F")),
annotation_colors = list(type = c(D = "red", E = "blue", F = "green")))
layout(matrix(c(1,2), 1, 2), widths = c(4,4))
p1
p2
该代码将两个热图水平排列,并将它们放到一个更大的热图中。
总结
简而言之,pheatmap是一种R语言包,用于生成高度可定制的热图。本文介绍了如何使用pheatmap来生成热图,并根据需要自定义行、列的标签、注释、颜色、字体以及调整布局。此外,还可以将多个热图合并成一个完整的热图。使用pheatmap包可以轻松生成优美而信息丰富的热图。