想单向记号bootstrap,比如说0-70, 70-90, 90-100等等的。那个对ggtree而言,太单纯。
具体而言他们要读树,用treeio的read.newick,它和read.tree的不同之处是,重新加入了模块node.label,当node.label存的并非label,而要bootstrap等双蝴的这时候,你能传至node.label=’support’,这种它会把node label导出为support value,实用工具树注解统计数据,而并非和tip label混在一同。label表达式根本无法存为字符串型,即使和tip label混了,而字符串型会让位数操作方式稍稍繁杂点。因此他们要用read.newick。tree <- read.newick(“RMI.phy_phyml_tree_rooted_labeled.txt”, node.label=support)
root <- getRoot(tree@phylo)
p <- ggtree(tree, color=“black”, size=1.5, linetype=1, ladderize=TRUE) + ggtitle(label=“Figure A”) + geom_tiplab(size=4.5, hjust = –0.060, fontface=“bold”) + xlim(0, 0.09)具体而言用ggtree画出树的内部结构,用ggtitle加title,用geom_tiplab加tip label,出图如下表所示:
接着他们就能用geom_point2来阻攻了,他们要选定只打外部结点,但不打root node,即使root和外部结点都是没值的。接着那个support值是双蝴,他们想按区段单向,这太难,用cut来切就能了。这儿的值是做了1000次的bootstrap。只好获得上面的图:p <- p + geom_point2(aes(subset=!isTip & node != root, fill=cut(support, c(0, 700, 900, 1000))), shape=21, size=4) + theme_tree(legend.position=c(0.2, 0.3))已然是近乎完美,但他们仍需要修图,想用单纯的颜色来填充,低值用白色,中间值用灰色,而高值用黑色。 label想除以1000,换成百分比,legend的名字想换成bootstrap百分值,legend的label想到数学公式表达区段,这些都能在scale_fill_manual中实现:
p + scale_fill_manual(values=c(“white”, “grey”, “black”), guide=legend, name=Bootstrap Percentage(BP), breaks=c((900,1e+03], (700,900], (0,700]), labels=expression(BP>=90,70 <= BP * ” < 90″, BP < 70))华丽丽的图就产生了: