专栏首页生信修炼手册巧用热图展示基因分布的总体趋势

巧用热图展示基因分布的总体趋势

热图是最常见的基因表达量数据的可视化方式,将每个单元格的表达量按照数值高低映射为不同的颜色,可以直观展示表达量在不同样本间的分布,再综合聚类的结果和基因/样本的注释信息,进一步丰富了展示的信息,一个经典的热图如下

图中提供了两大类的信息,第一大部分也是热图的主体部分,即表达量信息,上图中,每一列表示样本,每一行表示基因,用不同颜色表征表达量的不同数值;第二部分为行或者列的注释信息,对应上图中顶部的样本注释信息,从图例可以看到,有3类注释信息。那么这样的一幅图如何来做?

可用的R包当然很多,我最常用的是pheatmap这个R包,在作图之前,先准备好数据,即表达量数据和样本的注释信息

# 1.基因表达量数据
# 纯文本文件,每一行为基因,每一列为样本
> data <- read.table("data.txt", header = T, sep = "\t", row.names = 1)
> data[1:5, 1:5]
       GSM3076582 GSM3076584 GSM3076586 GSM3076588 GSM3076590
PNP      7.123107   7.115196   7.103920   7.377837   6.960771
PTGIS    2.483152   4.215764   4.174901   3.658576   3.296362
PTGS2    6.156447   6.539128   6.294466   4.918229   6.269206
NT5C1B   1.912044   3.691517   3.771510   4.546582   3.784036
SIRT3    4.210383   3.960023   3.623266   4.658751   4.347605

# 2.样本的注释信息
# 纯文本文件,每一行为样本,每一列为一种注释信息
> group <- read.table("sample.group.txt", header = T, sep = "\t", row.names = 1, stringsAsFactors = T)
> head(group)
           group sex    series
GSM3076582   ALS   m GSE112676
GSM3076584   ALS   m GSE112676
GSM3076586   ALS   f GSE112676
GSM3076588   CON   m GSE112676
GSM3076590   CON   m GSE112676
GSM3076592   CON   f GSE112676

准备好文件之后,只需要调用pheatmap即可快速出图,接下来的工作就是熟悉这个方法的各项参数,通过调参来优化我们的可视化结果。我推荐的做法是做加法,首先只使用最少的参数,画出基本图形,然后再添加必要的参数,美化输出,这样可以更好的掌握每个选项的作用,基本用法如下

pheatmap(data)

通过观察输出,我们来确定优化的方向。表达量的基本信息已经有了,对照文献中的图,需要进行以下调整

1.调整颜色梯度,默认的颜色梯度和文献中的不同

2.调整行和列的文字大小,缩小基因名字使其不至于重叠,同时不展示样本名

3.调整聚类结果,不展示列的聚类结果

带着这几个目的,从选项中查找我们需要的选项,并设置合适的值,代码如下

> color <- colorRampPalette(c("navy", "white", "firebrick3"))(50)
> pheatmap(data,
+     color = color,    # 图例颜色
+     cluster_col = FALSE,    # 不显示样本聚类
+     show_colnames = FALSE,  # 不显示样本名称
+     fontsize_row = 10,     # 调整基因名称大小
+ )

调参后的结果如下

这里只展示了调整的方法,具体的颜色设置可以根据你的审美进行更换,其实一幅好看的图表,画图的代码并不是最难的,配色,图片的纵横比才是决定颜值的灵魂。

搞定了表达量之后,再来添加样本的注释信息,代码如下

> pheatmap(data,
+     color = color,
+     cluster_col = FALSE,  
+     show_colnames = FALSE,
+     annotation_col = group, # 添加列的注释
+     fontsize_row = 10
+ )

效果图如下

可以看到,只需要提供列注释的数据框,函数会自动进行映射,当然我们可以通过一下参数手动调整颜色

> ann_colors = list(
+     series = c(GSE112676 = "blue",  GSE112680 = "green"),
+     group  = c(ALS = "brown", CON = "green", MIM = "pink"),
+     sex    = c(f = "blue", m = "red")
+ )
>
> pheatmap(data,
+     color = color,
+     cluster_col = FALSE,  
+     show_colnames = FALSE,
+     annotation_col = group,
+     annotation_colors = ann_colors,
+     fontsize_row = 10
+ )
>

虽然直接从网站粘贴别人的代码,可能可以实现你想要的效果,但是更多的也只是人云亦云,只用通过基本用法加筛选参数的两步走战略,才能更好的帮助我们掌握每个选项的作用。

·end·

文章分享自微信公众号:
生信修炼手册

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:lzyg
原始发表时间:2022-04-24
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • GSEA分析结果详细解读

    在解读传统的富集分析结果时,经常会有这样的疑问,一个富集到的通路下,既有上调差异基因,也有下调差异基因,那么这条通路总体的表现形式究竟是怎样呢,是被抑制还是激活...

    生信修炼手册
  • 肿瘤免疫浸润评估资源—TIMER

    目前已有各种关于免疫浸润的计算方法。我们介绍过CIBERSORT[CIBERSORT零代码分析免疫细胞浸润],它是一种很有影响力的反褶积方法,利用带有预定义的免...

    作图丫
  • 文献阅读:NAD+代谢相关基因在肌萎缩侧索硬化症中的预后研究

    https://www.frontiersin.org/articles/10.3389/fcell.2022.831273/full

    生信修炼手册
  • 「R」数据可视化3 : 热图

    本文作者蒋刘一琦,自嘲是一个有艺术追求的生信狗,毕业于浙江大学生物信息学专业,目前在复旦大学就读研究生,研究方向为宏基因组。

    王诗翔呀
  • 8种方法可视化你的单细胞基因集打分

    偶尔逛朋友圈发现一年前跟着我们生信技能树学生信的研究生开发了自己的单细胞数据分析相关R包,4(热图,气泡图,upset图,堆叠条形图)+4(密度散点图,半小提琴...

    生信技能树
  • 基因集富集分析(Gene Set Enrichment Analysis, GSEA)

    前面简单介绍过基因矩阵转置文件格式(* .gmt),并且也展示了如何使用R读取gmt文件,今天我们来看看如何做GSEA(Gene Set Enrichm...

    生信交流平台
  • TCGA预后基因联合免疫浸润

    今天给大家带来的是4分文章。这篇文章通过ESTIMATE算法计算免疫,间质和ESTIMATE得分,并以此筛选DEGs,进行生存分析、KEGG、GO、GSEA分析...

    科研菌
  • 图形解读系列 | 给你5个示例,你能看懂常用热图使用吗?

    热图是一种很常见的图,其基本原则是用颜色代表数字,让数据呈现更直观、对比更明显。常用来表示不同样品组代表性基因的表达差异、不同样品组代表性化合物的含量差异、不同...

    生信宝典
  • 图形解读系列 | 散点图也不简单

    来源:https://www.r-graph-gallery.com/272-basic-scatterplot-with-ggplot2.html

    生信宝典
  • DriverDBv3:一站式解决肿瘤多组学分析的“炫酷”神器

    目前,生信文章常常不再局限于单一组学分析,而是将基因表达与非编码RNA、突变、甲基化、CNV、临床数据进行整合分析,多组学分析已然成为生信分析的主流趋势。今天,...

    百味科研芝士
  • ICGC数据库使用

    TCGA是不错的癌症研究数据资源,但癌症研究不只是有TCGA。ICGC国际癌症基因组联盟,有亚洲、澳大利亚、欧洲、北美和南美17个行政区的89个项目,包括25,...

    生信宝典
  • 单细胞测序结合生信分析发优质的5分+文章

    今天和大家分享的是2020年7月发表在International journal of cancer(IF:5.145)上的一篇文章,作者通过单细胞测序技术和聚...

    百味科研芝士
  • 这篇最近发在Nature上的肿瘤进化有什么不一样?

    今天跟大家分享的是2020年2月发表在Nature(IF=43.07)杂志上的一篇文章。文章中作者讨论了2,658种癌症的进化史,说明了早期癌症检测的可能性。

    生信菜鸟团
  • Cytoscape插件3:Enrichment Map(1)

    早期的基因列表解释依赖于选择一系列高得分的基因,然后建立相当主观奇怪的关系。富集分析是一个自动的,基于严格的统计学的方法来分析和解释很大的基因列表,使用的是先验...

    Y大宽
  • 小样本多组学分析怎么发12分的Nature子刊?

    文献精读(多组学联合分析):Integrative analysis of genomic and epigenomic regulation of the t...

    百味科研芝士
  • 高通量数据分析必备|基因组浏览器使用介绍 - 1

    基因组浏览器是高通量测序分析的一个重要的可视化工具。相比于最终提供的表格,基因组浏览器可以提供更多的信息,如直观展示突变位点、查看有无新转录本或新的可变剪接形式...

    生信宝典
  • 基因集富集分析(GSEA)及其可视化

    基因集富集分析(Gene Set Enrichment Analysis, GSEA)是是一种计算方法,用于确定事先定义的一组基因是否在不同的样品中差异表达。

    青青青山
  • 惊!3个同样的数据挖掘策略居然同时发表

    这个问题怎么说呢,生命科学领域的数据挖掘课题的发表主要是靠工作量,很少有新颖或者前沿,无非就是替换癌症替换分子替换生物学功能基因集,我整理过大家耳熟能详的策略,...

    生信技能树
  • 筛选出来多基因要怎样分析才能发3+分?

    大家好,今天和大家分享的是2020年1月发表在“Frontiers in Genetics” (IF=3.258)上的一篇文章“An Integrated M...

    科研菌

扫码关注腾讯云开发者

领取腾讯云代金券