学习科“谱”丨R语言热图(Heatmap)绘制的模块

以下文章来源于鸿生信,作者鸿麝


在对一个矩阵数据的可视化显示中,热图(Heatmap)是一个最常用的方法。我们在做转录组学、蛋白质组学、代谢组学等数据分析中,对最后筛选到的靶标通常会用热图的方式发表在文章中。


热图绘制有很多种方法,我们早些年是用Mev和HemI这个两个软件的,比较适合非生信的初学者使用,在之前讲组学相关的培训时通常介绍的也是这两个软件。


自从对R语言的使用达到一定水平后,我们就改用R语言来实现热图的绘制了,
R语言中有许多可以用来进行做热图绘制的包,满足不能层次的需求。





1.stats包中的heatmap方法





这个是R自带的包不需要安装和载入,但是功能有限,只能是满足简单应用。
heatmap(data,cexRow=0.5)




学习科“谱”丨R语言热图(Heatmap)绘制的模块




2.heatmap.plus包的heatmap.plus




heatmap.plus可以进行多组分组


heatmap.plus(HDData,ColSideColors=t(col.patientcol),cexRow=0.5)




学习科“谱”丨R语言热图(Heatmap)绘制的模块






3.gplots包中heatmap.2



可以满足常规需求


heatmap.2(HDData,col=redgreen(75), scale='row', ColSideColors=patientcolors,
          key=TRUE, symkey=FALSE,density.info='none', trace='none', cexRow=0.5)




学习科“谱”丨R语言热图(Heatmap)绘制的模块






4.ggplot2包的geom_tile





没有想到ggplot2包也能绘制热图吧,不过没有找到绘制树的功能,不太推荐用这个包去绘制热图。
ggplot(data.m, aes(Var2, Var1)) + geom_tile(aes(fill = value),
       colour = 'white') +theme_grey(base_size = base_size) + labs(x = '', y ='') +
scale_x_continuous(expand = c(0, 0),labels=coln,breaks=1:length(coln))+
scale_y_continuous(expand = c(0, 0),labels=rown,breaks=1:length(rown))+
  theme(axis.ticks = element_blank(),
    axis.text.x = element_text(size = base_size * 0.7, angle = 90, hjust= 0, colour = 'grey50'),
    axis.text.y = element_text(size = base_size * 0.6, hjust=1,colour='grey50'))




学习科“谱”丨R语言热图(Heatmap)绘制的模块






5.lattice包的levelplot





ggplot2包可以画热图,那么老牌的绘图包lattice也是可以的噢。用levelplot也可以实现。




levelplot(data.m,aspect = 'fill',xlab='',ylab='',
          scales = list(x = list(rot = 90, cex=0.8),y=list(cex=0.5)),
          colorkey = list(space = 'left'),col.regions = heat.colors)




学习科“谱”丨R语言热图(Heatmap)绘制的模块






6.pheatmap包





这个包是我用的最多的包,强烈推荐,建议深入学习,了解每一个参数。
pheatmap(HDData)




学习科“谱”丨R语言热图(Heatmap)绘制的模块






7.ComplexHeatmap包





更加复杂的热图绘制中就要用到这个包了,非常强大。




学习科“谱”丨R语言热图(Heatmap)绘制的模块



学习科“谱”丨R语言热图(Heatmap)绘制的模块

学习科“谱”丨R语言热图(Heatmap)绘制的模块

学习科“谱”丨R语言热图(Heatmap)绘制的模块


相关推荐: