论文
Genome evolution and diversity of wild and cultivated potatoes
今天的推文复现一下论文中的figure3c
主要的知识点是:
1、进化树中挑选子集 2、进化树默认是左下角到右上角这种布局,如何调整成左上到右下角这种布局 3、进化树把某个clade压缩成三角性状 4、给进化树添加根小尾巴
进化树的代码
代码语言:javascript复制library(readxl)
library(tidyverse)
library(ggtree)
read_excel("D:/Jupyter/土豆Nature/41586_2022_4822_MOESM7_ESM.xlsx",
sheet = "Fig. 3c_2",
skip = 1,
col_names = FALSE) %>%
pull(1) %>%
read.tree(text = .) -> tree
ggtree(tree)
geom_tiplab()
tree$tip.label
keep.tips<-c("Heinz","PG0009","PG0019",
"PG1011","PG6241","PG3022",
"PG5068","PG6002","PG6148",
"PG6247")
to_drop<-tree$tip.label[-match(keep.tips,tree$tip.label)]
reduced.tree<-treeio::drop.tip(tree,to_drop)
p<-ggtree(reduced.tree,
branch.length = "none",)
p
geom_tiplab()
## 这个代码是给根添加一个小尾巴
## rootedge = 1 这个1是控制小尾巴的长度
p
geom_rootedge(rootedge = 1)
## 把指定节点进行旋转
## 把树改成左上角到右下角的形式
new.p<-ggtree::rotate(p,11)
new.p geom_tiplab()
ggtree(reduced.tree)
geom_tiplab()
geom_nodelab(aes(label=node))
p1<-collapse(new.p,node = 13,"max",fill="white",color="black") %>%
collapse(node=14,"max",fill="white",color="black")
p1
热图代码
代码语言:javascript复制p2<-read_excel("D:/Jupyter/土豆Nature/41586_2022_4822_MOESM7_ESM.xlsx",
sheet = "Fig. 3c_1",
skip = 1,
col_names = TRUE,
na="NA") %>%
rename("sample_id"="...1") %>%
mutate(sample_id=factor(sample_id,levels = rev(sample_id))) %>%
pivot_longer(!sample_id) %>%
mutate(new_value=scale(value),
name=factor(name,levels = c("Root","Stem","Leaf","Stolon/Rhizome","Tuber"))) %>%
ggplot(aes(x=name,y=sample_id))
geom_tile(aes(fill=new_value),
color="gray")
scale_fill_gradient(low="white",high = "red",
name="")
theme_bw(base_size = 15)
theme(panel.grid = element_blank(),
axis.text.x = element_text(angle=60,hjust=0,vjust=0),
axis.ticks = element_blank())
scale_x_discrete(expand = c(0,0),position = "top")
scale_y_discrete(expand = c(0,0))
labs(x=NULL,y=NULL)
p2
两个图组合到一起
代码语言:javascript复制library(patchwork)
p1 p2
plot_layout(widths = c(1,10))