树文件使用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
设置标签距离枝末端的距离
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