R语言绘图 | 使用pheatmap快速绘制热图

时间:2022-07-23
本文章向大家介绍R语言绘图 | 使用pheatmap快速绘制热图,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

热图是我们展示数据时常用的图形,今天小编教大家使用"pheatmap" 快速绘制热图

首先,我们需要准备输入文件。比如,我想绘制热图来比较30个基因在6个组织里的表达情况。

如图所示,第一列为基因名,第一行为不同组织的名称,整理好后保存为制表符分隔的txt格式,准备好输入文件后我们就可以开始绘制热图啦。

## 安装R包
install.packages("pheatmap")
## 加载R包
library("pheatmap")
## 输入文件
exp <- read.table("input.txt",sep="t",header=T,row.names = 1)
## 绘制热图
pheatmap(exp,cellwidth=20, cellheight=10,cluster_cols=T,cluster_rows=T)

exp:输入的表达量。

cellwidth:热图每格的宽度。

cellheight:热图每格的高度。

cluster_cols:对列进行聚类。

cluster_rows:对行进行聚类。

执行完代码后,热图就绘制好啦!

由于我们不同基因的表达量数值差异太大,所以导致我们色阶的区分度特别小,这时我们可以通过对表达量取对数来解决这个问题。

## 对表达量取对数绘制热图
pheatmap(log((exp+1),2),cellwidth=20, cellheight=10,cluster_cols=F,cluster_rows=T)

这时我们可以看到,热图中基因的表达量有了明显区分,这30个基因在E和F组织中基本不表达。

如果我们想给热图换个配色,可以用以下代码:

## 更换热图颜色
pheatmap(log((exp+1),2),cellwidth=20, cellheight=10,cluster_cols=F,cluster_rows=T,color=colorRampPalette(c("navy","white","red"))(10))

colorRampPalette后输入要更改的颜色,(10)代表将色阶分为10个梯度。

pheatmap还有许多其他功能,具体使用方法大家可以参考:

https://www.jianshu.com/p/1c55ea64ff3f

参考资料:

https://cran.r-project.org/web/packages/pheatmap/pheatmap.pdf