查看原文
其他

我的第一本书来了,ggtree全家桶的知识全在这里。

Y叔叔 YuLabSMU 2022-09-20

写ggtree源于要帮助实验室的小伙伴们在树上呈现点数据,本来是想顺道快速搞篇文章,结果从14年底我就一直干到现在,而且还将继续干下去。

大概是因为我完全是个新手才能写出ggtree,如果我是个老手,想必也有称心的工具,或者虽然骂工具千百遍,还是爱它如初恋,应该不会去自己写一个。正因为是新手,工具难用,我没有习惯一说,难用就弃用,或者太复杂,脑容易不够,学不动。看着实验室小伙伴们用Illustrator,修图一搞就一天,实在看不下去,叠叠图层,它不香吗?我很认真去思考这个问题,于是ggtree出来了,我2014年12月开始写,到了圣诞假期的时候,我已经是在咖啡店里写文件的解析了。然而没有完,我一直更,一直更,越来越好用,越来越易用,功能越来越多。

ggtree在一开始就受到了大家的关注,我在twitter上收到了很多包括拯救了博士论文、相见恨晚等对ggtree的表白,这显然是个改变游戏规划的包,但文章发起来,也不是很容易。第一篇文章返修意见总共有11页纸。当然一旦发表,就收到很多的关注,就如同上面的截图一样,还被邀请去Field Museum做报告啥的。 

过去美好的记忆包括但不仅限于此:

  1. 我在港大医学院讲poster的时候,打分的老师说out of my intelligence。

  2. 得到了师公Robert Webster的称赞。

  3. 受邀请去美帝做报告,并且他们用NIH的课题给我报了机票、酒店(竟然给我订了套房)和餐费。

  4. 受到William Pearson(FASTA软件和格式的作者)的邀请,写了一篇protocol发表在Current Protocols in Bioinformtics上。

  5. 2019年去南丹麦大学,给博士生上课,讲ggtree。

  6. 2017年的MEE文章,在2020年的时候被MEE期刊选为创刊十周年十篇代表作之一


另外CJ对我说过,受到了ggtree的启发,他重写了TBtools的图形引擎。ggtree应该启发过不少人,像QIIME团队在开发系统发育树可视化软件Empress,就抄了不少ggtree的作业。

ggtree是一个倾注了许多精力的工具,从它出发,把对树文件的解析拿出来,便成为treeio包,把对树的操作拿出来,就是tidytree包,其实我还能再拿一个,是对树布局的计算。把画图像的功能拿出来,就成了ggimage包,把拼树和其它相关图的功能分离出来,就成了aplot包,ggtree里对一些ggplot对象操作的小功能,后续也会分离出来放到ggfun包里。并且你知道我为什么写emojifont包吗?为了画phylomoji。而写ggbreak包则是为了让过长的分枝可以被截断。在对数据的整合可视化上,我们提出了两种通用的方法,这个可以说是上帝视角,以足够高的抽象水平来看这个问题,总结出来无非是(1)映射到拓扑结构上,将数据做为可视化特征。(2)数据可视化之后,需要与树并排,进而可视在演化的背景下解析数据。后面ggtreeExtra的开发,也是为了更好地践行第二点。后面在这一框架下,又实现了多序列比对可视化的ggmsa包。大家可以继续期待,我们还会出更多的包。

时间不单单花在开发上,还花在维护和解答用户问题上,以及写文档。文档越写越多,有一部分也成为了博士论文里的内容。在我成了独立PI后,我继续维护,继续写,最终被CRC出版社发现了,联系我出书,这当然好。一个工作能够以一本书的形式存在,想必还是有影响力的,并且我希望这本书以后还能出第二版。


为了出书,专门写了个配套的R包,这样学起来才更快 

书我已经拿到了,从2014年底,开始写ggtree,到现在2022年中了,也是七八年时间过去了。这本书有数据的解析、操作、整合与可视化。可视化方面,我对ggplot2的理解基本上都在里面,可视化不是画个酷炫的图,而是对数据的理解。画个吸引眼球的图,有的是各种工具可以搞。开发可视化工具,能够以极小的门槛让小白上手,这考验的是对数据的理解、对用户需求的理解、对用户能力的理解、数据操作的能力和编程的能力。

https://www.amazon.com/Integration-Manipulation-Visualization-Phylogenetic-Computational-ebook/dp/B0B5NLZR1Z/  这本书亚马逊上可以订了。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存