近幾年來(lái)枪汪,Hyphy的使用人數(shù)越來(lái)越來(lái)多涌穆,雖然不及paml,但這款軟件的一些優(yōu)秀特性使得它值得受到使用和關(guān)注雀久。
首先相比paml宿稀,hyphy有以下幾大優(yōu)點(diǎn):
- 操作使用簡(jiǎn)單。
- 運(yùn)行效率更高赖捌,支持多線程祝沸。
- 模型眾多,并且越庇,更新罩锐,許多模型都是近幾年單獨(dú)發(fā)了篇MBE,雖然我不敢說(shuō)兩個(gè)軟件誰(shuí)更好卤唉,但Hyphy官方是說(shuō)比paml更好的涩惑,比如hyphy的BUSTED相比paml的branch-site model,hyphy官方說(shuō)法為
BUSTED is a method described in Murrell et al. It has been extensively tested and shows better power and accuracy than either "branch-site" models in PAML, or the "covarion" style models.
接下來(lái)介紹的一系列東西搬味,實(shí)際上是對(duì)Hyphy官方網(wǎng)站的一系列教程的總結(jié)境氢,很多東西官網(wǎng)都寫(xiě)得很清楚蟀拷,官網(wǎng)地址為https://www.hyphy.org/碰纬。
如果你不想看長(zhǎng)篇大論萍聊,直接跳到最后的總結(jié)部分,那里有最簡(jiǎn)練的總結(jié)
關(guān)于Hyphy你需要知道的幾件事
關(guān)于Hyphy的不同版本,hyphy的網(wǎng)頁(yè)版即是datamonkey悦析,并且還有GUI版本寿桨,這里介紹的主要是命令行版本,并且命令行版本也可以分為交互式運(yùn)行和一行命令運(yùn)行强戴,這里不介紹交互式方法的使用亭螟。
關(guān)于hyphy的安裝,只需要用conda就可以安裝了
conda install -c bioconda hyphy
關(guān)于hyphy的輸入文件,要求一顆newick格式(只能是此格式)系統(tǒng)發(fā)育樹(shù)以及相對(duì)應(yīng)的fasta序列比對(duì)文件(可以是FASTA, phylip, 等等)骑歹,標(biāo)注foreground branch预烙,即前景支的方法和paml略微不同,即在newick文件中在分支名和支長(zhǎng)(如果有的話)之間加上{Foreground}來(lái)標(biāo)注道媚,或者你可以去hyphy官網(wǎng)的phylotree來(lái)在線標(biāo)注扁掸,地址為http://phylotree.hyphy.org/。
關(guān)于多線程支持方面最域,2.4.0版本當(dāng)中谴分,軟件中的命令hyphy
和HYPHYMPI
已經(jīng)等同,都是調(diào)用多線程镀脂,在這個(gè)版本之前牺蹄,hyphy
調(diào)用的是單核,而HYPHYMPI
則對(duì)應(yīng)的是多線程版本命令薄翅。
關(guān)于具體使用方法沙兰,hyphy的使用非常簡(jiǎn)單,以2.2.0版本為例翘魄,如果你要使用多線程命令鼎天,則如下有兩種方法,分別對(duì)應(yīng)位點(diǎn)模型slac以及指定了前景支的支位點(diǎn)模型absrel,它們都需要openmp支持
# 方法一(新版本hyphy可以自動(dòng)根據(jù)需求采用多綫程)
hyphy slac --alignment alignment.fasta --tree tree.newick --output slac.json
# 方法二
HYPHYMPI slac --alignment alignment.fasta --tree tree.newick CPU=interger(需要openmp支持)
# 方法三
mpiexec --oversubscribe -n 10(線程數(shù)) HYPHYMPI absrel --alignment alignment.fasta --tree tree.newick --branches Foreground
# 如果是relax方法熟丸,有點(diǎn)特殊训措,前景的指定用--test而不是--branches
mpiexec --oversubscribe -n 10(線程數(shù)) HYPHYMPI absrel --alignment alignment.fasta --tree tree.newick --test Foreground
不同的模型,只需要改相應(yīng)的模型名稱就可以調(diào)用了(替換上面命令的slac或者absrel)光羞,用法非常簡(jiǎn)單,如果不特別用branches指定Foreground绩鸣,那么則會(huì)默認(rèn)對(duì)整個(gè)系統(tǒng)發(fā)育應(yīng)用模型。
關(guān)于輸出結(jié)果及結(jié)果可視化纱兑,Hyphy運(yùn)行的時(shí)候呀闻,默認(rèn)打印到屏幕上的結(jié)果是以markdown格式輸出的,這個(gè)結(jié)果還是很直觀的潜慎,而保存到本地文件的結(jié)果是以json格式輸出的捡多,并不是很直觀(但json格式可以很方便的用python的json模塊提取各種信息蓖康,例如pvalue和正選擇位點(diǎn),在多個(gè)任務(wù)批量操作的時(shí)候垒手,非常的方便蒜焊,這種保存的格式非常具有通用性,其實(shí)是件好事)科贬,默認(rèn)是輸出到和多序列比對(duì)文件相同的文件夾泳梆,可以用--output
來(lái)改變輸出位置,可以去官網(wǎng)http://vision.hyphy.org/來(lái)可視化輸出結(jié)果榜掌,具體的格式介紹优妙,詳見(jiàn)https://www.hyphy.org/resources/json-fields.pdf。
重點(diǎn):模型介紹
關(guān)于Hyphy的各種模型憎账,基本上都可以分為不指定foreground和指定foreground運(yùn)行的兩種方式套硼,前者對(duì)應(yīng)的是檢測(cè)pervasive (across the whole phylogeny) positive or purifying selection,即整個(gè)系統(tǒng)發(fā)育中的普遍的正選擇/純化選擇胞皱,而后者對(duì)應(yīng)的是檢測(cè)episodic (at a subset of branches) positive or purifying selection邪意,即檢測(cè)一部分branches的獨(dú)立正選擇/純化選擇。
幾大位點(diǎn)模型
適合檢測(cè)Pervasive selection的位點(diǎn)模型
①FEL 固定效應(yīng)似然法(FEL, Fixed Effects Likelihood)
使用最大似然(ML)方法來(lái)推斷每個(gè)位點(diǎn)上的非同義(dN)和同義(dS)替換率朴恳,用于給定的編碼比對(duì)和相應(yīng)的系統(tǒng)發(fā)育抄罕。該方法假設(shè)在整個(gè)系統(tǒng)發(fā)育過(guò)程中,每個(gè)位點(diǎn)的選擇壓力是恒定的于颖。注意呆贿,F(xiàn)EL適合小到中型數(shù)據(jù)
②SLAC (Single-Likelihood Ancestor Counting)
對(duì)于給定的編碼比對(duì)和相應(yīng)的系統(tǒng)發(fā)育使用最大似然(ML)和計(jì)數(shù)方法的結(jié)合來(lái)推斷每個(gè)位點(diǎn)上的非同義(dN)和同義(dS)替換率。像FEL一樣森渐,該方法假設(shè)在整個(gè)系統(tǒng)發(fā)育過(guò)程中做入,每個(gè)位點(diǎn)的選擇壓力是恒定的。SLAC和FEL精準(zhǔn)度相似同衣,但適合更大的數(shù)據(jù)竟块,并且不適合高度分歧的序列
③?FUBAR(Fast, Unconstrained Bayesian AppRoximation)?
使用貝葉斯方法來(lái)推斷給定編碼比對(duì)和相應(yīng)系統(tǒng)發(fā)育的每個(gè)位點(diǎn)上的非同義(dN)和同義(dS)替換率。該方法假設(shè)在整個(gè)系統(tǒng)發(fā)育過(guò)程中耐齐,每個(gè)位點(diǎn)的選擇壓力是恒定的浪秘。FUBAR適用于中到大數(shù)據(jù)集,預(yù)計(jì)在檢測(cè)位點(diǎn)的普遍選擇方面比FEL更有效埠况。FUBAR是推斷pervasive selection的首選方法耸携。
適合檢測(cè)episodic selection的位點(diǎn)模型
MEME(Mixed Effects Model of Evolution)
MEME(混合效應(yīng)進(jìn)化模型)采用混合效應(yīng)最大似然方法來(lái)檢驗(yàn)個(gè)別位點(diǎn)是否受到episodic positive或多樣化選擇的影響的假設(shè)。換句話說(shuō)辕翰,MEME的目的是檢測(cè)在一定比例的分支下正選擇下進(jìn)化的位點(diǎn)夺衍。
對(duì)于每個(gè)位點(diǎn),MEME推測(cè)兩種ω值喜命,以及在給定的分支下沟沙,以此ω進(jìn)化的概率河劝。為了推斷ω,MEME會(huì)推斷α(dS) 和兩個(gè)不同的β(dN),β?和β+矛紫。在空模型和備擇模型中赎瞎,MEME強(qiáng)制β?≤α。因此β+是空模型和備擇模型不同的關(guān)鍵:在空模型中含衔,β+被限制為≤α煎娇,但在備擇模型中不受限制二庵。最終贪染,當(dāng)β+>α?xí)r,位點(diǎn)被推斷為正選擇催享,并使用似然比檢驗(yàn)顯示顯著杭隙。
檢測(cè)蛋白序列比對(duì)的正選擇/定向選擇的位點(diǎn)模型
FADE(FUBAR Aproach to Directional Evolution)
是一種基于FUBAR引入的貝葉斯框架(Bayesian framework)的方法,用來(lái)測(cè)試蛋白質(zhì)比對(duì)中的位點(diǎn)是否受定向選擇的影響因妙。具體地說(shuō)痰憎,F(xiàn)ADE將系統(tǒng)地測(cè)試,對(duì)于比對(duì)中的每個(gè)位點(diǎn)攀涵,與背景分支相比铣耘,一組指定的前景分支是否顯示對(duì)特定氨基酸的替代偏向。該偏差參數(shù)的高值表明該位點(diǎn)對(duì)特定氨基酸的取代作用大大超過(guò)預(yù)期以故。使用貝葉斯因子(BF)評(píng)估FADE的統(tǒng)計(jì)顯著性蜗细,其中BF>=100提供了強(qiáng)有力的證據(jù),表明該位點(diǎn)正在定向選擇下進(jìn)化怒详。
重要的是炉媒,與HyPhy中的大多數(shù)方法不同,F(xiàn)ADE不使用可逆的馬爾可夫模型昆烁,因?yàn)樗哪繕?biāo)是檢測(cè)定向選擇吊骤。因此,FADE分析需要一個(gè)有根的系統(tǒng)發(fā)育静尼。在使用FADE進(jìn)行分析之前白粉,可以使用基于瀏覽器的交互工具“Phylotree.js”來(lái)幫助建立樹(shù)的根。
兩個(gè)branch-site 模型
檢測(cè)獨(dú)立分支的episodic selection(branch-site model,at a subset of sites)
aBSREL (adaptive Branch-Site Random Effects Likelihood)
是常見(jiàn)的“Branch-Site”類模型的改進(jìn)版本鼠渺。aBSREL既允許分支的先驗(yàn)指定(即指定foreground branches)來(lái)測(cè)試選擇鸭巴,也可以以探索性的方式測(cè)試每個(gè)譜系以進(jìn)行選擇(p-value將自動(dòng)進(jìn)行BH校正,為什么叫探索性的方法呢系冗,因?yàn)槟憧梢韵炔恢付╢oreground奕扣,來(lái)看看哪個(gè)支的pvalue更低,然后來(lái)針對(duì)那一支進(jìn)行進(jìn)一步的選擇壓力分析)掌敬。請(qǐng)注意惯豆,探索性的方法將犧牲功效池磁。?aBSREL是在各個(gè)分支檢測(cè)正選擇的首選方法?,需要注意一點(diǎn)的是楷兽,aBSREL是多次獨(dú)立對(duì)指定的每一支進(jìn)行檢驗(yàn)的地熄,也就是說(shuō),你指定了許多的branches芯杀,實(shí)質(zhì)上和多次指定不同一個(gè)branch來(lái)多次運(yùn)行端考,效果是一樣的,而并非將這些branches視為一個(gè)整體去做檢測(cè)
檢測(cè)一個(gè)基因是否在某一分支或一組分支上的任何位點(diǎn)經(jīng)歷了正選擇(即Hyphy官方說(shuō)比paml的branch site更準(zhǔn)的模型(笑??))
BUSTED(Branch-Site Unrestricted Statistical Test for Episodic Diversification)
通過(guò)測(cè)試一個(gè)基因是否在至少一個(gè)分支的至少一個(gè)位點(diǎn)上經(jīng)歷了正選擇揭厚,BUSTED(分支位點(diǎn)無(wú)限制統(tǒng)計(jì)檢驗(yàn))提供了一個(gè)全基因(非位點(diǎn)特異性)正選擇的測(cè)試却特。當(dāng)運(yùn)行BUSTED時(shí),用戶可以指定一組前景支來(lái)測(cè)試正選擇(其余分支被指定為“背景”)筛圆,或者用戶可以測(cè)試整個(gè)系統(tǒng)發(fā)生的正選擇裂明。在后一種情況下,整個(gè)樹(shù)被有效地視為前景太援,正選擇的檢驗(yàn)考慮整個(gè)系統(tǒng)發(fā)育闽晦。這種方法對(duì)于相對(duì)較小的數(shù)據(jù)集(少于10個(gè)分類單元)特別有用,在這些數(shù)據(jù)集中提岔,其他方法可能沒(méi)有足夠的功效來(lái)檢測(cè)選擇仙蛉。這種方法不適用于確定有正選擇的特定位點(diǎn)。
對(duì)于每個(gè)系統(tǒng)發(fā)育分區(qū)(前景和背景分支位點(diǎn))碱蒙,BUSTED擬合了一個(gè)具有三個(gè)速率類的密碼子模型荠瘪,約束為ω1≤ω2≤1≤ω3。與其他方法一樣振亮,BUSTED同時(shí)估計(jì)每個(gè)分區(qū)屬于每個(gè)ω類的位點(diǎn)的比例巧还。這種模型作為選擇檢驗(yàn)中的替代模型,被稱為無(wú)約束模型坊秸。然后麸祷,BUSTED通過(guò)比較這個(gè)模型與前景分支上ω3=1(即不允許正選擇)的空模型的擬合度來(lái)測(cè)試正選擇。這個(gè)零模型也被稱為約束模型褒搔。如果零假設(shè)被拒絕阶牍,那么就有證據(jù)表明,至少有一個(gè)位點(diǎn)在前景枝上至少有一部分時(shí)間經(jīng)歷了正選擇星瘾。重要的是走孽,一個(gè)顯著的結(jié)果并不意味著該基因是在整個(gè)前景的正選擇下進(jìn)化的。
選擇壓力的放松/加強(qiáng)
RELAX
RELAX是一種假設(shè)檢驗(yàn)框架琳状,它檢測(cè)自然選擇的強(qiáng)度是否沿著一組指定的測(cè)試分支被放松或加強(qiáng)磕瓷。因此,RELAX不是明確檢測(cè)正選擇的合適方法。相反困食,RELAX在識(shí)別特定基因上自然選擇嚴(yán)格程度的趨勢(shì)和/或變化方面最有用边翁。K>1表示選擇強(qiáng)度加強(qiáng),K<1表示選擇壓力放松硕盹。
RELAX需要一組指定的 "測(cè)試 "分支與第二組 "參考 "分支進(jìn)行比較(注意符匾,不必分配所有的分支,但測(cè)試集和參考集各需要一個(gè)分支)瘩例。RELAX首先對(duì)整個(gè)系統(tǒng)發(fā)育過(guò)程擬合一個(gè)具有三個(gè)ω類的密碼子模型(空模型)啊胶。然后,RELAX通過(guò)引入作為選擇強(qiáng)度參數(shù)的參數(shù)k(其中k≥0)作為推斷ω值的指數(shù):ωk來(lái)測(cè)試放松/強(qiáng)化選擇垛贤。具體來(lái)說(shuō)焰坪,RELAX固定推斷的ω值(都是ωk<1,2,3>),并對(duì)測(cè)試分支推斷出一個(gè)將比率修改為ωk<1,2,3>的k值(替代模型)南吮。然后琳彩,RELAX進(jìn)行似然比檢驗(yàn),比較替代模型和空模型部凑。
總結(jié)
用法來(lái)說(shuō),以我用的2.2.0版本為例子碧浊,(2.4.0直接用hyphy命令即可)
HYPHYMPI slac/absrel/fubar(指定運(yùn)行的模型名稱) --alignment alignment.fasta(序列比對(duì)文件) --tree tree.newick(樹(shù)文件) --branches Foreground(此項(xiàng)可省略涂邀,則不指定前景) CPU=interger(線程數(shù),需要openmp支持)
模型上來(lái)說(shuō):
如果你要檢測(cè)類似paml中的M8位點(diǎn)模型箱锐,最好用FUBAR比勉,如果是小數(shù)據(jù),則用FEL驹止,大數(shù)據(jù)并且分歧度不是很高用SLAC浩聋。
如果你要檢測(cè)某個(gè)前景支當(dāng)中正選擇位點(diǎn),最好用MEME臊恋。
如果你要檢測(cè)單獨(dú)的某個(gè)branch是否存在正選擇衣洁,最好用aBSREL。
如果你要檢測(cè)一系列的branches的正選擇抖仅,即檢驗(yàn)?zāi)愕倪@個(gè)基因坊夫,在指定的branches的任意一個(gè)位點(diǎn)是否在某段時(shí)間經(jīng)歷過(guò)正選擇,則用BUSTED撤卢,BUSTED是不適合檢測(cè)單獨(dú)位點(diǎn)的正選擇的环凿。
如果你要檢測(cè)選擇壓力的放松/加強(qiáng),用RELAX放吩。
如果你要用蛋白序列來(lái)檢測(cè)氨基酸位點(diǎn)正選擇/定向選擇智听,用FADE。
最后再提一下,幾乎所有模型(還有一些沒(méi)常用的模型沒(méi)有提到)都可以分為指定前景和不指定前景的模式運(yùn)行到推,但不是都適合忽洛,就像官方說(shuō)的那樣,根據(jù)你的目的不同环肘,會(huì)有最優(yōu)選擇欲虚,當(dāng)然你也可以把某種模型都跑一遍,比如各種位點(diǎn)模型都走個(gè)流程悔雹,并且你也可以結(jié)合paml的模型复哆,例如,對(duì)于檢測(cè)Pervasive selection的位點(diǎn)模型腌零,你可以結(jié)合paml的M8梯找、M2a來(lái)分析。對(duì)于檢測(cè)episodic selection的branch-site益涧,你可以結(jié)合paml的branch-site modelA和BUSTED/aBSREL來(lái)比較分析锈锤。
以上的所有文字,都是筆者根據(jù)官方以及一些文獻(xiàn)當(dāng)中對(duì)于hyphy的使用總結(jié)闲询、翻譯久免,如有錯(cuò)誤使用之處,還請(qǐng)各位多多指正扭弧。