基因家族樹構(gòu)建最常用的方法是 NJ 法和 ML 方法,構(gòu)建進(jìn)化樹之前途戒,需要進(jìn)行多序列比對。
多序列比對
多序列比對的作用是將核酸或者氨基酸序列對齊,使得相同殘基的位點位于同一列筹淫,這樣以便于發(fā)現(xiàn)不同的序列之間的相似部分。
這里使用 muscle 進(jìn)行多序列比對呢撞。
準(zhǔn)備文件:構(gòu)建進(jìn)化樹的蛋白文件
# 使用muscle進(jìn)行多序列比對
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
# 還可以對比對結(jié)果進(jìn)行trimal處理
trimal -in pep.mfa -out pep.trim.phylip -phylip_paml -gt 0.6 -cons 60
#多序列比對結(jié)果圖繪制
Rscript ./msa_figure.R pep.fasta pep.msa
多序列比對結(jié)果有多種軟件可以可視化损姜,Jalview、mega等等
構(gòu)建進(jìn)化樹
可以使用 MEGA 軟件在個人電腦上完成多序列比對及構(gòu)建進(jìn)化樹如果序列條數(shù)較多或者使用 ML 方法建樹殊霞,由于個人電腦的性能限制摧阅,MEGA軟件可能會停止分析,這時建議使用服務(wù)器進(jìn)行多序列比對及建樹操作绷蹲。
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é)點瘸右;-t 指定模型娇跟;-b 進(jìn)行1000次bootstrap分析
fastatree構(gòu)建進(jìn)化樹
fasttree 使用 ML 方法構(gòu)建進(jìn)化樹,默認(rèn)使用 JJT 模型太颤,運行速度快苞俘。
#默認(rèn)模型為JTT,可以使用 - lg 和 - wag更換氨基酸替代模型
fasttree -out fasttree.nwk ./pep.mfa
fasttree 的進(jìn)化樹上已經(jīng)有 SH 檢驗得到的可信度信息龄章,可以直接使用吃谣。
如果需要進(jìn)行傳統(tǒng)的 bootstrap 分析乞封,需要使用 seqboot 生成 bootstrap數(shù)據(jù)集。
#使用phylip軟件包seqboot程序岗憋,生成bootstrap數(shù)據(jù)集
#需要注意的是seqboot軟件只接受phylip格式肃晚,且基因ID長度要求小于10
# 生成seqboot 配置文件, 其中1000表示生成bootstrap數(shù)據(jù)集個數(shù)
echo -e "pep.phylip_new\nR\n1000\nY\n1\n" > seqboot.cfg
# 運行seqboot生成bootstrap數(shù)據(jù)集
seqboot < seqboot.cfg > seqboot.log
mv outfile seqboot.phylip
# 運行fasttree 對bootstrap數(shù)據(jù)集建樹,其中1000為數(shù)據(jù)集個數(shù)
fasttree -n 1000 -out fasttree.nwk.bootstrap seqboot.phylip
# 運行fasttree 對原始數(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)化樹仔戈,可以自動估算替代模型構(gòu)樹关串。
iqtree -s ./pep.mfa -m MFP -bb 1000 -nt 4 -pre pep.iqtree
# -s 輸入文件;-m 自動選擇模型监徘; -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)備好配置文件忠怖,將每個
dataset 配置信息單獨寫到文本文件中,注意指定分隔符抄瑟,準(zhǔn)備好文件后脑又,將文件拖拽到進(jìn)化樹美化頁面。然后微調(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ù)字代表不同的符號
symbol示例文件
第一列為id,第二列為symbol,第三列為大小席舍,第四列為顏色布轿,第五列為是否填充,第六列為位置
效果圖