进化树可视化?你一直做错,知道吗?

文摘   2024-08-04 13:25   陕西  

为什么会错?错在哪里?

时间有限,我们直接进入主题。首先我们大家都会用蛋白序列建树,对不对?现在最常用的也是 IQtree。一般呢,这些软件给出的都是无根树。尽管我们都知道无根树和有根树的区别就是有没有根,但可视化的时候,我们仍然会习惯性地使用有根树的方式来可视化无根树。为了方便,直接给大家看两张同一个基因树的图吧。

首先先上进化树构建软件出来的树,我们用 figtree 可视化,如下

毋庸置疑,我们已经按照有根树的模式来可视化,见最左边(实际上 newick 文本本身格式就是有根的,为了记录进化树信息,我们也没办法,默认用有根树文本记录无根树)。

同一个树,我们用无根树的模式来可视化

有趣的事情发生了。需要明确的是,无根树可视化的时候,真正体现 taxon,也就是上述每个蛋白之间的“距离”。在没有明确外类群的情况下,其实我们肉眼都清楚,根就在中间,整个树应该是分成两大个分支,左上和右下。

如果我们肉眼给他定根。再按照有根树的模式来可视化

那么效果就出来了。

这个时候问题来了,为什么肉眼定的就对了,你说对就对?你说不对就不对?

序列可能会骗人,但是结构不会骗人。所以呢:

  1. 如果是无根树,那么最好分析的使用就用无根树

  2. 如果你想用有根树来可视化,这样容易看和可视化,那么你最好就置根,选一个合适的

有什么好办法?

下一个问题就是,怎么置根才是正确的根,尤其是我们完全不清楚外类群或者几乎找不到外类群。方法有很多,但最常见的是 midpoint 算法。(我个人认为是因为这个算法实现起来非常简单,所以支持的软件也多)

比如,我们可以直接在 figtree 中直接用 midpoint

我必须说明的是,其实 midpoint 算法在大多数时候,效果是很好的。只是如果出现某个分支的数据有异常(这个在尤其是基因结构注释质量不高的物种上)比较差的结构注释就会导致异常长的支出来。由于 midpoint 算法本质就类似“极差的中点”,如果两个极端有一个出问题(假的极端)那么置根就会直接出问题。比如上面。

好,那我最喜欢的是什么算法。这几天我测试了几个算法(能实现的就自己实现)和有软件就用软件。发现,MAD 算法表现很不错,不愧是发表在 NEE 上的算法。效果如下

左边是 figtree 内置的 midpoint 算法,右侧是 MAD 置根后用 figtree 可视化。

好了,那么问题来了,既然这个算法这么好,软件也有,那么怎么快速获得和使用。

我花3分钟打包了一个TBtools新插件「Root a PhyloTree」

为了让大伙能更容易且方便的进行正确且高效的进化树置根,我直接打包了一个插件,可以在MacOS 和 Windows 下直接使用。

直接去插件商店就可以找到。详细如下

点击 Install ,TBtools 内部弹出奶牛快传界面,点击 下载,会自动显示进度条

点击 Install It

完事后,就可以在 TBtools 里面找到插件了。

写在最后

Emmm,这个插件呢,运行之后会输入文件旁边生成一个「输入文件名字.rooted」文件,这里面记录的就是置根后的树。祝大伙开心使用....

农心生信工作室
用生信力量服务中国农业!!!