1. 热图(heatmap)
热图(heatmap)是在两个维度用不同颜色展示一种现象的大小的一种数据可视化技术。有两种本质上不同的热图,网格热图(grid heatmap)和空间热图(spatial heatmap)。
- 网格热图(grid heatmap)
网格热图用不同颜色代表不同数值的二维矩形图,同时两个维度还可以通过颜色进行聚类。
比如不同物种在不同基因上的表达水平。
Figure 1. heatmap集群热图
- 空间热图(spatial heatmap)
空间热图将空间现象的大小通过颜色投射到地图上。
比如世界的温度分布图。
Figure 2. heatmap空间热图
- 等值线图(choropleth map)
此外,还有与空间热图相似的,常用于地理上可视化的等值线图(choropleth map)。等值线图按照地理边界分组,如国家,州,省或者人为划分的植被区和气候区等,常常具有不规则边界。
比如美国各州人口密度图。
Figure 3. choropleth map等值线图
2. 绘制热图
这篇文章记录的是绘制网格热图的方法,包括常用的R包pheatmap和ggplot2。
2.1. pheatmap包
- 输入数据(gene_expression.txt)的格式
- 第一行标题行
- 第一列是基因名称
- 第二列是数值(比如表达量)
- 可以是一组数据,则只有第二列;也可以是多组数据,依次是第二列及之后列。
1 | tf ath_1 ath_2 egr_1 egr_2 |
读取数据和聚类
1
2
3
4
5df<-read.table("gene_expression.txt",sep= " ", header = T,row.names = 1)
df_row <- hclust(dist(df)) #对行聚类
df <- df[df_row$order,] #按行聚类结果排序
df_column <- hclust(dist(t(df))) #对列聚类
df <- df[,df_column$order] #按列聚类结果排序绘制热图
1
2
3
4BiocManager::install("pheatmap")
library(pheatmap)
pheatmap(mat=df,color = colorRampPalette(c("lightgreen", "yellow","orange","red"))(20),legend_breaks = c(1:4), legend_labels = c("1.0","2.0","3.0","4.0"), border_color="white",treeheight_row = 50, treeheight_col = 8, display_numbers = TRUE, number_color = "black",main = "TF heatmap",cellwidth = 50, cellheight = 10)
# 其中color = colorRampPalette(c("lightgreen", "yellow","orange","red"))(20) #设置颜色渐变,值从低到高依次是浅绿色-黄色-橙色-红色,共20个颜色。更完整的pheatmap参数
1 | pheatmap(mat = mat, # 表达矩阵 |
2.2. ggplot2包
这个我还没试过,把https://zhuanlan.zhihu.com/p/464964887提到的代码摘抄在这。
1 | # Step1 根据实际情况确定是否对数据进行标准化 |
3. references
- 欢迎关注微信公众号:生信技工
- 公众号主要分享生信分析、生信软件、基因组学、转录组学、植物进化、生物学概念等相关内容,包括生物信息学工具的基本原理、操作步骤和学习心得。