前言:因?yàn)樽罱戧懤m(xù)續(xù)接手了幾個(gè)物種的基因組項(xiàng)目灯萍,這也是生信分析中很大的一塊茎杂。其中最基礎(chǔ)的是組裝和注釋(當(dāng)然我們實(shí)驗(yàn)室也做組裝方法學(xué)的研究)。現(xiàn)在隨著很多物種基因組的發(fā)表吊宋,純基因組想發(fā)個(gè)很好的文章沒有新穎的故事感覺也挺難的酥宴】罚看最近關(guān)于基因組的文章,尤其是已經(jīng)release過的物種幅虑,好像都是在炒泛基因組/SV的概念。因?yàn)槲覀冏龅氖嵌啾扼w物種顾犹,所以更多的就牽扯到多倍體進(jìn)化倒庵,物種的比較等等比較基因組學(xué)的內(nèi)容褒墨。所以最近一直在陸陸續(xù)續(xù)的系統(tǒng)學(xué)習(xí)一些這方面的分析。
先介紹幾個(gè)概念擎宝。
Orthologs(直系同源物)是在兩個(gè)物種的最后共同祖先(LCA)中來自單個(gè)基因的一對基因郁妈。直系同源物是同源性基因,是物種形成事件的結(jié)果绍申。Paralogs(旁系同源物)是同源基因噩咪,是重復(fù)事件的結(jié)果。下圖就可以看到极阅,不同物種間的alpha-chain gene互為Orthologs(直系同源物)胃碾。這時(shí)候可以引用一個(gè)新名詞orthogroup (正交群)就用來形容自一組物種的LCA中的單個(gè)基因的基因組(在圖中就是alpha chain gene)。然后同一物種間alpha 和beta chain gene互為Paralogs(旁系同源物)筋搏。最后所有這些關(guān)系都可以由OrthoFinder來識別仆百。
在介紹基因家族收縮和擴(kuò)張之前,有一個(gè)概念是繞不過去的奔脐,就是基因家族俄周。
?
基因家族(gene family),是來源于同一個(gè)祖先髓迎,由一個(gè)基因通過基因重復(fù)而產(chǎn)生兩個(gè)或更多的拷貝而構(gòu)成的一組基因峦朗,它們在結(jié)構(gòu)和功能上具有明顯的相似性,編碼相似的蛋白質(zhì)產(chǎn)物排龄,同一家族基因可以緊密排列在一起波势,形成一個(gè)基因簇,但多數(shù)時(shí)候涣雕,它們是分散在同一染色體的不同位置艰亮,或者存在于不同的染色體上的,各自具有不同的表達(dá)調(diào)控模式挣郭。在基因組項(xiàng)目中迄埃,通常會(huì)選擇自己要研究的物種和其近緣的物種通過比對來尋找基因家族。
談?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ù)更新,安裝更加友好革砸,因此決定使用它來做直系同源基因的相關(guān)分析除秀。
那么糯累,OrthoFinder能做什么?
OrthoFinder: solving fundamental biases inwhole genome comparisons dramatically improves orthogroup inference accuracy提到册踩,它的優(yōu)點(diǎn)就是比其他的直系同源基因組的推斷軟件準(zhǔn)確泳姐,并且速度還快。
?
此外它還能分析所提供物種的系統(tǒng)發(fā)育樹暂吉,將基因樹中的基因重復(fù)事件映射到物種樹的分支上胖秒,還提供了一些比較基因組學(xué)中的統(tǒng)計(jì)結(jié)果。
?
OrthoFinder的分析過程分為如下幾步:
?
1. BLAST all-vs-all搜索慕的。使用BLASTP以evalue=10e-3進(jìn)行搜索阎肝,尋找潛在的同源基因。(除了BLAST, 還可以選擇DIAMOND和MMSeq2)
2. 基于基因長度和系統(tǒng)發(fā)育距離對BLAST bit得分進(jìn)行標(biāo)準(zhǔn)化业稼。
3. 使用RBNHs確定同源組序列性相似度的閾值
4. 構(gòu)建直系同源組圖(orthogroup graph)盗痒,用作MCL的輸入
5. 使用MCL對基因進(jìn)行聚類,劃分直系同源組
OrthoFinder2在OrthoFinder的基礎(chǔ)上增加了物種系統(tǒng)發(fā)育樹的構(gòu)建低散,流程如下:
1. 為每個(gè)直系同源組構(gòu)建基因系統(tǒng)發(fā)育樹
2. 使用STAG算法從無根基因樹上構(gòu)建無根物種樹
3. 使用STRIDE算法構(gòu)建有根物種樹
4. 有根物種樹進(jìn)一步輔助構(gòu)建有根基因樹
5. 基于Duplication-Loss-Coalescent 模型俯邓,有根基因樹可以用來推斷物種形成和基因復(fù)制事件,最后記錄在統(tǒng)計(jì)信息中熔号。
===安裝===
對于我這種安裝軟件總是無能的人稽鞭,conda真是拯救了我。
conda install -c bioconda -c conda-forge orthofinder
==測試?yán)舆\(yùn)行===
orthofinder -f ExampleData -S mmseqs
注:?-f 指定文件夾
? ? ? ? -S 指定序列搜索程序引镊,有blast,mmseqs, blast_gz, diamond可用
so easyk獭!弟头!
OrthoFinder的基本使用就是如此簡單吩抓,而且最終效果也基本符合需求。
?
如果你想根據(jù)多序列聯(lián)配(MSA)結(jié)果按照極大似然法構(gòu)建系統(tǒng)發(fā)育樹赴恨,那么你需要加上-M msa疹娶。這樣結(jié)果會(huì)更加準(zhǔn)確,但是代價(jià)就是運(yùn)行時(shí)間會(huì)更久伦连,這是因?yàn)镺rthoFinder要做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 -Amafft -T raxml.
?
并行化參數(shù): -t參數(shù)指定序列搜索時(shí)的線程數(shù),-a指的是序列搜索后分析的CPU數(shù)歧焦。
===結(jié)果文件===
運(yùn)行結(jié)束后移斩,會(huì)在ExampleData里多出一個(gè)文件夾,Results_ Jun07, 其中Jun07是我運(yùn)行的日期
?
(1) Results Files: Orthogroups
包含一個(gè)主文件“Orthogroups.csv”和兩個(gè)支持文件:
Orthogroups.csv,每一行為一個(gè)group叹哭,每一列為一個(gè)物種忍宋,行列交匯處為基因名稱。
Orthogroups_UnassignedGenes.csv风罩,包含所有未分配到任何group的基因名稱。
Orthogroups.txt舵稠,OrthoMCL格式的輸出結(jié)果超升,內(nèi)容等同于Orthogroups.csv。
(2)Results Files: Comparative_Genomics_Statistics
包含一些統(tǒng)計(jì)數(shù)據(jù)哺徊,可用于比較基因組分析室琢、繪圖以及質(zhì)控。
Statistics_Overall.csv和Statistics_PerSpecies.csv落追,提供基本的描述信息
Orthogroups_SpeciesOverlaps.tsv盈滴,兩兩物種的group共享矩陣
- G50:group中的基因數(shù),使得50%的基因處于該大小或更大的group中轿钠。
- O50:最小數(shù)量的group巢钓,使得50%的基因處于該大小或更大的group中。?
- Number of single-copy orthogroups:每個(gè)物種中只有一個(gè)基因的group(相當(dāng)于單拷貝核心基因)疗垛。這些group是構(gòu)建物種樹和許多其他分析的理想選擇症汹。
- Unassigned gene:未與任何其他基因劃分到一個(gè)group的基因。
(3)?Results Files: Orthologues
? ? ? ? 兩兩物種間的直系同源基因贷腕,每一行為一個(gè)group背镇,第一列為group編號,第二列為第一個(gè)物種的基因泽裳,第三列為第二個(gè)物種的基因瞒斩。同一物種的基因名以“,”分割。直系同源物可以是一對一涮总,一對多或多對多胸囱。
(4)?Results Files: Gene_Trees and Species_Tree
? ? ? ? 每個(gè)group的基因樹和定根的物種樹以newick格式輸出,可以用各種看樹軟件展示妹卿,如MEGA旺矾、iTOL、Dendroscope和FigTree等夺克,個(gè)人推薦用iTOL箕宙。例子的species的tree展示:
===其它用法===
1.? 添加新物種到之前的分析(previous_orthofinder_directory指的是包含“SpeciesIDs.txt”的目錄)
orthofinder -bprevious_orthofinder_directory -f new_fasta_directory
?
2. 從之前的分析中移除物種
從輸出目錄下找到工作目錄“WorkingDirectory”中的“SpeciesIDs.txt”文件,在要移除的物種那一行最前面加上一個(gè)“#”并保存铺纽,然后運(yùn)行(previous_orthofinder_directory指的是包含“SpeciesIDs.txt”的目錄):
orthofinder -bprevious_orthofinder_directory
?
3. 同時(shí)添加和刪除物種
編輯好“SpeciesIDs.txt”后柬帕,運(yùn)行:
orthofinder -b previous_orthofinder_directory-f new_fasta_directory
本文使用 文章同步助手 同步