绘制有间隙的热图绘制-gapmap

今天小编向大家介绍一下使用gapmap和dendsort包生成带间隙的热图绘制方法及效果。

gapmap包通过调整每个叶子的位置来编码两个节点之间的相似性, 两个相邻节点相似性的信息都体现树状图的分支高度中,基于相似性对叶片进行定位。
gapmap在树状图和热图的可视化中都引入了间隙,以指数方式将两个节点的距离(不相似)映射到间隙大小的比例。
install.packages("gapmap")  #安装包library(gapmap)library(RColorBrewer)  #R语言配色包RdBu = rev(brewer.pal(11, name="RdBu"))RdYlBu = rev(brewer.pal(11, name="RdYlBu"))
data("sample_tcga")  #加载数据矩阵

dataTable <- t(sample_tcga)  #矩阵转置row_dist <- as.dist(1-cor(t(dataTable), method = "pearson"))col_dist <- as.dist(1-cor(dataTable, method = "pearson")) #计算相关性,并且将矩阵转化为聚类分析用的距离col_hc <- hclust(col_dist, method = "complete")  row_hc <- hclust(row_dist, method = "complete")  #层次聚类col_d <- as.dendrogram(col_hc)row_d <- as.dendrogram(row_hc)#生成系统树图 

一、gapmap

1.绘制没有间隙的聚类图

gapmap(m = as.matrix(dataTable),       d_row = rev(row_d), d_col = col_d,         #rev将向量或矩阵进行翻转       #d_row是行的系统树数据,d_col是列的系统树数据       ratio =0 , verbose=FALSE, col=RdBu,       #ratio是图形中空白间隙所占宽度百分比。       #verbose是否详细显示进行的步骤       label_size=2,       v_ratio= c(0.8,0.8,0.8), h_ratio=c(0.1,0.8,0.1)       #设置图形中垂直各组分所占图形的比例,它参数分别为顶部竖线,中心聚类图,底部标签。       #设置图形中水平各组分所占图形的比例,它参数分别为左侧横线,中心聚类图,右侧标签。       )

 

2.有间隙的聚类图

gapmap(m = as.matrix(dataTable),       d_row = rev(row_d), d_col = col_d,       mode = "quantitative",       #mode是间隙模式,"阈值" 或 "定量"("threshold" 或 "quantitative")形式       mapping="exponential",       #在quantitative间隙模式的情况下,调控间隙的形式,“线性”或“指数” ("linear" or "exponential" )       col=RdBu,       ratio = 0.3, verbose=FALSE,       scale = 0.5, label_size=2,       #scale 指mapping="exponential"(指数间隙模式)下,间隙映射的比例       #label_size 标签文字大小       v_ratio= c(0.1,0.8,0.1), h_ratio=c(0.1,0.8,0.1))

 

 

 

3.更改颜色绘制热图

gapmap(m = as.matrix(dataTable),       d_row = rev(row_d), d_col = col_d,       mode = "quantitative",       mapping="exponential",       col=RdYlBu,  #更换颜色       ratio = 0.3, verbose=FALSE,       scale = 0.5, label_size=2,       v_ratio= c(0.1,0.8,0.1), h_ratio=c(0.1,0.8,0.1)       )

二、 dendsort

dendsort包与gapmap结合,可以重新排列树状图的结构。

dendsort对树状图对象进行排序,通常用于层次聚类后。根据每个合并点处子树的平均距离,对生成的树状图中的子树进行排序。较紧密的群(平均距离较小的群集)位于分支的左侧。当叶子与簇合并时,叶子将放置在右侧。

install.packages("dendsort")library(dendsort)

1.绘制排序后的热图

gapmap(m = as.matrix(dataTable),       d_row = rev(dendsort(row_d, type = "average")),       d_col = dendsort(col_d, type = "average"),         #dendsort对树状图对象进行排序       mode = "quantitative", mapping="exponential",       ratio = 0.3, verbose=FALSE, scale = 0.5, v_ratio= c(0.1,0.8,0.1),       h_ratio=c(0.1,0.8,0.1), label_size=2, show_legend=TRUE, col=RdBu)

 

 

 

 

2.绘制空白树状图(gapped dendrogram)

gap_dendrogram 是ggplot2绘制空白树状图的方法,输入数据类型为gapdata class,由gap_data()生成

row_data <- gap_data(d= dendsort(row_d, type = "average"),                     mode = "quantitative", mapping="exponential",                     ratio=0.3, scale= 0.5)   #生成数据dend <- gap_dendrogram(data = row_data,                     leaf_labels = TRUE,  #是否加标签                     rotate_label = TRUE) #是否旋转标签dend + theme(axis.ticks.length= grid::unit(0,"lines") )+  theme(axis.ticks.margin = grid::unit(-0.8, "lines"))#将axis.tick.margin设置为负值,使文本标签更接近树状图

 

 

小编总结:

R语言中绘制聚类热图的方法有很多,比如pheatmap、heatmap还有我们今天介绍的gapmap等,小伙伴们可以比较优势,选择适合自己作图的R包哦~

统计与绘图

scatterpie绘制气泡饼图及corrplot绘制相关性图

2020-8-28 0:55:03

统计与绘图

绘制序列标识图-gglogo

2020-8-28 1:01:46

加入Q群
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索