
寫(xiě)在前面
年初在汕頭婚宴上,我問(wèn)一個(gè)朋友,現(xiàn)在在做什么工作。他回復(fù)了我:
但行好事,莫問(wèn)前程。
現(xiàn)在看來(lái),挺好。
構(gòu)建進(jìn)化樹(shù)的基礎(chǔ)是序列對(duì)齊,或者說(shuō)多序列比對(duì)。做序列對(duì)齊的主要目的是,確定所有序列的同源位點(diǎn)相互對(duì)應(yīng)。目前存在各種各樣的多序列比對(duì)算法,但是不存在一個(gè)算法能夠絕對(duì)地保證其能進(jìn)行完美的位點(diǎn)對(duì)應(yīng)。此外,我們還需要考慮,我們用于比對(duì)的序列可能存在一些錯(cuò)誤或者刪除和缺失。所以,一般在我們得到多序列比對(duì)結(jié)果之后,用于進(jìn)化樹(shù)構(gòu)建之前,我們會(huì)多序列比對(duì)結(jié)果進(jìn)行修剪。
針對(duì)多序列比對(duì)修剪,目前存在各種各樣的操作,其中包括:
- 人工修剪,換句話說(shuō),看心情,想刪除哪些就刪除哪些
- 刪除所有含有g(shù)aps的位點(diǎn),大體也可以人工刪除
- 刪除不保守位點(diǎn),比如使用G-blocks等軟件
- 刪除含有一定比例gaps的位點(diǎn),比如使用MEGA內(nèi)置的算法
- 按照位點(diǎn)信息量進(jìn)行刪除,比如使用trimAL
...
基于個(gè)人的項(xiàng)目經(jīng)驗(yàn),一般我們都直接使用trimAL。而早前課題組的師弟師妹在做一些家族鑒定工作時(shí),提到能否在界面下(windows/macOS)使用trimAL。我一直沒(méi)做回應(yīng)。不過(guò)我覺(jué)得這個(gè)事情過(guò)于簡(jiǎn)單。所以在某一天,我已經(jīng)將其打包進(jìn)去。于是,現(xiàn)在TBtools中存在三個(gè)多序列比對(duì)結(jié)果的修剪邏輯。
- 按照一定比例刪除gaps,模仿mega
- 刪除不保守位點(diǎn),參考G-blocks的文獻(xiàn),我重新用Java寫(xiě)的
- trimAL,這個(gè)軟件還在更新,所以我選擇直接調(diào)用
功能界面如下



從圖片上來(lái)看,這三個(gè)功能都只是
- 輸入文件或者直接黏貼文本(對(duì)于trimAL,我加了自動(dòng)識(shí)別多序列比對(duì)格式識(shí)別功能,支持的格式很多,包括faslta,clw....)
- 輸出文件或者直接輸出文本(對(duì)于trimAL,支持多種輸出格式,faslta,clw....)
- 一定的參數(shù)控制
- 隱藏功能,剪切完自動(dòng)可視化剪切結(jié)果
輸入的多序列比對(duì)結(jié)果

輸出的剪切后的結(jié)果

寫(xiě)在后面
并沒(méi)有太多需要說(shuō)的。我也不想花過(guò)多的時(shí)間,介紹這個(gè)使用起來(lái)過(guò)于簡(jiǎn)單的工具。