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

author author     2023-03-14     515

关键词:

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

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

图中提供了两大类的信息,第一大部分也是热图的主体部分,即表达量信息,上图中,每一列表示样本,每一行表示基因,用不同颜色表征表达量的不同数值;第二部分为行或者列的注释信息,对应上图中顶部的样本注释信息,从图例可以看到,有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)

巧用热图展示基因分布的总体趋势_数据_02

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

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

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

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

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

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

调参后的结果如下

巧用热图展示基因分布的总体趋势_聚类_03

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

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

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

效果图如下

巧用热图展示基因分布的总体趋势_文本文件_04

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

> 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
+ )
>

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

r绘图pheatmap热图绘制——高阶篇

...据展示上往往都喜欢将感兴趣的功能或者通路基因绘制成热图形式,能够让读者一目了然的发现某功能是增强了?还是减弱了?在实际过程中,表型实验上已经证明了炎症反应的走向,从初期增强到后期减弱。但在对应的高通量... 查看详情

单细胞转录组之拟时序分析

...基因的表达绘制点图将前50个随拟时序变化的基因做聚类热图分支表达分析建模识别具有分支依赖性表达的基因。使用全部的基因进行绘图创建一个热图来展示基因表达沿两个分支的分叉做热图查看拟时序基因在两个亚群的表达... 查看详情

一个函数实现基因内具有多种突变类型的热图的绘制(代码片段)

??我们平常多见的基因突变热图是一个基因一个格子,一种突变类型,但实际上在同一个病人中,同一个基因往往具有多种突变类型,因此传统的热图绘制工具并不能满足我们绘图的需要。应研究需要,本人自己写了一个热图绘... 查看详情

【r画图】环形热图

参考技术A热图(heatmap)在生信领域基本就是常规操作,基本技能,入门操作。能画热图的工具也有很多,我自己常用的R包是pheatmap。最近经常看见环状的热图,所以就搜了一下资料学习一下,测试一下。环状热图我也经常会在... 查看详情

扩增子图表解读3热图:差异菌otu及功能

热图是使用颜色来展示数值矩阵的图形。通常还会结合行、列的聚类分析,以表达实验数据多方面的结果。 热图在生物学领域应用广泛,尤其在高通量测序的结果展示中很流行,如样品-基因表达,样品-OTU相对丰度矩阵非常... 查看详情

gsea详细解释及结果解读

...化的影响。GSEA分析结果如下表GSEA可视化结果如下图下图展示了clusterProfiler包GSEA分析可视化结果,Count为核心基因的数目,GeneRatio为Count与setSize的比值,Y轴为基因集Description。 查看详情

r语言-第一次用rstudio画热图

...和图标的功能:如图中的解释:R语言中的pheatmap包是制作热图的一个工具,在基因表达中,根据得来的实验数据,在使用pheatmap制作的基因表达或其它测试结果的热图中,如可以用不同颜色展示基因的表达量的差异。注:引用网... 查看详情

应用统计学描述数据分布集中趋势

一、数值平均数1、算术平均数(一)简单算术平均数(二)加权算术平均数 分组数据中,x表示各组水平值,f代表各组变量值出现的频数。  由组距数列,计算算术平均数是否标志平均数具有某种性... 查看详情

应用统计学描述数据分布集中趋势

一、数值平均数1、算术平均数(一)简单算术平均数(二)加权算术平均数 分组数据中,x表示各组水平值,f代表各组变量值出现的频数。  由组距数列,计算算术平均数是否标志平均数具有某种性... 查看详情

r数据可视化——聚类热图pheatmap

...考技术A在前面的章节中,我们介绍了如何使用ggplot2绘制热图ggplot2绘制热图的方式很多,如geom_raster、geom_tile等但通常仅仅绘制热图是不够的,还需要对数据进行聚类,即绘制聚类热图。例如,最常用的就是将差异基因的表达值... 查看详情

单细胞基因个性化作图之气泡图

...不仅仅局限于单细胞数据,其他的数据也可以用来做气泡热图。Seurat包自带做气泡图的函数DotPlot,可以通过ggplot修饰,对图形的外形,颜色等修改,具体操作如下。以上是最普通的作图,其他文章中还出现过更加高级的做法,... 查看详情

单细胞数据分析中的秩和检验与t检验

...转化为秩之后我们可以通过绘图的方式对转换的结果进行展示,在图中我们使用“•”代表来自样本集a,使用“o”代表数据来自样本集b。如果总体A和总体B总体分布位置分布相同(H_0:A=B),那么转换的结果如下图所示:首... 查看详情

r数据可视化5:热图heatmap

参考技术A热图是一个以颜色变化来显示数据的矩阵。ToussaintLoua在1873年就曾使用过热图来绘制对巴黎各区的社会学统计。生物学中热图经常用于展示多个基因在不同样本中的表达水平。然后可以通过聚类等方式查看不同组(如疾... 查看详情

珍藏史上最全热图绘制工具及操作流程(一)

参考技术Aheatmap(热图)一词相信大家肯定不会陌生,在很多重量级科学论文中非常常见。使用heatmap可以容易展示多组分之间关系或相关性,也能展示基因表达前后差异。heatmap其实还蕴含不少分析的秘诀,这么高大上的heatmap是... 查看详情

使用deeptools生成chip-seq信号热图与谱图

...信号,并通过plotHeatmap和plotProfile函数分别产生ChIP-seq信号热图与谱图。computeMatrix提供以下两种用法以不同的参考系计算ChIP-seq的信号--scoreFileName,-S:输入的bw文件,可以是校正后的bw文件--regionsFileName,-R:BED/GTF格式的文件,指定... 查看详情

统计学第七版贾俊平课后答案

...方法2.4数据的误差思考与练习  第3章数据的图表展示3.1数据的预处理3.2品质数据的整理与展示3.3数值型数据的整理与展示3.4合理使用图表思考与练习 第4章数据的概括性度量4.1集中趋势的度量4.2离散程度的度量统计学... 查看详情

go富集分析

...术AGO富集是组学数据分析常用的手段,通常用来挖掘差异基因中GOterm的富集程度。Fisher'sexacttest是常用的统计检验方法,但这种方法存在明显的缺点。很多公司提供的测序分析结果都普遍使用这样的方法,导致很多后续的分析... 查看详情

热图绘制

...考技术A公众号链接:http://mp.weixin.qq.com/s/mNSkf1rjWTCtE1pIOuI2rA热图是做分析时常用的展示方式,简单、直观、清晰。可以用来显示基因在不同样品中表达的高低、表观修饰水平的高低等。任何一个数值矩阵都可以通过合适的方式用热... 查看详情