热图如何绘制-complexheatmap绘制热图

 我来答
猪八戒网
2023-06-28 · 百度认证:重庆猪八戒网络有限公司官方账号
猪八戒网
猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。
向TA提问
展开全部
热图绘制

公众号链接:

热图是做分析时常用的展示方式,简单、直观、清晰。可以用来显示基因在不同样品中表达的高低、表观修饰水平的高低等。任何一个数值矩阵都可以通过合适的方式用热图展示。

本篇使用R的ggplot2包实现从原始数据读入到热图输出的过程,并在教程结束后提供一份封装好的命令行绘图工具,只需要提供矩阵,即可一键绘图。

上一篇讲述了Rstudio的使用作为R写作和编译环境的入门,后面的命令都可以拷贝到Rstudio中运行,或写成一个R脚本,使用Rscriptheatmap.r运行。我们还提供了Bash的封装,在不修改R脚本的情况下,改变参数绘制出不同的图形。

绘图首先需要数据。通过生成一堆的向量,转换为矩阵,得到想要的数据。

注意:运算符的优先级。

Vector转为矩阵(matrix),再转为数据框()。

虽然方法比较繁琐,但一个数值矩阵已经获得了。

还有另外2种获取数值矩阵的方式。

可以看到列名字中以数字开头的列都加了

X

。一般要尽量避免行或列名字以

数字开头

,会给后续分析带去一些困难;另外名字中出现的非字母、数字、下划线、点的字符都会被转为

,也需要注意,尽量只用字母、下划线和数字。

与上一步类似,只是改为文件名,不再赘述。

数据读入后,还需要一步格式转换。在使用ggplot2作图时,有一种长表格模式是最为常用的,尤其是数据不规则时,更应该使用(这点,我们在讲解箱线图时再说)。

数据转换后就可以画图了,分解命令如下:

热图出来了,但有点不对劲,横轴重叠一起了。一个办法是调整图像的宽度,另一个是旋转横轴标记。

设置想要的颜色。

调整legend的位置。

调整背景和背景格线以及X轴、Y轴的标题。

合并以上命令,就得到了下面这个看似复杂的绘图命令。

图形出来了,就得考虑存储了,

至此,完成了简单的heatmap的绘图。但实际绘制时,经常会碰到由于数值变化很大,导致颜色过于集中,使得图的可读性下降很多。因此需要对数据进行一些处理,具体的下次再说。

complexheatmap绘制热图

通过Heatmap我们就可以形成单个热图。

PS:colorRamp2默认的使用的配色方案是LAB的。如果想使用RGB的则可以通过其中的space参数进行修改。

*1、即使出现了异常值,在制定的颜色当中,异常值也只是显示最大值而不是说是把整体的颜色分布给破坏了。我们可以比较一下pheatmap和Heatmap的结果

如果数据当中含有缺失值,如果我们不想去掉想要可视化的话,可以通过na_col来指定颜色

通过上图,我们可以使用对热图的四周都可以进行标题注释。

无监督的聚类属于热图的可视化的一个重要组成部分。

分类聚类只要包括两步:计算距离矩阵以及应用聚类。一般来说计算距离的方式包括pearson,spearman以及kendall。这个计算方式是通过1--cor(x,y,method)来实现的。在函数当中则是通过clustering_distance_rows/columns来进行实现的。

*2、cluster_rows分开设置不同的颜色

我们可以通过column/row_dend_reorder来对聚类的结果进行重新排序

一般情况下,热图当中各个观测值的顺序是基于聚类的分组来进行排列的。有时候我们想要自己排序顺序。这个时候就可以自定义去顺序。通过row_order/column_order可以来定义其排序。PS:当我们自定义顺序之后,聚类的顺序就随之关闭了。

默认情况下对于列名和行名都是显示的。我们可以对其进行自定义

热图的分割主要包括多种方式

一般的热图上都是方块形的颜色的变化。我们可以通过cell_fun参数来对热图本身进行自定义。这个参数本质是一个for循环的函数。这个接受7个参数分别是:-j矩阵当中行的索引。-i矩阵当中的列的索引。-x在热图当中测量点的X坐标-y在热图当中测量点单元格Y的坐标-width单元格的宽度。默认值是unit(1/nrow(sub_mat),"npc")-height单元格的高度。默认值是unit(1/nrow(sub_mat),"npc")-fill单元格的颜色。通过一个简单的例子我们来详细说一下具体的含义

上述两个热图的区别就在于增加了一个cell_fun参数。通过比较两个热图可以明白cell_fun本质上就是给单元格自定义。这个例子当中,通过自定义函数,我们取small_mat1的数据放到热图上。放的位置及基于i,j,x,y来决定的。这个例子当中四个参数都没有变化。所以默认热图的数据集和自定义的数据集和变化是一样的。即:在small_data[1,1]的位置放置small_data1[1,1]的内容。以此类推。

由于是函数嘛,所以可以更加的自定义数据了。比如加入if来筛选数据

同样的由于自定义绘图也是基于grid系统的。所以grid系统另外一些绘图参数也是可以使用的。所以我们可以隐藏默认的热图显示来定义不同的图形。

我们可以通过width和height来调整整体图片的大小。通过heatmap_width以及heatmap_height来调整热图部分的大小。

生活很好,等你超越

宏基因组,代谢组:高分文章中物种与代谢物相关性热图是怎么画的?

测序行业的蓬勃发展,带来微生物组学日新月异的变化。目前,单一组学的文章不断“贬值”,前沿研究的目光从单一组学逐步拓展至多组学对贯穿分析,即结合多个组学的分析角度,从多个层面阐述生物学机制。

微生物多组学贯穿分析策略十分丰富:如常见的16s与宏基因组贯穿分析,可以验证物种的特征、丰富功能的探究;而16s与代谢组的贯穿分析思路同样常见于高分文章中,通过16s探究不同处理/环境下菌群的物种组成变化,结合代谢组对应的代谢物的变化,进而找到不同处理/环境下引发细菌丰度差异最终导致代谢表型差异的机制。参考阅读《选好思路和方法,给自己一篇多组学高分文章》

在16s与代谢组贯穿分析中,相关性热图是一个重要的分析手段,主要用于逐一呈现细菌物种与代谢物间的相关性高低,是筛选潜在关联的物种与代谢物的主要途径,对于下游的实验起到指导意义。此类相关性热图在高分文章中频繁出现,足见其重要性(图1、图2)。

图1物种代谢物热图(2015,CellHost&Microbe,IF=15.753)[1]

图2物种代谢物热图(2018,NatureMedicine,IF=30.641)[2]

那么,该如何画出此类高分文章中的相关性热图呢?这里,以16s与代谢组的数据为例,向大家分享如何使用R语言进行两个组学数据的相关性计算、绘制相关性热图。

1.加载R包

library(psych)

library(pheatmap)

library(reshape2)

2.读入数据

phy<-(file="",sep="t",header=T,=1)

图3微生物丰度信息表格

met<-(file="",sep="t",header=T,=1)

图4代谢物丰度信息表格

3.计算相关性、p值

cor<-(phy,met,method="pearson",adjust="none")

cmt<-cor$r

pmt<-cor$p

head(cmt)

head(pmt)

4.数据保存

<-cbind(rownames(cmt),cmt)

(,file="",sep="t",=F)

图5相关性系数表格

<-cbind(rownames(pmt),pmt)

(,file="",sep="t",=F)

图6p值表格

df<-melt(cmt,="cor")

df$pvalue<-(pmt)

head(df)

(df,file="",sep="t")

图7关系对信息

5.绘制显著性标记

if(!(pmt)){

ssmt<-pmt<0.01

pmt[ssmt]<-'**'

smt<-pmt>0.01&pmt<0.05

pmt[smt]<-'*'

pmt[!ssmt&!smt]<-''

}else{

pmt<-F

}

6.绘制相关性热图

mycol<-colorRampPalette(c("blue","white","tomato"))(800)

pheatmap(cmt,scale="none",cluster_row=T,cluster_col=T,border=NA,

display_numbers=pmt,fontsize_number=12,number_color="white",

cellwidth=20,cellheight=20,color=mycol)

图8R语言绘制的物种+代谢物相关性热图

pheatmap(cmt,scale="none",cluster_row=T,cluster_col=T,border=NA,

display_numbers=pmt,fontsize_number=12,number_color="white",

cellwidth=20,cellheight=20,color=mycol,filename="")

参考文献

[1]KosticAD,GeversD,SiljanderH,etal.Thedynamicsofthehumaninfantgutmicrobiomeindevelopmentandinprogressiontowardtype1diabetes.CellHostMicrobe.2015;17(2):260.1016/j.chom.2015.01.001

[2]Hoyles,Lesleyetal.“Molecularphenomicsandmetagenomicsofhepaticsteatosisinnon-diabeticobesewomen.”Naturemedicinevol.24,7(2018):1070-1080.doi:10.1038/s41591-018-0061-3

原文

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式