html如何绘制热图,R使用笔记: heatmap.2绘制热图

笔记内容:

热图的应用意义

包的安装

scale的作用

作图细节:系统发生树,label, color key的问题等

补充:添加多行ColSideColors

补充:heatmap.3示例

补充:ComplexHeatmap::Heatmap

热图的应用意义

在paper中常常能看到热图(heatmap):“形式为功能服务”。在我们常见的,使用矩阵作为Input的二维热图中,多为基因表达差异,16s分析中不同分组的物种丰度/相对丰度差异提供线索及可视化效果。

使用热图可以直观通过颜色的深浅和差异判断样本/组别之间的差异。结合统计检验的显著性结果,可以评估出显著性的方向。热图可以通过算法生成系统树,表现各个subject及feature的聚类关系。

在R中可以使用gplots包中的heatmap.2轻松画出热图。但对于其scale, 系统树的建立,以及很细节的字体大小,图片大小,color key的数值范围设置,对应的颜色设置等,均需要通过参数的调整实现。虽然比起其他编程工具,R是个封装很严实的软件,这意味着许多参数不能很灵活的去修改。但这不妨碍我们充分使用它带来的便利。

包的安装

install.packages("gplots")

install.packages("RColorBrewer")

install.packages("devtools")

library(devtools)

install.github("stanstrup/massageR")

安装massageR包是为了对热图的input矩阵做一些处理,这个包的安装有些曲折,在win10系统上按照以下两步先安装devtools再通过github装massageR没问题,但是在linux系统上不能在R sutdio里直接这么安装,详见 R使用笔记第11条

在本笔记中不使用massageR包也可以,heatmap.2可以搞定。

scale的作用

plot_color = c('orange','green')[treatment]

# treatment为meta data中提取出的分组信息,必须为一个factor

# 如果在input data中把sampleID整理为分组的顺序,那么会在colsidecolors这里显示为整齐的分为两组。

heatmap.2(x, #Input必须是matrix

trace="none", # trace可以给每个色块中添加一条线,与行平行或者与列平行。其与色块中心的距离代表了这个值被显示的比例。

scale="none", # scale在这里

ColSideColors = plot_color, # 按照treatment组别给每个subject一个颜色

dendrogram = "row", # 生成row的系统发生树

symbreaks = TRUE,

col=rev(colorRampPalette(brewer.pal(10, "RdBu"))(20)), # color key, 后面详叙

breaks = seq(-0.5,0.5,0.05), # 还是color key

density.info=c("none"), # 还是color key

margins=c(8,16), # 调整热图大小比例

cexRow = 0.8, cexCol = 1.0, # 行列名字体大小

srtCol = 45, offsetCol = -0.5 # 调整列名的字体倾斜45度,距离热图的距离缩小。

)

5b6bdbebcd61

会出现这样的图。很丑,看不出规律。这是因为我们input的矩阵还没有经过标

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值