天天看點

ggtree學習筆記2

樹檔案使用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()
           

複制

ggtree學習筆記2

image.png

geom_tiplab()

函數中的一些參數

align=T

标簽右對齊

linesize = 16

标簽右對齊後會有線連接配接,設定線的粗細

linetype = 1

設定線的類型,預設是虛線

offset=2

設定标簽距離枝末端的距離

ggtree(tree)+
  geom_tiplab(align=T,linesize = 5,linetype = 1,offset = 2)
           

複制

ggtree學習筆記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)
           

複制

ggtree學習筆記2

image.png

ggtree學習筆記2

image.png

使用%<+%操作符

%<+%操作符可以在樹檔案中添加自己的額外資料

根據上圖可以看出BACDE為一個組,GFH為另一個組,LKJI為一個組,M為單獨的一個組

構造資料集

ggtree學習筆記2

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))
           

複制

ggtree學習筆記2

image.png

參考文章

Phylophlan(三)将新物種插入進化樹

老版ggtree幫助文檔

https://yulab-smu.github.io/treedata-book/chapter7.html#attach-operator