在生信分析中,热图是一种极为常见的数据可视化形式,在R中热图的绘制是一件方便且简单的事情,今天我们来一起看下如何使用 pheatmap 包实现基础热图的绘制!
首先,我们需要一个表达矩阵,在单细胞测序数据中,表达矩阵一般行是基因列是细胞,数据为其表达量,为了方便大家测试,我们下面先自己构建一组数据:
创建一个16个基因(8个上调、8个下调),6个细胞(2类)的表达数据:
set.seed(123)
expdata= t(sapply(1:16, function(x){
if(x %in% c(1:8)){
c(runif(3, 11, 13), runif(3, 8, 11))
}else{
c(runif(3, 8, 10), runif(3, 11, 14))
}
}))
rownames(expdata) = paste("gene", 1:16, sep = "")
colnames(expdata) = paste("sample", 1:6, sep = "")
group = c(rep("G1", 3), rep("G2", 3))
然后,直接在R中加载pheatmap 包并调用 pheatmap 函数即可:
library(pheatmap)
pheatmap(expdata)
结果如下:
![](https://img.haomeiwen.com/i26982876/1fc54c006b67415b.png)
pheatmap函数中也提供了丰富的参数,部分参数设置如下:
pheatmap(expdata,
filename = "test.pdf", # 输出pdf文件名
height = 4, width = 4, # pdf文件的高和宽
cellwidth = 6, # 格子宽度
border_color = NA, # 格子边框
fontsize_row = 7, fontsize_col = 7, # 行/列名大小
cluster_cols = F, # 不对样本聚类
show_colnames = F, # 不显示样本名
fontsize = 6) # 行/列名除外的字体大小
此时,在当前路径下会生成一个test.pdf文件,调整后的热图显示如下:
![](https://img.haomeiwen.com/i26982876/acda648590731501.png)
除此之外,还可以设置配色和分组标签等内容:
#添加样本分组注释
annotation_col = data.frame(group)
rownames(annotation_col) = colnames(expdata)
#设置分组对应的颜色
ann_colors = list(group = c(G1 = "darkgreen", G2 = "orange"))
#设置热图(表达量)的颜色
colors = colorRampPalette(c("navy", "white", "firebrick3"))(100)
#输出到pdf
pdf("test.pdf", width = 3.5, height = 4)
pheatmap(expdata, color = colors, border_color = NA, fontsize_row = 7, fontsize_col = 7, cluster_cols = F, show_colnames = F, fontsize = 6, annotation_col = annotation_col, annotation_colors = ann_colors)
dev.off()
![](https://img.haomeiwen.com/i26982876/cb0e1aa453ffa000.png)
![](https://img.haomeiwen.com/i26982876/132e383b3637a2a1.jpg)
网友评论