樹檔案使用ggtree軟體包中的示例檔案
sample.nwk
(((((((A:4,B:4):6,C:5):8,D:6):3,E:21):10,((F:4,G:12):14,H:8):13):13,((I:5,J:2):30,(K:11,L:11):2):17):4,M:56);
複制
最基本的操作
讀入資料和展示結果
library(ggtree)
tree<-read.tree("sample.nwk")
ggtree(tree)+geom_tiplab()+
geom_tippoint()
複制
image.png
geom_tiplab()
函數中的一些參數
align=T
标簽右對齊
linesize = 16
标簽右對齊後會有線連接配接,設定線的粗細
linetype = 1
設定線的類型,預設是虛線
offset=2
設定标簽距離枝末端的距離
ggtree(tree)+
geom_tiplab(align=T,linesize = 5,linetype = 1,offset = 2)
複制
image.png
使用ggplot2中的fortify函數可以把讀入的樹檔案轉化為資料框
library(ggplot2)
df<-fortify(tree)
df
# A tibble: 25 x 9
parent node branch.length label isTip x y branch angle
<int> <int> <dbl> <chr> <lgl> <dbl> <dbl> <dbl> <dbl>
1 20 1 4 A TRUE 48 12 46 332.
2 20 2 4 B TRUE 48 13 46 360
3 19 3 5 C TRUE 43 11 40.5 305.
4 18 4 6 D TRUE 36 10 33 277.
5 17 5 21 E TRUE 48 9 37.5 249.
6 22 6 4 F TRUE 48 7 46 194.
7 22 7 12 G TRUE 56 8 50 222.
8 21 8 8 H TRUE 38 6 34 166.
9 24 9 5 I TRUE 56 2 53.5 55.4
10 24 10 2 J TRUE 53 3 52 83.1
# ... with 15 more rows
複制
geom_hilight()函數
ggtree(tree)+geom_nodelab(aes(label=node))
ggtree(tree)+
geom_hilight(node = 23,fill="green",alpha=0.5)+
geom_hilight(node = 21,fill="red",alpha=0.5)+
geom_hilight(node = 17,fill="blue",alpha=0.5)
複制
image.png
image.png
使用%<+%操作符
%<+%操作符可以在樹檔案中添加自己的額外資料
根據上圖可以看出BACDE為一個組,GFH為另一個組,LKJI為一個組,M為單獨的一個組
構造資料集
image.png
> df<-read.table("clipboard",header=T)
> df$Value<-sample(1:100,13)
> df
Tiplabel Group Value
1 B group1 55
2 A group1 31
3 C group1 93
4 D group1 86
5 E group1 23
6 G group2 92
7 F group2 79
8 H group2 32
9 L group3 67
10 K group3 19
11 J group3 52
12 L group3 49
13 M group4 61
> p<-ggtree(tree)
> p%<+%df+
+ geom_tiplab(aes(col=Group),offset=2)+
+ geom_tippoint(aes(size=Value,col=Group))
複制
image.png
參考文章
Phylophlan(三)将新物種插入進化樹
老版ggtree幫助文檔
https://yulab-smu.github.io/treedata-book/chapter7.html#attach-operator