基因家族分析(3)進(jìn)化樹構(gòu)建及美化

基因家族樹構(gòu)建最常用的方法是 NJ 法和 ML 方法,構(gòu)建進(jìn)化樹之前,需要進(jìn)行多序列比對(duì)。

多序列比對(duì)

多序列比對(duì)的作用是將核酸或者氨基酸序列對(duì)齊,使得相同殘基的位點(diǎn)位于同一列,這樣以便于發(fā)現(xiàn)不同的序列之間的相似部分。

這里使用 muscle 進(jìn)行多序列比對(duì)。

準(zhǔn)備文件:構(gòu)建進(jìn)化樹的蛋白文件

# 使用muscle進(jìn)行多序列比對(duì)
muscle -in pep.fasta -out pep.mfa

# 結(jié)果轉(zhuǎn)為phylip格式
trimal -in pep.mfa  -out pep.phylip  -phylip_paml

# 轉(zhuǎn)mega格式
trimal -in pep.mfa  -out pep.meg  -mega

# 還可以對(duì)比對(duì)結(jié)果進(jìn)行trimal處理
trimal -in pep.mfa  -out pep.trim.phylip  -phylip_paml     -gt 0.6     -cons 60

#多序列比對(duì)結(jié)果圖繪制
Rscript ./msa_figure.R    pep.fasta  pep.msa

多序列比對(duì)結(jié)果有多種軟件可以可視化,Jalview、mega等等

構(gòu)建進(jìn)化樹

可以使用 MEGA 軟件在個(gè)人電腦上完成多序列比對(duì)及構(gòu)建進(jìn)化樹如果序列條數(shù)較多或者使用 ML 方法建樹,由于個(gè)人電腦的性能限制,MEGA軟件可能會(huì)停止分析,這時(shí)建議使用服務(wù)器進(jìn)行多序列比對(duì)及建樹操作。

treebest構(gòu)建NJ樹

treebest 是一款 linux 服務(wù)器構(gòu)建進(jìn)化樹的軟件,可以用來構(gòu)建 NJ 樹。

# 使用treebest軟件構(gòu)建NJ樹
treebest nj  -W -t jtt -b 1000 ./pep.mfa > treebest.out
## -w 去除根節(jié)點(diǎn);-t 指定模型;-b 進(jìn)行1000次bootstrap分析

fastatree構(gòu)建進(jìn)化樹

fasttree 使用 ML 方法構(gòu)建進(jìn)化樹,默認(rèn)使用 JJT 模型,運(yùn)行速度快。

#默認(rèn)模型為JTT,可以使用 - lg 和 - wag更換氨基酸替代模型
fasttree -out fasttree.nwk  ./pep.mfa

fasttree 的進(jìn)化樹上已經(jīng)有 SH 檢驗(yàn)得到的可信度信息,可以直接使用。
如果需要進(jìn)行傳統(tǒng)的 bootstrap 分析,需要使用 seqboot 生成 bootstrap數(shù)據(jù)集。

#使用phylip軟件包seqboot程序,生成bootstrap數(shù)據(jù)集
#需要注意的是seqboot軟件只接受phylip格式,且基因ID長(zhǎng)度要求小于10
# 生成seqboot 配置文件, 其中1000表示生成bootstrap數(shù)據(jù)集個(gè)數(shù)
echo -e "pep.phylip_new\nR\n1000\nY\n1\n" > seqboot.cfg

# 運(yùn)行seqboot生成bootstrap數(shù)據(jù)集
seqboot < seqboot.cfg > seqboot.log
mv outfile  seqboot.phylip

# 運(yùn)行fasttree 對(duì)bootstrap數(shù)據(jù)集建樹,其中1000為數(shù)據(jù)集個(gè)數(shù)
fasttree -n 1000 -out fasttree.nwk.bootstrap  seqboot.phylip

# 運(yùn)行fasttree 對(duì)原始數(shù)據(jù)集建樹
fasttree  -out fasttree.nwk.tmp  pep.phylip_new

#整合bootstrap到進(jìn)化樹上
perl ./CompareToBootstrap.pl -tree fasttree.nwk.tmp -boot fasttree.nwk.bootstrap > fasttree.bs.nwk

使用iqtree構(gòu)建進(jìn)化樹

iqtree 使用 ML 方法構(gòu)建進(jìn)化樹,可以自動(dòng)估算替代模型構(gòu)樹。

iqtree -s  ./pep.mfa -m MFP -bb 1000 -nt 4 -pre  pep.iqtree
# -s 輸入文件;-m 自動(dòng)選擇模型; -bb bootstrap分析次數(shù); -nt 線程數(shù); -pre 輸出文件前綴

最終iqtree建樹的結(jié)果為pep.iqtree.treefile

進(jìn)化樹美化

進(jìn)化樹美化可以使用 mega,Figtree 等軟件進(jìn)行,這里介紹 iTOL(Inter?active Tree Of Life), 一款在線的進(jìn)化樹美化軟件。
首先導(dǎo)入進(jìn)化樹文件
基本設(shè)置

control 面板可以調(diào)整樹的形狀(圈圖、輻射圖或者常見的 normal 格式)、字體大小及顏色、是否顯示 bootstrap 值等信息。

添加注釋
如果想在圖中添加更多的信息,就需要自己準(zhǔn)備好配置文件,將每個(gè)
dataset 配置信息單獨(dú)寫到文本文件中,注意指定分隔符,準(zhǔn)備好文件后,將文件拖拽到進(jìn)化樹美化頁(yè)面。然后微調(diào)這些 dataset,得到最終的進(jìn)化樹圖片。

例如:
label顏色調(diào)整(寫到文本文件中)

#指定dataset的類型
TREE_COLORS
#指定文件分隔符
SEPARATOR TAB
#指定數(shù)據(jù),第一列為label
#第二列固定為label
#第三列為顏色
DATA
id1  label  #EE82EE
id2  label  #EE82EE
id3  label  #EE82EE

label背景顏色調(diào)整

#指定dataset的類型
TREE_COLORS
#指定文件分隔符
SEPARATOR TAB
#指定數(shù)據(jù),第一列為label
#第二列固定為range
#第三列為顏色
#第四列為亞家族分類


在label前面添加形狀
在ITOL中不同的數(shù)字代表不同的符號(hào)

symbol示例文件
第一列為id,第二列為symbol,第三列為大小,第四列為顏色,第五列為是否填充,第六列為位置


效果圖

歡迎關(guān)注Bioinfor 生信云微信公眾號(hào)!

將公眾號(hào)推文分享到微信朋友圈即可獲取腳本

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容