什么是热图?手把手教你看懂热图

1. 什么是热图?

如图,就是一副组学研究中热图的常用绘制模式,每个小方格表示每个基因在不同样本中的定量值,其颜色表示该基因表达量大小,红色为高表达,蓝色为低表达。

  1. 行名称:通常为样本名称。
  2. 列名称:通常为基因名称。
  3. 图例信息:左侧图例表示热图表达量的颜色说明,右侧图例展示分组信息。热图绘制过程中通常会进行Z-score归一化处理,因此图例数据显示为0左右对称分布,这表示已进行Z-score标准化。
  4. 列聚类:如果不进行聚类,列的排序将保持原始数据的顺序。通过聚类可以判断不同组别的样本是否被正确分组。理论上,来自同一组的样本应该表现出相似的特征。如果某样本被错误地聚类到其他组,可能意味着该样本在变异度上较大,或者在样本采集或测序等过程中存在问题。
  5. 行聚类:如果不进行聚类,行的排序将保持原始数据的顺序。聚类分析可以帮助识别具有一致表达模式的基因群体。
  6. 列分组信息:展示样本的分组标签,通常用于标明不同条件或类别的样本。
  7. 行分组信息:展示基因的分组信息,通常用于表示基因的功能类别或其他分类信息。

2. 绘图的数据准备

分为绘图数据与分组数据,其中分组数据为非必须的。

示例数据可以在BioLadder2-在线绘制热图-使用教程找到并下载。

2.1. 热图数据

数据来源一般是搜库结果定量表。包含2个维度的数据,一般情况下,每一行是一个基因,每一列是一个样本。

2.2. 样本分组数据(可选)

行名的名称和个数要和之前的heatmap数据保持一致,列名为分组名称,可以包含不止一个分组。

2.3. 基因分组数据(可选)

行名的名称和个数要和之前的heatmap数据保持一致,列名为分组名称,可以包含不止一个分组。

3. 绘制热图的方法

3.1. BioLadder v2.0 云平台在线绘图

BioLadder v2.0 是一个在线绘图平台,我们只需要上传数据,系统自动生成图表,不需要写代码,适合0代码基础的同学。网址:BioLadder v2.0-生物信息在线分析云平台

3.2. R语言绘制热图

喜欢自己写代码的同学,也附上R语言代码可供参考。

library(pheatmap) # 加载pheatmap这个R包

# 1,读取热图数据文件
df = read.delim("https://www.r2omics.cn/res/demodata/heatmap/data.heatmap.txt", #文件名称 注意文件路径,格式
                header = T, # 是否有标题
                sep = "\t", # 分隔符是Tab键
                row.names = 1, # 指定第一列是行名
                fill=T) # 是否自动填充,一般选择是
# (可选)读取分组数据文件
dfSample = read.delim("https://www.r2omics.cn/res/demodata/heatmap/sample.class.txt",header = T,row.names = 1,fill = T,sep = "\t")
dfGene = read.delim("https://www.r2omics.cn/res/demodata/heatmap/gene.class.txt",header = T,row.names = 1,fill = T,sep = "\t")

# 2,绘图
pheatmap(df, 
         annotation_row=dfGene,   # (可选)指定行分组文件
         annotation_col=dfSample, # (可选)指定列分组文件
         show_colnames = TRUE,    # 是否显示列名
         show_rownames=TRUE,      # 是否显示行名
         fontsize=5,              # 字体大小
         color = colorRampPalette(c('#0000ff','#ffffff','#ff0000'))(50), # 指定热图的颜色
         annotation_legend=TRUE,  # 是否显示图例
         border_color=NA,         # 边框颜色 NA表示没有
         scale="row",             # 指定归一化的方式。"row"按行归一化,"column"按列归一化,"none"不处理
         cluster_rows = TRUE,     # 是否对行聚类
         cluster_cols = TRUE      # 是否对列聚类
)

这段代码通过pheatmap包绘制热图,主要步骤是:

  1. 使用read.delim()加载热图数据和分组信息(可选的行列分组)。
  2. 使用pheatmap()绘制热图,设置颜色、显示行列名、归一化方式(按行或按列)以及是否进行聚类等参数。

最终生成带有分组信息和聚类的热图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值