口腔医学小站

口腔文献阅读与资源分享

【R语言】热图绘制-heatmap函数

| 暂无评论

【R语言】热图绘制-heatmap函数

原创

生信交流平台


生信交流平台

2021-08-03 20:06

前面给大家介绍过

1.超详细的热图绘制教程(5000余字),真正的保姆级教程

2.R语言绘制基因表达热图(简易版)

3.一个R函数搞定风险评估散点图,热图

4.R绘制甲基化和表达谱联合分析热图

有小伙伴留言问,绘制热图的数据从哪里来?

    其实每一张热图后面都对应一个表达矩阵。如上图所示,每一行是一个基因,每一列是一个样本。每一个小的色块,就是这个基因在这个样本中的表达量。只是这里用颜色的深浅来表示基因表达值的高低而已,颜色越红,表达值越高。颜色越蓝表达值越低。

    也就是说绘制热图的原始数据就是一个表达矩阵。这个表达矩阵理论上可以包含所有基因,但在实际应用中,一般会去挑选差异表达的基因。因为绘制热图的一个目的,也是为了展示和检查挑选出的差异表达基因是否能够很好的将不同类型的样本区分开,这里有tumor和normal两种类型的样本。从图中我们可以看到,挑选出的差异表达基因能够很好的将tumor样本和normal样本区分开来。

下面我们结合一个具体的例子来讲解如何使用R的heatmap函数绘制热图

#读取所有miRNA的表达矩阵expr=read.table("miRNA_expr.txt",header=T,row.names=1,sep="t")#读取差异表达分析结果#差异表达分析可以参考 https://ke.qq.com/course/package/37513deg=read.table("MIR_DEG_fc_2.5_pval_0.01.txt",header=T,row.names = 1,sep="t")#设置样本类型type=factor(rep(c("CR","CC"),each=3))#提取差异表达miRNA的名字miRNA=rownames(deg)#提取差异表达miRNA对应的表达矩阵data=as.matrix(expr[miRNA,])#绘制热图heatmap(data,        cexCol = 1,  #设置列标签字体大小        scale="row"  #按行做归一化        )

得到热图如下

这个热图是使用默认配色方案来绘制的,前面我给大家介绍过

R语言中的颜色(一)

里面提到过

R自带了5个跟颜色相关的函数,即:

  • rainbow

  • heat.colors

  • terrain.colors

  • topo.colors

  • cm.colors

接下来我们就使用其他几种配色方案来绘制热图

heatmap(data, cexCol = 1,scale="row",col = cm.colors(256))

heatmap(data, cexCol = 1,scale="row",col = terrain.colors(256))

heatmap(data, cexCol = 1,scale="row",col = topo.colors(256))

heatmap(data, cexCol = 1,scale="row",col = heat.colors(256))

本文中使用的表达矩阵来自GEO公共数据库

https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE82236

关于GEO数据库检索和差异表达分析可以参考

基于GEO公共数据库的数据挖掘

课程网址:

https://ke.qq.com/course/package/37513

课程二维码:

长按二维码跳转

关注下方公众号,后台回复“GSE82236”获取原始数据

参考资料:

1.超详细的热图绘制教程(5000余字),真正的保姆级教程

2.R语言绘制基因表达热图(简易版)

3.一个R函数搞定风险评估散点图,热图

4.R绘制甲基化和表达谱联合分析热图

5.R语言中的颜色(一)

为了方便大家交流学习,共同进步,我特地创建了微信交流群

后台留言“生信交流群”入群

往期内容(点击图片获取相关信息)

Measure
Measure

点击数:0

发表回复

*为必填字段!