写在前面
年初在汕头婚宴上,我问一个朋友,现在在做什么工作。他回复了我:
但行好事,莫问前程。
现在看来,挺好。
构建进化树的基础是序列对齐,或者说多序列比对。做序列对齐的主要目的是,确定所有序列的同源位点相互对应。目前存在各种各样的多序列比对算法,但是不存在一个算法能够绝对地保证其能进行完美的位点对应。此外,我们还需要考虑,我们用于比对的序列可能存在一些错误或者删除和缺失。所以,一般在我们得到多序列比对结果之后,用于进化树构建之前,我们会多序列比对结果进行修剪。
针对多序列比对修剪,目前存在各种各样的操作,其中包括:
- 人工修剪,换句话说,看心情,想删除哪些就删除哪些
- 删除所有含有gaps的位点,大体也可以人工删除
- 删除不保守位点,比如使用G-blocks等软件
- 删除含有一定比例gaps的位点,比如使用MEGA内置的算法
- 按照位点信息量进行删除,比如使用trimAL
...
基于个人的项目经验,一般我们都直接使用trimAL。而早前课题组的师弟师妹在做一些家族鉴定工作时,提到能否在界面下(windows/macOS)使用trimAL。我一直没做回应。不过我觉得这个事情过于简单。所以在某一天,我已经将其打包进去。于是,现在TBtools中存在三个多序列比对结果的修剪逻辑。
- 按照一定比例删除gaps,模仿mega
- 删除不保守位点,参考G-blocks的文献,我重新用Java写的
- trimAL,这个软件还在更新,所以我选择直接调用
功能界面如下
从图片上来看,这三个功能都只是
- 输入文件或者直接黏贴文本(对于trimAL,我加了自动识别多序列比对格式识别功能,支持的格式很多,包括faslta,clw....)
- 输出文件或者直接输出文本(对于trimAL,支持多种输出格式,faslta,clw....)
- 一定的参数控制
- 隐藏功能,剪切完自动可视化剪切结果
输入的多序列比对结果
输出的剪切后的结果
写在后面
并没有太多需要说的。我也不想花过多的时间,介绍这个使用起来过于简单的工具。