01
数据准备
02
图形绘制
#安装所需R包library(BiocManager)install(c("TreeAndLeaf","RedeR"))install("ggtree",force=TRUE)#加载所需R包library(TreeAndLeaf)library(RedeR)library(igraph)library(ape)library(ggtree)library(dendextend)library(dplyr)library(ggplot2)library(RColorBrewer)#读入系统发育树phylo_tree<-read.tree("NewickExport.nwk")str(phylo_tree)
group.df<- read.csv("node_info.csv")head(group.df)
#合并节点信息phylo_tree<-full_join(phylo_tree, group.df, by='label')#采用daylight布局生成ggtree对象tr <-ggtree(phylo_tree, linewidth =0.2, layout='daylight', branch.length='none')tr
#绘制ggtree,alpha设置透明度tr1 <- tr +geom_tippoint(aes(color = group, size = size),alpha=0.7)tr1
#自定义配色mycolor<-brewer.pal(8, "Set1")mycolor<-brewer.pal(8, "Pastel2")mycolor<-brewer.pal(8, "Paired")#也可手工指定半透明颜色#mycolor <- paste0(mycolor,"99")mycolor<-c("#B3E2CDee", "#FDCDACee", "#CBD5E8ee", "#F4CAE4ee","#E6F5C9ee", "#FFF2AEee", "#F1E2CCee", "#CCCCCCee")mycolor<-c("#A6CEE3aa", "#1F78B4aa", "#B2DF8Aaa", "#33A02Caa","#FB9A99aa", "#E31A1Caa","#FDBF6Faa", "#FF7F00aa")mycolor<-c("#E41A1C99", "#377EB899", "#4DAF4A99", "#984EA399","#FF7F0099", "#FFFF3399", "#A6562899", "#F781BF99")#自定义配色tr1 <- tr1 +scale_color_manual(values =mycolor)tr1
03
其他样式
#将ggtree对象转为tree-and-leaf对象tr2 <-treeAndLeaf(tr1)#向tree-and-leaf映射属性#注:refcol = 1 表示使用dat的第1列作为匹配IDtr3 <-att.mapv(g = tr2, dat=group.df, refcol=1)#通过att.setv封装函数设置图属性tr3 <-att.setv(g = tr3, from ="group", to ="nodeColor", cols =mycolor)tr3 <-att.setv(g = tr3, from ="size", to ="nodeSize", xlim=c(10, 50, 5))#通过att.addv、att.adde设置图属性tr3 <-att.addv(tr3, "nodeLabelSize", value =1)tr3 <-att.addv(tr3, "nodeLineWidth", value =0)tr3 <-att.addv(tr3, "nodeColor", value ="black", index=!V(tr3)$isLeaf)tr3 <-att.adde(tr3, "edgeWidth", value =3)tr3 <-att.adde(tr3, "edgeColor", value ="black")#启动RedeR界面startRedeR()resetRedeR()#将tree-and-leaf传入交互式 R/Java 界面addGraphToRedeR(g = tr3, zoom=50)
#选中内部节点,固定位置不参与松弛selectNodes(V(tr3)$name[!V(tr3)$isLeaf], anchor=TRUE)#运行松弛算法,微调叶节点relaxRedeR(p1=25, p2=200, p3=5, p5=5, p8=5)#添加图例addLegendToRedeR(tr3, type ="nodecolor", title="Group", stretch =0.2,position="topright")addLegendToRedeR(tr3, type ="nodesize", title="Size",position="bottomright")
*未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。
基迪奥旗下绘图公众号
分享科研绘图技能与工具
欢迎关注与转发~
你的好友拍了拍你
并请你帮她点一下“分享”~

