背景1:Newick格式
Newick是最常用的存儲進化樹的文件格式,如上面這個樹,拓樸結(jié)構(gòu)用newick格式可以表示為:
(B,(A,C,E),D);
括號最外層是根節(jié)點锨侯,它有三個子節(jié)點钉疫,B, (A,C,E)和D,而節(jié)點(A,C,E)也有三個子節(jié)點A捉偏,C和E。
加上分支長度泻红,使用 : 來分隔:
(B:6.0,(A:5.0,C:3.0,E:4.0):5.0,D:11.0);
比如A:5.0代表的是A與其父節(jié)點的距離是5.0夭禽。
內(nèi)部節(jié)點也可以有l(wèi)abel,寫在相應的括號外面谊路,如下所示:
(B:6.0,(A:5.0,C:3.0,E:4.0)Ancestor1:5.0,D:11.0);
這是最為廣泛支持的文件格式讹躯,很多進化樹可視軟件只支持newick格式。
背景2: 如何判斷無根樹有根樹缠劝?
假設(shè)有下面三種形式的進化樹:
[1] (a, b, c);? ? ? 無根樹
[2] (a, b, c):1;? 有根樹
[3] ((a,b),c);? ? ? 有根樹
如果最外層大括號內(nèi)只有兩個分枝潮梯,即為有根樹,如[3]惨恭;
如果最外層大括號內(nèi)有三個或以上分枝秉馏,一般為無根樹,如[1]脱羡;
但是萝究,如果大括號外存在枝長參數(shù)免都,如[2]中的:1,這種情況認為三個分枝以一定的枝長連接到根上帆竹,為有根樹
ggtree使用
ggtree只映射節(jié)點到坐標系統(tǒng)中绕娘,而線條在geom_tree圖層中計算并畫出來。這是與其它軟件最根本的不同栽连,也是ggtree能夠簡單地用圖層加注釋信息的基礎(chǔ)险领。
1.ggtree安裝
if (!requireNamespace("BiocManager", quietly = TRUE))
? ? install.packages("BiocManager")
BiocManager::install("ggtree")
2.加載包
library("ggplot2")
library("ggtree")
3. 讀取數(shù)據(jù)
tree=read.tree("D:/xxx.tre")
group_file = read.csv("D:/xx.csv",header = T, row.names =1) #讀取物種group信息文件,注意要與載入的Tree文件的lable相同秒紧,否則無法加載分組顏色绢陌!
4. 添加分組信息數(shù)據(jù)至變量
groupInfo <- split(row.names(group_file), group_file$family) # 提取分組信息
tree1 <- groupOTU(tree, groupInfo)? #將分組信息賦予給樹
ggtree(tree, layout = "circular")
5. 運行
ggtree(tree, layout = "circular")? #簡單
ggtree(tree,layout = "circular") + geom_tiplab() + geom_point(color='firebrick') #
ggtree(tree1,layout = "circular") +geom_highlight(node = 1872,fill="blue ",alpha=0.5)+? geom_highlight(node=1081,fill=" orange", alpha=0.5)+?geom_highlight(node=1079,fill=" red ")+ geom_cladelabel(node=1872,label="Pinopsida",offset=1.2,barsize = 4,color=" blue ")+geom_cladelabel(node=1081,label="Magnoliopsida",offset=1.2,barsize = 4,color=" orange",)+geom_cladelabel(node=1079,label="Ginkgoopsida",offset=1.2,barsize = 4,color="red")? #自定義
參考:
G Yu, DK Smith, H Zhu, Y Guan, TTY Lam*.ggtree: an R package for visualization and annotation of phylogenetic treeswith their covariates and other associated data. Methods in Ecology andEvolution. 2017, 8(1):28-36.
使用ggtree實現(xiàn)進化樹的可視化和注釋(轉(zhuǎn)載)。作者:余光創(chuàng)噩茄。開發(fā)過多個R/Bioconductor包下面,包括ChIPseeker, clusterProfiler, DOSE,ggtree,GOSemSim和ReactomePA. 鏈接:https://guangchuangyu.github.io/cn/2016/03/ggtree-for-tree-visualization-annotation/?
怎樣判斷newick格式的進化樹是有根樹绩聘,還是無根樹沥割?http://blog.sciencenet.cn/blog-656335-926722.html