rhaeTree:一个基于 Rust 的进化树可视化编辑工具
长期以来,我做完进化树后都会使用Figtree进行一些细节的编辑,例如增加颜色注释、分支高亮等,我也曾把它推荐给许多人用来美化进化树。身边不少人都使用MEGA等软件做进化树,然而MEGA内置的编辑功能之匮乏、软件之臃肿,实在让人喜爱不起来。
然而Figtree已经多年没有更新,其上一个大版本v1.4.4发布于2018年,随着系统更新的迭代,旧版软件的痛点逐渐出现:
- Mac版在OS26更新后完全不适配高分辨率屏幕
- 使用前需要额外安装JRE环境
- highlight功能不太好用
- 样式编辑后不能撤销
- 颜色选取较为麻烦
- etc
因此在去年上半年萌生了自己重写一个工具的念头,并使用Rust在与Codex的合作下完成了rhaeTree,补上了一些我比较常用的功能,并对一些原有功能进行了优化。目前仍有许多不足,还在积极更新中,希望能得到大家的试用与反馈。
接下来简单介绍一下rhaeTree的基本布局与常用功能,如果是用惯了Figtree的朋友应该会比较容易上手。
打开软件,主界面分为顶部功能栏、左侧功能栏与右侧的进化树显示界面。打开一个已有的进化树,可以使用顶部功能栏左上角的 File - Open…,选择nexus或newick格式的进化树文件并打开,此处以examples/OsLDP.fasttree.nex为例。

置根与调整布局
如图可见,该进化树目前显示得比较奇怪,原因之一是许多进化树构建软件输出时,对进化树的根节点进行自动判断是比较困难的,为了设置合适的根节点(或根分支),可以使用左侧Trees - Root tree - Midpoint,使用中点置根法自动生成一个根节点位置,这样能看到基因被分成了三组,明显是顺眼多了。

当然,如果你知道某个分支是明确的外类群,或是希望以某个离其他较远的分支作为根分支,也可以手动设置根节点。回到左侧Layout,将布局切换到Radial,也能看到有一支离其他枝明显较远,假如希望将其作为根分支,可以先在顶部选择模式中激活Node模式,点击进化树上对应的分支选中,最后点击左上角的Reroot,即可以这一分支作为进化树的根分支。

Radial布局中可能Reroot的影响不太明显,但如果切换到Rectanglar或是Circular布局中,就能明确看到进化树的布局发生了变化。

为文本添加标注
调整完布局,为了让进化树可读性更强,我们往往会将一些节点的标签从原本的基因编号改为已发表或是我们给予的命名。想实现这点有两种方式,第一种比较直接,在顶部选择模式中激活Taxa,直接点击想修改的Tip Label,再点顶部的Annotate即可为它添上你喜欢的名字。

第二种方式,则是利用右上角的标签过滤器,再其中输入你想修改的基因号,会自动选中对应的节点,再点击Annotate同样可以修改。

修改颜色
为不同物种的基因号添加不同颜色也是我们常用的功能。要想添加颜色,一个个选中去改固然可以,但更方面的则是使用过滤器功能。这里里水稻的基因号为例,它们都以Os开头,因此直接在右上角过滤器中输入Os即可选中全部水稻基因号,点击左侧的Color即可为它们统一修改颜色。
你可能注意到了,被我们修改过名字的基因(图中的GAPLESS1)也被选中了,这是因为过滤器会同时去筛选原有与修改过的全部标签字段,因此修改时也要注意是不是选中的都是你想修改的那些基因号。

同理,各个分支的颜色也是可以修改的,不过就需要先用Node或Clade模式选中想修改的分支,再用Color来修改颜色,这里不再赘述。
添加高亮
给特定分支添加高亮方便我们着重突出我们所关注的那一个分支,在Node或Clade模式下,点选想要高亮的分支,随后使用左上角的Highlight功能,选好颜色并确认,即可添加上高亮效果。我努力了一番,现在各个布局中都有不错的高亮显示效果。

导出
在对进化树样式进行一定编辑后,你可能会希望将编辑过的结果临时保存起来,供下次继续编辑,这可以使用File - Save As..功能,该方式会生成一个.rtr格式的文件,这是rhaeTree所使用的数据保存格式。

假如你已经完成了进化树编辑,希望导出进化树,则可以使用下面的导出功能,推荐导出为PDF或SVG的矢量格式,以供进一步在adobe illustrator等软件中进行后续的编辑。
已知问题
目前 macOS 版我用了开发者账号进行签名,但没有进行公证,因此首次打开需要去系统设置-隐私与安全性,翻到最底部并选择允许运行。Windows 版在启动时也可能会弹出警告。且 Windows 版本进行的测试不多,不确定各种功能是否都运行良好。
如果使用中遇到任何问题,欢迎到 GitHub 页面提出,或直接联系我(rhaetree@yorks0n.com)进行反馈。