談?wù)摰街毕低椿蚍治龅臅r候,大部分教程都是介紹OrthoMCL,這是2003年發(fā)表的一個工具亚再,目前的引用次數(shù)已經(jīng)達(dá)到了3000多,但這個軟件似乎在2013年之后就不在更新晨抡,而且安裝時還需要用到MySQL(GitHub上有人嘗試從MySQL轉(zhuǎn)到sqlite)氛悬。
而OrthoFinder則是2015年出現(xiàn)的軟件,目前已有400多引用耘柱。該軟件持續(xù)更新如捅,安裝更加友好,因此我決定使用它來做直系同源基因的相關(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)計結(jié)果寓辱。
OrthoFinder的分析過程
OrthoFinder的分析過程分為如下幾步:
- BLAST all-vs-all搜索。使用BLASTP以evalue=10e-3進(jìn)行搜索赤拒,尋找潛在的同源基因秫筏。(除了BLAST, 還可以選擇DIAMOND和MMSeq2)
- 基于基因長度和系統(tǒng)發(fā)育距離對BLAST bit得分進(jìn)行標(biāo)準(zhǔn)化。
- 使用RBNHs確定同源組序列性相似度的閾值
- 構(gòu)建直系同源組圖(orthogroup graph)挎挖,用作MCL的輸入
- 使用MCL對基因進(jìn)行聚類这敬,劃分直系同源組
OrthoFinder2在OrthoFinder的基礎(chǔ)上增加了物種系統(tǒng)發(fā)育樹的構(gòu)建,流程如下
- 為每個直系同源組構(gòu)建基因系統(tǒng)發(fā)育樹
- 使用STAG算法從無根基因樹上構(gòu)建無根物種樹
- 使用STRIDE算法構(gòu)建有根物種樹
- 有根物種樹進(jìn)一步輔助構(gòu)建有根基因樹
基于Duplication-Loss-Coalescent 模型蕉朵,有根基因樹可以用來推斷物種形成和基因復(fù)制事件崔涂,最后記錄在統(tǒng)計信息中。
軟件使用
在解壓縮的OrthoFinder文件目錄下(安裝見最后)有一個 ExampleData
, 里面就是用于測試的數(shù)據(jù)集始衅。
orthofinder -f ExampleData -S mmseqs
# -f 指定文件夾
# -S 指定序列搜索程序冷蚂,有blast, mmseqs, blast_gz, diamond可用
OrthoFinder的基本使用就是如此簡單,而且最終效果也基本符合需求觅闽。
如果你想根據(jù)多序列聯(lián)配(MSA)結(jié)果按照極大似然法構(gòu)建系統(tǒng)發(fā)育樹帝雇,那么你需要加上-M msa
。這樣結(jié)果會更加準(zhǔn)確蛉拙,但是代價就是運(yùn)行時間會更久尸闸,這是因?yàn)?code>OrthoFinder要做10,000 - 20,000個基因樹的推斷。
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ù),-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
從多序列比對的基礎(chǔ)上進(jìn)行基因樹構(gòu)建注益。如果你先用了默認(rèn)的DendroBLAST
,想測試下傳統(tǒng)的MSA方法溯捆,那么也不需要重頭運(yùn)行丑搔,因?yàn)橛幸粋€-b
參數(shù)可以在復(fù)用之前的比對結(jié)果。
在物種發(fā)育樹的推斷上提揍,OrthoFinder使用STAG算法啤月,利用所有進(jìn)行構(gòu)建系統(tǒng)發(fā)育樹,而非單拷貝基因劳跃。此外當(dāng)使用MSA方法進(jìn)行系統(tǒng)發(fā)育樹推斷時谎仲,OrthoFinder為了保證有足夠多的基因(大于100)用于分析,除了使用單拷貝基因外售碳,還會挑選大部分是單拷貝基因的直系同源組强重。這些直系同源組的基因前后相連绞呈,用空缺字符表示缺失的基因贸人,如果某一列存在多余50%的空缺字符,那么該列被剔除佃声。最后基于用戶指定的建樹軟件進(jìn)行系統(tǒng)發(fā)育樹構(gòu)建艺智。結(jié)果在"WorkingDirectory/SpeciesTree_unrooted.txt"
使用STRIDE算法從無根樹中推斷出有根樹, 結(jié)果就是"SpeciesTree_rooted.txt".
結(jié)果文件
運(yùn)行結(jié)束后,會在ExampleData
里多出一個文件夾圾亏,Results_Feb14
, 其中Feb14是我運(yùn)行的日期
直系同源組相關(guān)結(jié)果文件十拣,將不同的直系同源基因進(jìn)行分組
- Orthogroups.csv:用制表符分隔的文件,每一行是直系同源基因組對應(yīng)的基因志鹃。
- Orthogroups.txt: 類似于Orthogroups.csv夭问,只不過是OrhtoMCL的輸出格式
- Orthogroups_UnassignedGenes.csv: 格式同Orthogroups.csv,只不過是物種特異性的基因
- Orthogroups.GeneCount.csv:格式同Orthogroups.csv, 只不過不再是基因名信息曹铃,而是以基因數(shù)缰趋。
直系同源相關(guān)文件,分析每個直系同源基因組里的直系同源基因之間關(guān)系,結(jié)果會在Orthologues_Feb14
文件夾下秘血,其中Feb14
是日期
- Gene_Trees: 每個直系同源基因基因組里的基因樹
- Recon_Gene_Trees:使用OrthoFinder duplication-loss coalescent 模型進(jìn)行發(fā)育樹推斷
- Potential_Rooted_Species_Trees: 可能的有根物種樹
- SpeciesTree_rooted.txt: 從所有包含STAG支持的直系同源組推斷的STAG物種樹
- SpeciesTree_rooted_node_labels.txt: 同上味抖,只不過多了一個標(biāo)簽信息,用于解釋基因重復(fù)數(shù)據(jù)灰粮。
比較基因組學(xué)的相關(guān)結(jié)果文件:
- Orthogroups_SpeciesOverlaps.csv: 不同物種間的同源基因的交集
- SingleCopyOrthogroups.txt: 單基因拷貝組的編號
- Statistics_Overall.csv:總體統(tǒng)計信息
- Statistics_PerSpecies.csv:分物種統(tǒng)計信息
STAG是一種從所有基因推測物種樹的算法仔涩,不同于使用單拷貝的直系同源基因進(jìn)行進(jìn)化樹構(gòu)建。
一些重要概念:
- Species-specific orthogroup: 一個僅來源于一個物種的直系同源組
- Single-copy orthogroup: 在直系同源組中粘舟,每個物種里面只有一個基因熔脂。我們會用單拷貝直系同源組里的基因推斷物種樹以及其他數(shù)據(jù)分析。
- Unassigned gene: 無法和其他基因進(jìn)行聚類的基因柑肴。
- G50和O50锤悄,指的是當(dāng)你直系同源組按照基因數(shù)從大到小進(jìn)行排列,然后累加嘉抒,當(dāng)加入某個組后零聚,累計基因數(shù)大于50%的總基因數(shù),那么所需要的直系同源組的數(shù)目就是O50些侍,該組的基因樹就是G50.
Orthogroups, Orthologs 和 Paralogs 這三個概念推薦看圖理解隶症。
如何安裝?
最快的方法
OrthoFinder可以通過conda安裝岗宣,建議為它新建一個虛擬環(huán)境
conda create -n orthofinder orthofinder=2.2.7
如果你愿意折騰
你先得安裝它的三個依賴工具: MCL, FastME, DIAMOND/MMseqs2/BLAST+
MCL有兩種安裝方式蚂会,最簡單的就是用sudo pat-get install mcl
, 但是對于大部分人可能沒有root權(quán)限,因此這里用源代碼編譯耗式。http://micans.org/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, 一個蛋白搜索和聚類工具集胁住,相關(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, 這是一個基于距離的系統(tǒng)發(fā)育樹推斷軟件刊咳。在http://www.atgc-montpellier.fr/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
BLAST+可裝可不裝,推薦閱讀這或許是我寫的最全的BLAST教程
以上軟件安裝之后娱挨,都需要將其添加到環(huán)境變量中余指,才能被OrthoFinder調(diào)用。
之后在https://github.com/davidemms/OrthoFinder/releases 尋找最近的穩(wěn)定版本下載到本地跷坝,例如OrthoFinder v2.2.7
tar xzf OrthoFinder-2.2.7.tar.gz
OrthoFinder-2.2.7/orthofinder -h