99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀分子進(jìn)化樹構(gòu)建及數(shù)據(jù)分析方法介紹
分子進(jìn)化樹構(gòu)建及數(shù)據(jù)分析方法介紹
2017-04-09
收藏

分子進(jìn)化樹構(gòu)建及數(shù)據(jù)分析方法介紹

小編在后臺收到不少關(guān)于建樹的問題,今天轉(zhuǎn)載一篇PLoB的帖子,分享給大家,一起來看一下吧~

方法的選擇

首先是方法的選擇。

基于距離的方法有UPGMA、ME(Minimum Evolution,最小進(jìn)化法)和NJ(Neighbor-Joining,鄰接法)等。其他的幾種方法包括MP(Maximum parsimony,最大簡約法)、ML(Maximum likelihood,最大似然法)以及貝葉斯(Bayesian)推斷等方法。其中UPGMA法已經(jīng)較少使用。

一般來講,如果模型合適,ML的效果較好。對近緣序列,有人喜歡MP,因?yàn)橛玫募僭O(shè)最少。MP一般不用在遠(yuǎn)緣序列上,這時(shí)一般用NJ或ML。對相似度很低的序列,NJ往往出現(xiàn)Long-branch attraction(LBA,長枝吸引現(xiàn)象),有時(shí)嚴(yán)重干擾進(jìn)化樹的構(gòu)建。貝葉斯的方法則太慢。對于各種方法構(gòu)建分子進(jìn)化樹的準(zhǔn)確性,一篇綜述(Hall BG. Mol Biol Evol 2005, 22(3):792-802)認(rèn)為貝葉斯的方法最好,其次是ML,然后是MP。其實(shí)如果序列的相似性較高,各種方法都會得到不錯(cuò)的結(jié)果,模型間的差別也不大。

對于NJ和ML,是需要選擇模型的。對于各種模型之間的理論上的區(qū)別,這里不作深入的探討,可以參看Nei的書。對于蛋白質(zhì)序列以及DNA序列,兩者模型的選擇是不同的。以作者的經(jīng)驗(yàn)來說,對于蛋白質(zhì)的序列,一般選擇Poisson Correction(泊松修正)這一模型。而對于核酸序列,一般選擇Kimura 2-parameter(Kimura-2參數(shù))模型。如果對各種模型的理解并不深入,作者并不推薦初學(xué)者使用其他復(fù)雜的模型。

Bootstrap幾乎是一個(gè)必須的選項(xiàng)。一般Bootstrap的值>70,則認(rèn)為構(gòu)建的進(jìn)化樹較為可靠。如果Bootstrap的值太低,則有可能進(jìn)化樹的拓?fù)浣Y(jié)構(gòu)有錯(cuò)誤,進(jìn)化樹是不可靠的。

對于進(jìn)化樹的構(gòu)建,如果對理論的了解并不深入,作者推薦使用缺省的參數(shù)。需要選擇模型的時(shí)候(例如用NJ或者M(jìn)L建樹),對于蛋白序列使用Poisson Correction模型,對于核酸序列使用Kimura-2參數(shù)模型。另外需要做Bootstrap檢驗(yàn),當(dāng)Bootstrap值過低時(shí),所構(gòu)建的進(jìn)化樹其拓?fù)浣Y(jié)構(gòu)可能存在問題。并且,一般推薦用兩種不同的方法構(gòu)建進(jìn)化樹,如果所得到的進(jìn)化樹類似,則結(jié)果較為可靠。

軟件的選擇

表1 一些與構(gòu)建分子進(jìn)化樹相關(guān)的軟件

構(gòu)建NJ樹,可以用PHYLIP(寫得有點(diǎn)問題,例如比較慢,并且Bootstrap檢驗(yàn)不方便)或者M(jìn)EGA。MEGA是Nei開發(fā)的方法并設(shè)計(jì)的圖形化的軟件,使用非常方便。作者推薦MEGA軟件為初學(xué)者的首選。雖然多雪列比對工具ClustalW/X自帶了一個(gè)NJ的建樹程序,但是該程序只有p-distance模型,而且構(gòu)建的樹不夠準(zhǔn)確,一般不用來構(gòu)建進(jìn)化樹。

構(gòu)建MP樹,最好的工具是PAUP,但該程序?qū)儆谏虡I(yè)軟件,并不對學(xué)術(shù)免費(fèi)。因此,作者并不建議使用PAUP。而MEGA和PHYLIP也可以用來構(gòu)建進(jìn)化樹。這里,作者推薦使用MEGA來構(gòu)建MP樹。理由是,MEGA是圖形化的軟件,使用方便,而PHYLIP則是命令行格式的軟件,使用較為繁瑣。對于近緣序列的進(jìn)化樹構(gòu)建,MP方法幾乎是最好的。

構(gòu)建ML樹可以使用PHYML,速度最快?;蛘呤褂肨ree-puzzle,速度也較快,并且該程序做蛋白質(zhì)序列的進(jìn)化樹效果比較好。而PAML則并不適合構(gòu)建進(jìn)化樹。

ML的模型選擇是看構(gòu)出的樹的likelihood值,從參數(shù)少,簡單的模型試起,到likelihood值最大為止。ML也可以使用PAUP或者PHYLIP來構(gòu)建。這里作者推薦的工具是BioEdit。BioEdit集成了一些PHYLIP的程序,用來構(gòu)建進(jìn)化樹。Tree-puzzle是另外一個(gè)不錯(cuò)的選擇,不過該程序是命令行格式的,需要學(xué)習(xí)DOS命令。PHYML的不足之處是沒有win32的版本,只有適用于64位的版本,因此不推薦使用。值得注意的是,構(gòu)建ML樹,不需要事先的多序列比對,而直接使用FASTA格式的序列即可。

貝葉斯的算法以MrBayes為代表,不過速度較慢。一般的進(jìn)化樹分析中較少應(yīng)用。由于該方法需要很多背景的知識,這里不作介紹。

需要注意的幾個(gè)問題是:

其一,如果對核酸序列進(jìn)行分析,并且是CDS編碼區(qū)的核酸序列,一般需要將核酸序列分別先翻譯成氨基酸序列,進(jìn)行比對,然后再對應(yīng)到核酸序列上。這一流程可以通過MEGA 3.0以后的版本實(shí)現(xiàn)。MEGA3現(xiàn)在允許兩條核苷酸,先翻成蛋白序列比對之后再倒回去,做后續(xù)計(jì)算。

其二,無論是核酸序列還是蛋白序列,一般應(yīng)當(dāng)先做成FASTA格式。FASTA格式的序列,第一行由符號“>”開頭,后面跟著序列的名稱,可以自定義,例如user1,protein1等等。將所有的FASTA格式的序列存放在同一個(gè)文件中。文件的編輯可用Windows自帶的記事本工具,或者EditPlus(google搜索可得)來操作。

文件格式如圖1所示:

圖1 FASTA格式的序列

另外,構(gòu)建NJ或者M(jìn)P樹需要先將序列做多序列比對的處理。作者推薦使用ClustalX進(jìn)行多序列比對的分析。多序列比對的結(jié)果有時(shí)需要后續(xù)處理并應(yīng)用于文章中,這里作者推薦使用GeneDoc工具。而構(gòu)建ML樹則不需要預(yù)先的多序列比對。

因此,作者推薦的軟件組合為:MEGA 3.1 + ClustalX + GeneDoc + BioEdit。

數(shù)據(jù)分析及結(jié)果推斷

一般碰到的幾類問題是:

推斷基因/蛋白的功能;

基因/蛋白家族分類;

計(jì)算基因分化的年代。

關(guān)于這方面的文獻(xiàn)非常多,這里作者僅做簡要的介紹。

推斷基因/蛋白的功能,一般先用BLAST工具搜索同一物種中與不同物種的同源序列,這包括直向同源物(ortholog)和旁系同源物(paralog)。如何界定這兩種同源物,網(wǎng)上有很多詳細(xì)的介紹,這里不作討論。然后得到這些同源物的序列,做成FASTA格式的文件。一般通過NJ構(gòu)建進(jìn)化樹,并且進(jìn)行Bootstrap分析所得到的結(jié)果已足夠。如果序列近緣,可以再使用MP構(gòu)建進(jìn)化樹,進(jìn)行比較。如果序列較遠(yuǎn)源,則可以做ML樹比較。使用兩種方法得到的樹,如果差別不大,并且Bootstrap總體較高,則得到的進(jìn)化樹較為可靠。

基因/蛋白家族分類。這方面可以細(xì)分為兩個(gè)問題。一是對一個(gè)大的家族進(jìn)行分類,另一個(gè)就是將特定的一個(gè)或多個(gè)基因/蛋白定位到已知的大的家族上,看看屬于哪個(gè)亞家族。例如,對驅(qū)動蛋白(kinesin)超家族進(jìn)行分類,屬于第一個(gè)問題。而假如得到一個(gè)新的驅(qū)動蛋白的序列,想分析該序列究竟屬于驅(qū)動蛋白超家族的14個(gè)亞家族中的哪一個(gè),則屬于后一個(gè)問題。這里,一般不推薦使用MP的方法。大多數(shù)的基因/蛋白家族起源較早,序列分化程度較大,相互之間較為遠(yuǎn)源。這里一般使用NJ、ME或者M(jìn)L的方法。

計(jì)算基因分化的年代。這個(gè)一般需要知道物種的核苷酸替代率。常見物種的核苷酸替代率需要查找相關(guān)的文獻(xiàn)。這里不作過多的介紹。一般對于這樣的問題,序列多數(shù)是近緣的,選擇NJ或者M(jìn)P即可。

如果使用MEGA進(jìn)行分析,選項(xiàng)中有一項(xiàng)是“Gaps/Missing Data”,一般選擇“Pairwise Deletion”。其他多數(shù)的選項(xiàng)保持缺省的參數(shù)。

總結(jié)

在實(shí)用中,只要方法、模型合理,建出的樹都有意義,可以任意選擇自己認(rèn)為好一個(gè)。最重要的問題是:你需要解決什么樣的問題?如果分析的結(jié)果能夠解決你現(xiàn)有的問題,那么,這樣的分析足夠了。因此,在做進(jìn)化分析前,可能需要很好的考慮一下自己的問題所在,這樣所作的分析才有針對性。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }