|
談?wù)摰街毕低椿蚍治龅臅r(shí)候,大部分教程都是介紹OrthoMCL,這是2003年發(fā)表的一個(gè)工具,目前的引用次數(shù)已經(jīng)達(dá)到了3000多,但這個(gè)軟件似乎在2013年之后就不在更新,而且安裝時(shí)還需要用到MySQL(GitHub上有人嘗試從MySQL轉(zhuǎn)到sqlite)。 而OrthoFinder則是2015年出現(xiàn)的軟件,目前已有400多引用。該軟件持續(xù)更新,安裝更加友好,因此我決定使用它來(lái)做直系同源基因的相關(guān)分析。 OrthoFinder能做什么?OrthoFinder: solving fundamental biases in whole genome comparisons dramatically improves orthogroup inference accuracy提到,它的優(yōu)點(diǎn)就是比其他的直系同源基因組的推斷軟件準(zhǔn)確,并且速度還快。 此外他還能分析所提供物種的系統(tǒng)發(fā)育樹,將基因樹中的基因重復(fù)事件映射到物種樹的分支上,還提供了一些比較基因組學(xué)中的統(tǒng)計(jì)結(jié)果。 OrthoFinder的分析過(guò)程OrthoFinder的分析過(guò)程分為如下幾步: BLAST all-vs-all搜索。使用BLASTP以evalue=10e-3進(jìn)行搜索,尋找潛在的同源基因。(除了BLAST, 還可以選擇DIAMOND和MMSeq2) 基于基因長(zhǎng)度和系統(tǒng)發(fā)育距離對(duì)BLAST bit得分進(jìn)行標(biāo)準(zhǔn)化。 使用RBNHs確定同源組序列性相似度的閾值 構(gòu)建直系同源組圖(orthogroup graph),用作MCL的輸入 使用MCL對(duì)基因進(jìn)行聚類,劃分直系同源組

OrthoFinder2在OrthoFinder的基礎(chǔ)上增加了物種系統(tǒng)發(fā)育樹的構(gòu)建,流程如下 為每個(gè)直系同源組構(gòu)建基因系統(tǒng)發(fā)育樹 使用STAG算法從無(wú)根基因樹上構(gòu)建無(wú)根物種樹 使用STRIDE算法構(gòu)建有根物種樹 有根物種樹進(jìn)一步輔助構(gòu)建有根基因樹
基于Duplication-Loss-Coalescent 模型,有根基因樹可以用來(lái)推斷物種形成和基因復(fù)制事件,最后記錄在統(tǒng)計(jì)信息中。 
軟件使用在解壓縮的OrthoFinder文件目錄下(安裝見最后)有一個(gè) ExampleData, 里面就是用于測(cè)試的數(shù)據(jù)集。 orthofinder -f ExampleData -S mmseqs
# -f 指定文件夾
# -S 指定序列搜索程序,有blast, mmseqs, blast_gz, diamond可用
OrthoFinder的基本使用就是如此簡(jiǎn)單,而且最終效果也基本符合需求。 如果你想根據(jù)多序列聯(lián)配(MSA)結(jié)果按照極大似然法構(gòu)建系統(tǒng)發(fā)育樹,那么你需要加上 -M msa。這樣結(jié)果會(huì)更加準(zhǔn)確,但是代價(jià)就是運(yùn)行時(shí)間會(huì)更久,這是因?yàn)?OrthoFinder要做10,000 - 20,000個(gè)基因樹的推斷。 OrthoFinder默認(rèn)用mafft進(jìn)行多序列聯(lián)配,用fasttree進(jìn)行進(jìn)化樹推斷。多序列聯(lián)配軟件還支持muscle, 進(jìn)化樹推斷軟件還支持iqtree, raxml-ng, raxml。例如參數(shù)可以設(shè)置為 -M msa-A mafft-T raxml. 并行化參數(shù): -t參數(shù)指定序列搜索時(shí)的線程數(shù), -a指的是序列搜索后分析的CPU數(shù)。 軟件細(xì)節(jié)OrthoFinder提供了 config.json可以調(diào)整不同軟件的參數(shù),如下是BLASTP。 
OrthoFinder默認(rèn)使用 DendroBLAST發(fā)育樹,也就是根據(jù)序列相似度推斷進(jìn)化關(guān)系。這是作者推薦的方法,在損失部分準(zhǔn)確性的前提下提高了運(yùn)算效率。當(dāng)然你可以用 -M msa從多序列比對(duì)的基礎(chǔ)上進(jìn)行基因樹構(gòu)建。如果你先用了默認(rèn)的 DendroBLAST,想測(cè)試下傳統(tǒng)的MSA方法,那么也不需要重頭運(yùn)行,因?yàn)橛幸粋€(gè) -b參數(shù)可以在復(fù)用之前的比對(duì)結(jié)果。 在物種發(fā)育樹的推斷上,OrthoFinder使用STAG算法,利用所有進(jìn)行構(gòu)建系統(tǒng)發(fā)育樹,而非單拷貝基因。此外當(dāng)使用MSA方法進(jìn)行系統(tǒng)發(fā)育樹推斷時(shí),OrthoFinder為了保證有足夠多的基因(大于100)用于分析,除了使用單拷貝基因外,還會(huì)挑選大部分是單拷貝基因的直系同源組。這些直系同源組的基因前后相連,用空缺字符表示缺失的基因,如果某一列存在多余50%的空缺字符,那么該列被剔除。最后基于用戶指定的建樹軟件進(jìn)行系統(tǒng)發(fā)育樹構(gòu)建。結(jié)果在'WorkingDirectory/SpeciesTree_unrooted.txt' 使用STRIDE算法從無(wú)根樹中推斷出有根樹, 結(jié)果就是'SpeciesTree_rooted.txt'. 結(jié)果文件運(yùn)行結(jié)束后,會(huì)在 ExampleData里多出一個(gè)文件夾, Results_Feb14, 其中Feb14是我運(yùn)行的日期 直系同源組相關(guān)結(jié)果文件,將不同的直系同源基因進(jìn)行分組 Orthogroups.csv:用制表符分隔的文件,每一行是直系同源基因組對(duì)應(yīng)的基因。 Orthogroups.txt: 類似于Orthogroups.csv,只不過(guò)是OrhtoMCL的輸出格式 Orthogroups_UnassignedGenes.csv: 格式同Orthogroups.csv,只不過(guò)是物種特異性的基因 Orthogroups.GeneCount.csv:格式同Orthogroups.csv, 只不過(guò)不再是基因名信息,而是以基因數(shù)。
直系同源相關(guān)文件,分析每個(gè)直系同源基因組里的直系同源基因之間關(guān)系,結(jié)果會(huì)在 Orthologues_Feb14文件夾下,其中 Feb14是日期 Gene_Trees: 每個(gè)直系同源基因基因組里的基因樹 ReconGeneTrees:使用OrthoFinder duplication-loss coalescent 模型進(jìn)行發(fā)育樹推斷 PotentialRootedSpecies_Trees: 可能的有根物種樹 SpeciesTree_rooted.txt: 從所有包含STAG支持的直系同源組推斷的STAG物種樹 SpeciesTreerootednode_labels.txt: 同上,只不過(guò)多了一個(gè)標(biāo)簽信息,用于解釋基因重復(fù)數(shù)據(jù)。
比較基因組學(xué)的相關(guān)結(jié)果文件: Orthogroups_SpeciesOverlaps.csv: 不同物種間的同源基因的交集 SingleCopyOrthogroups.txt: 單基因拷貝組的編號(hào) Statistics_Overall.csv:總體統(tǒng)計(jì)信息 Statistics_PerSpecies.csv:分物種統(tǒng)計(jì)信息
STAG是一種從所有基因推測(cè)物種樹的算法,不同于使用單拷貝的直系同源基因進(jìn)行進(jìn)化樹構(gòu)建。
一些重要概念:Species-specific orthogroup: 一個(gè)僅來(lái)源于一個(gè)物種的直系同源組 Single-copy orthogroup: 在直系同源組中,每個(gè)物種里面只有一個(gè)基因。我們會(huì)用單拷貝直系同源組里的基因推斷物種樹以及其他數(shù)據(jù)分析。 Unassigned gene: 無(wú)法和其他基因進(jìn)行聚類的基因。 G50和O50,指的是當(dāng)你直系同源組按照基因數(shù)從大到小進(jìn)行排列,然后累加,當(dāng)加入某個(gè)組后,累計(jì)基因數(shù)大于50%的總基因數(shù),那么所需要的直系同源組的數(shù)目就是O50,該組的基因樹就是G50.
Orthogroups, Orthologs 和 Paralogs 這三個(gè)概念推薦看圖理解。 
如何安裝?最快的方法OrthoFinder可以通過(guò)conda安裝,建議為它新建一個(gè)虛擬環(huán)境 conda create -n orthofinder orthofinder=2.2.7
如果你愿意折騰你先得安裝它的三個(gè)依賴工具: MCL, FastME, DIAMOND/MMseqs2/BLAST+ MCL有兩種安裝方式,最簡(jiǎn)單的就是用 sudo pat-getinstall mcl, 但是對(duì)于大部分人可能沒有root權(quán)限,因此這里用源代碼編譯。http:///mcl/ wget https://www.micans.org/mcl/src/mcl-latest.tar.gz
tar xf mcl-latest.tar.gz
cd mcl-14.137
./configure --prefix=~/opt/biosoft/mcl-14.137
make -j 20 && make install
之后是MMseqs2, 一個(gè)蛋白搜索和聚類工具集,相關(guān)文章發(fā)表在NBT, NC上。GitHub地址為https://github.com/soedinglab/MMseqs2 wget https://github.com/soedinglab/MMseqs2/releases/download/3-be8f6/MMseqs2-Linux-AVX2.tar.gz
tar xzf MMseqs2-Linux-AVX2.tar.gz
mv mmseqs2 ~/opt/biosoft/
最后安裝FastME, 這是一個(gè)基于距離的系統(tǒng)發(fā)育樹推斷軟件。在http://www./fastme/binaries.php下載,上傳到服務(wù)器 
tar xf fastme-2.1.5.tar.gz
cd fastme-2.1.5
./configure --prefix=/opt/biosoft/fastme-2.1.5
make && make install
|