ggtree学习笔记2

2020-03-03 15:10:17 浏览数 (1)

树文件使用ggtree软件包中的示例文件

sample.nwk

代码语言:javascript复制
(((((((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);
最基本的操作

读入数据和展示结果

代码语言:javascript复制
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设置标签距离枝末端的距离

代码语言:javascript复制
ggtree(tree) 
  geom_tiplab(align=T,linesize = 5,linetype = 1,offset = 2)

image.png

使用ggplot2中的fortify函数可以把读入的树文件转化为数据框

代码语言:javascript复制
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()函数
代码语言:javascript复制
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

代码语言:javascript复制
> 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%< � 
    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

0 人点赞