分享

教你用ggtree绘制高颜值进化树

 萌小芊 2017-05-05

教你用ggtree绘制高颜值进化树

原创 2017-05-05 Y叔 微生物生态
微生物生态

microbial-ecology

总结国内外微生物生态领域最新文章、技术、方法等,由相关领域年轻硕博士执笔,以高水平文献为依据,秉承“走心”、“原创”、“严谨”、“实用”、“非盈利”的宗旨撰写每一篇文章。“Ideas worth spreading”感谢关注与分享~


系统发育分析是我们微生物生态数据分析时一个非常常用的分析项目。前几期,小圆编辑已经跟大家介绍了系统发育树的基本解读及构建方法(戳这里)。然而系统进化树构建完后,我们还需要在美学角度对系统进化树进行修饰,一幅高颜值的配图不仅能提升文章的档次,也更容易获取编辑的青睐。ggtree作为一个实用的系统进化树美化工具,近来受到很多文章青睐。

 



 

图片来源:http://dx./10.1128/AEM.02307-16

图片来源:http://journal./article/10.3389/fmicb.2017.00543/full

图片来源:http://journal./article/10.3389/fmicb.2017.00456/full


上述所有高大上的树状图都是由同一个软件包做出来的——“ggtree”。ggtree是基于R的强大的树状图修饰工具,支持多种格式的输入文件并与其他R包兼容,可以轻松地实现对树状图的各种后期加工、修饰与美化。让你分分钟做出高大上的树状图,助力你发表TOP期刊,走上人生巅峰,赢取CNS......


本期我们有幸邀请到ggtree的开发者Y叔撰文,通过一个有趣的实例来与大家一瞥ggtree的强大功能~

 

phylomoji本来是像上图这么玩的,也就是纯文本慢慢点,调整线条位置。当然纯手工有纯手工的乐趣,不过纯手工很多效果搞不来,比如你搞个circular layout的树来试试,绝对搞不出来。然而我们有ggtree和emojifont啊,这些都小事一桩。

 

 

Phylomoji

下面这个tree_text是正常的nwk格式,只需要传parse=”emoji”给geom_tiplab,见证神奇的时刻就到了。

library(ggtree)
tree_text <> ''(((((cow, (whale, dolphin)), (pig2, boar)), camel), fish)

, seedling);''
x <> read.tree(text=tree_text)
ggtree(x, linetype=''dashed'', color=''firebrick'') +
    xlim(NA, 7) + ylim(NA, 8.5) +
    geom_tiplab(aes(color=label), parse=''emoji'', size=14, vjust=0.25) +
    labs(title=''phylomoji'', caption=''powered by ggtree + emojifont'')


p <> ggtree(x, layout=''circular'') +
    geom_tiplab2(aes(color=label), parse=''emoji'', size=12, vjust=0.25)
print(p)


要画环形树也是同样简单!

 

这个环形树可以随意指定开口角度,转变成扇子型状!

open_tree(p, angle=200)


还能随意旋转!

open_tree(p, angle=60%>% rotate_tree(-75)



注释clades

这个也是同样简单,同样也是parse=”emoji”产生奇迹。

set.seed(123)
tr <> rtree(30)
ggtree(tr) + xlim(NA, 5) +
    geom_cladelabel(node=41, label=''chicken'', parse=''emoji'',
                    fontsize=12, align=TRUE, color=''firebrick'') +
    geom_cladelabel(node=51, label=''duck'', parse=''emoji'',
                    fontsize=12, align=TRUE, color=''steelblue'') +
    geom_cladelabel(node=32, label=''family'', parse=''emoji'',
                    fontsize=12, align=TRUE, color=''darkkhaki'')

Apple Color Emoji

用苹果的emoji也是可以的,不过得产生为svg图形,在safari里打开:

library(ggimage)
library(gridSVG)
p <>  ggtree(x, size=2) + geom_tiplab(size=20, parse=''emoji'') +
    xlim(NA, 7) + ylim(NA, 8.5) +
    geom_phylopic(image=''79ad5f09-cf21-4c89-8e7d-0c82a00ce728'',
                  color=''firebrick'', alpha = .3, size=Inf)

p
ps = grid.export(''emoji.svg'', addClass=T)


 

References

Yu, Guangchuang, David Smith, Huachen Zhu, Yi Guan, and Tommy Tsan-Yuk Lam. 2017. “Ggtree: An R Package for Visualization and Annotation of Phylogenetic Trees with Their Covariates and Other Associated Data.” Methods in Ecology and Evolution 8 (1): 28–36. doi:10.1111/2041-210X.12628.


作者简介:

人赞赏

阅读

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章