「基因組學」使用OrthoFinder進行直系同源基因分析

談?wù)摰街毕低椿蚍治龅臅r候,大部分教程都是介紹OrthoMCL,這是2003年發(fā)表的一個工具,目前的引用次數(shù)已經(jīng)達到了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)點就是比其他的直系同源基因組的推斷軟件準確,并且速度還快。

此外他還能分析所提供物種的系統(tǒng)發(fā)育樹,將基因樹中的基因重復事件映射到物種樹的分支上,還提供了一些比較基因組學中的統(tǒng)計結(jié)果。

OrthoFinder的分析過程

OrthoFinder的分析過程分為如下幾步:

  1. BLAST all-vs-all搜索。使用BLASTP以evalue=10e-3進行搜索,尋找潛在的同源基因。(除了BLAST, 還可以選擇DIAMOND和MMSeq2)
  2. 基于基因長度和系統(tǒng)發(fā)育距離對BLAST bit得分進行標準化。
  3. 使用RBNHs確定同源組序列性相似度的閾值
  4. 構(gòu)建直系同源組圖(orthogroup graph),用作MCL的輸入
  5. 使用MCL對基因進行聚類,劃分直系同源組
分析流程1

OrthoFinder2在OrthoFinder的基礎(chǔ)上增加了物種系統(tǒng)發(fā)育樹的構(gòu)建,流程如下

  1. 為每個直系同源組構(gòu)建基因系統(tǒng)發(fā)育樹
  2. 使用STAG算法從無根基因樹上構(gòu)建無根物種樹
  3. 使用STRIDE算法構(gòu)建有根物種樹
  4. 有根物種樹進一步輔助構(gòu)建有根基因樹

基于Duplication-Loss-Coalescent 模型,有根基因樹可以用來推斷物種形成和基因復制事件,最后記錄在統(tǒng)計信息中。

分析流程2

軟件使用

在解壓縮的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é)果會更加準確,但是代價就是運行時間會更久,這是因為OrthoFinder要做10,000 - 20,000個基因樹的推斷。

OrthoFinder默認用mafft進行多序列聯(lián)配,用fasttree進行進化樹推斷。多序列聯(lián)配軟件還支持muscle, 進化樹推斷軟件還支持iqtree, raxml-ng, raxml。例如參數(shù)可以設(shè)置為-M msa -A mafft -T raxml.

并行化參數(shù): -t參數(shù)指定序列搜索時的線程數(shù),-a指的是序列搜索后分析的CPU數(shù)。

軟件細節(jié)

OrthoFinder提供了config.json可以調(diào)整不同軟件的參數(shù),如下是BLASTP。

BLASTP參數(shù)

OrthoFinder默認使用DendroBLAST發(fā)育樹,也就是根據(jù)序列相似度推斷進化關(guān)系。這是作者推薦的方法,在損失部分準確性的前提下提高了運算效率。當然你可以用-M msa從多序列比對的基礎(chǔ)上進行基因樹構(gòu)建。如果你先用了默認的DendroBLAST,想測試下傳統(tǒng)的MSA方法,那么也不需要重頭運行,因為有一個-b參數(shù)可以在復用之前的比對結(jié)果。

在物種發(fā)育樹的推斷上,OrthoFinder使用STAG算法,利用所有進行構(gòu)建系統(tǒng)發(fā)育樹,而非單拷貝基因。此外當使用MSA方法進行系統(tǒng)發(fā)育樹推斷時,OrthoFinder為了保證有足夠多的基因(大于100)用于分析,除了使用單拷貝基因外,還會挑選大部分是單拷貝基因的直系同源組。這些直系同源組的基因前后相連,用空缺字符表示缺失的基因,如果某一列存在多余50%的空缺字符,那么該列被剔除。最后基于用戶指定的建樹軟件進行系統(tǒng)發(fā)育樹構(gòu)建。結(jié)果在"WorkingDirectory/SpeciesTree_unrooted.txt"

使用STRIDE算法從無根樹中推斷出有根樹, 結(jié)果就是"SpeciesTree_rooted.txt".

結(jié)果文件

運行結(jié)束后,會在ExampleData里多出一個文件夾,Results_Feb14, 其中Feb14是我運行的日期

直系同源組相關(guān)結(jié)果文件,將不同的直系同源基因進行分組

  • 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 模型進行發(fā)育樹推斷
  • Potential_Rooted_Species_Trees: 可能的有根物種樹
  • SpeciesTree_rooted.txt: 從所有包含STAG支持的直系同源組推斷的STAG物種樹
  • SpeciesTree_rooted_node_labels.txt: 同上,只不過多了一個標簽信息,用于解釋基因重復數(shù)據(jù)。

比較基因組學的相關(guān)結(jié)果文件:

  • Orthogroups_SpeciesOverlaps.csv: 不同物種間的同源基因的交集
  • SingleCopyOrthogroups.txt: 單基因拷貝組的編號
  • Statistics_Overall.csv:總體統(tǒng)計信息
  • Statistics_PerSpecies.csv:分物種統(tǒng)計信息

STAG是一種從所有基因推測物種樹的算法,不同于使用單拷貝的直系同源基因進行進化樹構(gòu)建。

一些重要概念:

  • Species-specific orthogroup: 一個僅來源于一個物種的直系同源組
  • Single-copy orthogroup: 在直系同源組中,每個物種里面只有一個基因。我們會用單拷貝直系同源組里的基因推斷物種樹以及其他數(shù)據(jù)分析。
  • Unassigned gene: 無法和其他基因進行聚類的基因。
  • G50和O50,指的是當你直系同源組按照基因數(shù)從大到小進行排列,然后累加,當加入某個組后,累計基因數(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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容