zl程序教程

您现在的位置是:首页 >  Java

当前栏目

[nmicrobiol图表复现] ggtree绘制离散型环状热图

2023-02-18 16:35:33 时间

❝本节来复现「nmicrobiol」上的一张图,此图有些小细节因此适用于「ggtree」绘制不需要其它扩展包;下面小编就通过一个详细的案例介绍如何绘制此图;

参考文档

❝https://yulab-smu.top/treedata-book/chapter7.html ❞

加载R包

library(tidyverse)
library(ggtree)
library(ggtreeExtra)
library(ggnewscale)

读入树文件

tree <- read.tree("RAxML_bipartitions.allUK_1000.nwk")

绘制进化树

cir <- ggtree(tree, layout="circular")+
  geom_tiplab(size=2,align=T,linesize=0,color="black",offset =0.4)

导入热图数据

热图中包含进化树名称,因此只需要将其转换为行名即可

df <- read_csv("metadata.csv") %>%
  column_to_rownames(var="label")

绘制heatmap

此处使用「color=NULL」来取消热图边框颜色,offset设置热图与进化树直接的距离

p1 <- gheatmap(cir,df %>% select(1),offset=0.6,width=.1,
               colnames_offset_y=0,colnames = F,color=NULL)+
  scale_fill_manual(values=c("#440154","#3b528b"))+
  new_scale_fill()

绘制外圈

gheatmap(p1,df %>% select(2),offset=0.696,width=.1,
           colnames_offset_y=0,colnames = F,color=NULL)+
  scale_fill_manual(values=c("#21918c","#5ec962","#fde725"))+
  theme(legend.title = element_blank(),
        legend.text=element_text(color="black"),
        legend.background = element_blank(),
        legend.key = element_blank(),
        legend.spacing.x = unit(0.1,'cm'),
        legend.key.width=unit(0.4,'cm'),
        legend.key.height=unit(0.4,'cm'))