大概是長期的不鍛煉使得今天的爬山運(yùn)動過量了,接著悲劇就是無法入眠。也幸虧明天是周日,干脆就起床碼字了。
總結(jié)下自己前面用snp構(gòu)建系統(tǒng)進(jìn)化樹的方法吧。
1.構(gòu)建進(jìn)化樹的算法
構(gòu)建系統(tǒng)進(jìn)化樹的方法主要有以下幾類:
基于距離矩陣的方法:NJ(鄰接法)
MP(最大簡約法)
ML(最大似然法)
以及貝葉斯法。
一般情況下,若有合適的模型,ML的效果較好;
近緣序列的話,一般使用MP;
遠(yuǎn)源序列,一般使用NJ或者M(jìn)L。
在分析變異過濾得到SNP時,一般都會用PHYLIP構(gòu)建NJ進(jìn)化樹。
PHYLIP軟件官網(wǎng)http://evolution.genetics.washington.edu/phylip.html
那么具體如何操作呢?
軟件安裝
軟件安裝較為簡單
wget http://evolution.gs.washington.edu/phylip/download/phylip-3.69.tar.gz ./ #下載軟件
tar zxvf phylip-3.69.tar.gz #解壓
cd phylip-3.69/src
make install
#以上幾步即安裝完軟件,文件夾中的exe目錄里為可執(zhí)行程序
2.輸入文件的格式轉(zhuǎn)換
查看Phylip軟件的說明,發(fā)現(xiàn)其輸入文件的格式為下圖,并不為vcf格式(http://evolution.genetics.washington.edu/phylip/doc/main.html#inputfiles),因此需要對其進(jìn)行格式的轉(zhuǎn)換。

其中第一行為構(gòu)建進(jìn)化樹的樣品數(shù)以及每個樣品使用的snp數(shù)目。
第二行及以下為每個樣品的名稱及snp的具體內(nèi)容。需要注意的是樣品的名稱必須為10個字母,如果未達(dá)到10個字母,可用tab鍵或者空格鍵代替。第11個字母后即為snp的內(nèi)容,同時在這些序列中,一般每10個位點(diǎn)會有1個空格使其方便閱讀。每個樣品的用于構(gòu)建snp的個數(shù)必須相同。
根據(jù)以上的規(guī)定,可以寫腳本將vcf格式轉(zhuǎn)化為可用于phylip的phy格式。
3.軟件使用
phylip中有許多程序,大部分的程序運(yùn)行方法相同,把infile作為默認(rèn)的輸入文件,輸出結(jié)果寫在outfile中。因此,在進(jìn)行下一步分析前,需要重命名想要保存的文件。
seqboot: 生成隨機(jī)樣本,用bootstrap和jack-knife方法。需要設(shè)置選項(xiàng)M
dnadist:DNA距離矩陣計(jì)算器。
neighbor:NJ法的使用
consense:用多重樹構(gòu)建一致樹。
每個程序都需要設(shè)定參數(shù),因此還需要新建par文件。
#cat seqboot.par
all.merge.snp.phy #設(shè)定輸入文件的名稱,否則輸入默認(rèn)的名為infile的文件
r #選擇bootstrap
1000 #設(shè)置bootstrap的值,即重復(fù)的replicate的數(shù)目,通常使用1000或者100,注意此處設(shè)定好后,后續(xù)兩步的M值也為1000或者100
y #yes確認(rèn)以上設(shè)定的參數(shù)
9 #設(shè)定隨機(jī)參數(shù),輸入奇數(shù)值。
#cat dnadist.par
seqboot.out #本程序的輸入文件
t #選擇設(shè)定Transition/transversion的比值
2.3628 #比值大小
m #修改M值
d #修改M值
1000 #設(shè)定M值大小
2 #將軟件運(yùn)行情況顯示出來
y #確認(rèn)以上設(shè)定的參數(shù)
#cat neighbor.par
dnadist.out #本程序的輸入文件
m
1000 #設(shè)定M值大小
9 #設(shè)定隨機(jī)數(shù),輸入奇數(shù)值
y #確認(rèn)以上設(shè)定的參數(shù)
# cat consense.par
nei.tree #本程序的輸入文件
y #確認(rèn)以上設(shè)定的參數(shù)
再運(yùn)行以下命令行即可
seqboot<seqboot.par &&mv outfile seqboot.out &&dnadist<dnadist.par && mv outfile dnadist.out && neighbor<neighbor.par && mv outfile nei.out && mv outtree nei.tree && consense<consense.par && mv outfile cons.out && mv outtree constree
最后將會得到constree文件,可將該文件gaiwei*.tre文件,雙擊后在treeview中直接查看進(jìn)化樹的內(nèi)容。
若要進(jìn)行進(jìn)一步的編輯,可使用iTOL在線的網(wǎng)站(http://itol.embl.de/)進(jìn)行編輯,以下即為我得到的一個進(jìn)化樹。
