1. 組裝算法
一般有基於OLC(Overlap-Layout-Consensus, 先重疊后擴展)和基於DBG(De Brujin Graph)兩種組裝算法。基於OLC的組裝方法適合長序列組裝,運行依賴的數據結構需要消耗大量的內存,且運行速度比較慢,錯誤率高,而DBG組裝方法內存消耗相對較低,運算速度快,且准確率高。目前主流的基因組裝算法都是基於后者改進設計的。
1)基於OLC算法
OLC組裝算法主要這么對一代和三代測序序列,因為它們的reads讀長相對較長。OLC算法的整體步驟可以分為三步:
- ①Overlap:對所有reads進行兩兩比對,找到片段間的重疊信息,一般在比對之前會將reads做下索引,減少計算量。這里需要設定最小重疊長度,如果兩個read的最小重疊長度低於一定閾值,那么可以認為兩段序列順序性較差。
- ②Layout:根據得到的重疊信息將存在的重疊片段建立一種組合關系,形成重疊群,即Contig。Contig進一步排列,生成多個較長的scaffold。
- ③Consensus:根據構成Contig的片段的原始質量數據,在重疊群中尋找一條質量最重的序列路徑,並獲得與路徑對應的序列,即Consensus。通過Consensus的多序列比對算法,就可以獲得最終的基因組序列。
OLC算法最初成功的用於Sange測序數據的組裝,比如Celera Assembler,Phrap,Newbler等均采用該算法進行拼接組裝。基於Overlap-layout算法的組裝軟件首推CABOG,這是當年用來組裝果蠅基因組的原型。
2)基於DBG算法
DBG原理圖如下,共6步:
A. 序列k-mer化:對插入片段進行建庫測序,下機reads經質控后,對clean reads進行k-mer化,即將reads 逐個鹼基開始切分為長度為K的子串;
B. 構建de Brujin圖:將上一步得到的所有長度為k的子串即k-mer作為de Brujin圖的節點,根據相鄰兩個K-mer重疊k-1個鹼基的原則將該兩個頂點(k-mer)有方向的連接起來,構建de Brujin圖,如下圖所示:
C. DBG簡化:去掉無法繼續連接和低覆蓋度的分支,通常有如下幾種情況:
1) 直接刪除由於測序錯誤形成的低頻K-mer;
2) 通過短序列將一些很短的重復解開,讓每個節點的出入度都為1;
3) 如果Kmer1和Kmer2有很高的相似性,將形成的泡狀結構合並;
D. 解圖獲得一致性序列:在簡化圖的基礎上,仍然會因有很多分叉位點無法確定真正的連接關系,因此接下來的每個分叉位點將序列截斷,得到contigs;
E. 構建scaffold: 將質控后的reads比對回上一步得到的congtigs,利用reads之間的連接關系和插入片段大小信息,將contigs連接成scaffolds;
F. Gap Close: 通過PE reads來填補scaffolds內部的Gap,經過Gap填補后,如果還有含N的Gap,則將該條scaffold在Gap處打斷,並去掉N,形成最后的scaftigs;
3)OLC vs DBG
由於二代測序得到的reads長度較短,包含的信息量較少,因此完成基因組拼接需要較高的覆蓋度。OLC算法適用於讀長較長的序列組裝,通過構成的OLC圖尋找Consensus sequence的過程,實際上是哈密頓通路尋找的問題,算法非常復雜。
若采用OLC算法,會大大增加拼接的復雜性以及運算量。而采用DBG算法,通過K-1的overlap關系,構建DBG圖,通過尋找歐拉路徑得到Contig序列,從算法的角度極大的簡化了組裝的難度。
2. 組裝軟件
常用短reads(二代測序)組裝軟件比較:
Jang-il Sohn, Jin-Wu Nam. The present and future of de novo whole-genome assembly
不同軟件的組裝結果差別可能很大,跟物種的基因組復雜度也有關系。所以有條件的話,最好選擇幾個軟件,選擇其中最好的結果,尤其是大基因組。最經典或使用頻率最高的莫過於Allpaths-LG和SOAPdenovo。
常用長reads(三代測序)組裝軟件:
兩款有代表性的軟件:Canu和Falcon,基於OLC算法。在不同物種上各有優勢。一般,簡單基因組優先考慮Canu,復雜基因組優先考慮Falcon(與Falcon-Unzip實現無縫對接,適用雜合度較高或遠親繁殖或多倍體物種)。
Edward S. Rice and Richard E. Green. New Approaches for Genome Assembly and Scaffolding
陸續也有很多新的三代組裝的軟件開發出來,比如國產軟件WTDBG(阮珏和李恆開發)以DBG算法為基礎開發的模糊布魯因圖算法,運行速度快,內存占用小,對於重復序列含量高和雜合度高的物種可能出現錯誤的鹼基合並。但該軟件對數據量有限制,一般用於簡單的基因組。
3. 組裝策略
以往限於技術,采用的是一代或純二代測序數據進行從頭組裝。基於二代測序的組裝面臨很多挑戰:
- 短reads遠遠小於原來的分子長度(通過測更多樣本,建庫隨機)
- 海量數據增加組裝的計算復雜性(采用kmers算法,關鍵在於定義k)
- 測序錯誤導致組裝錯誤,影響contig的長度(通過提高質控標准)
- 短reads難以區分基因組的重復序列(加大測序深度,雙末端文庫/大片段文庫)
- 測序覆蓋度不均一,影響統計檢驗和結果診斷(提高深度,保證隨機)
三代測序對基因組組裝具有天然優勢,通過技術發展和成本降低,現在已經鮮有純二代測序的組裝了(另一個原因可能是常見的簡單基因組物種已經差不多測了),一般是二三代數據結合,加上光學圖譜,遺傳圖譜或者Hi-C等技術來進行基因組的組裝,即PacBio+HiSeq +BioNano+10X+Hi-C 等多種平台完美搭配。目前各種測序技術對基因組組裝的貢獻:
如果要獲得染色體級別組裝的基因組,通常是先用Pacbio或Nanopore技術進行contig構建,然后利用10X genomics或Bionano技術將contig連接成scaffold(可選項,主要目的是糾錯和把部分contig以gap的形式進行初步連接),最后利用Hi-C染色質構象捕獲技術(准確度可以媲美早期的遺傳圖譜),將contig/scaffold連接成染色體級別。
如分別利用Illumina+10X Genomics+BioNano和Pacbio+BioNano兩種策略對人的基因組進行組裝,同時以Illumina+Fosmid-end組裝策略作為對照。三者組裝的指標見下表。
4. 組裝項目實施
1)測序前的准備
搜集物種或已發表的近緣物種相關信息,比如基因組大小,基因組重復程度,GC含量和分布,雜合度等。
Survey分析,即將測序得到的 reads 打斷成 K-mer,通過 K-mer 分析,從數學的角度評估基因組的大小,雜合以及重復等信息。並進行初步組裝,從初步組裝的 Contig 的 GC 分布圖上,判斷該物種是否有污染等信息,從而為后續組裝策略的制定提供可靠的依據。
獲取基因組大小
基因組大小的獲取關系到對以后組裝結果的大小的正確與否判斷;基因組太大(>10Gb),超出了目前denovo組裝基因組軟件的對機器內存的要求,從客觀條件上講是無法實現組裝的。查詢植物基因組大小的網站:http://data.kew.org/cvalues,查詢動物基因組大小的網站:http://www.genomesize.com/。
如果沒有搜錄,需要考慮通過流式細胞儀、基於福爾根染色、定量PCR、Kmer等方法來估計基因組大小。
雜合度估計
雜合度對基因組組裝的影響主要體現在不能合並姊妹染色體,雜合度高的區域,會把兩條姊妹染色單體都組裝出來,從而造成組裝的基因組偏大於實際的基因組大小。
一般是通過SSR在測序親本的子代中檢查SSR的多態性。雜合度如果高於0.5%,則認為組裝有一定難度。雜合度高於1%則很難組裝出來。雜和度估計一般通過kmer分析來做。降低雜合度可以通過很多代近交來實現。
雜合度高,並不是說組裝不出來,而是說,裝出來的序列不適用於后續的生物學分析。比如拷貝數、基因完整結構。
是否有遺傳圖譜可用
隨着測序對質量要求越來越高和相關技術的逐漸成熟,遺傳圖譜也快成了denovo基因組的必須組成。構建遺傳圖構建相關概念可以參考這本書(The handbook of plant genome mapping: genetic and physical mapping )
生物學問題的調研
實驗設計很關鍵。
2) 測序樣品准備
確定第一步沒問題,就意味着這個物種是可以嘗試測序的。測序樣品對一些物種也是很大問題的,某些物種取樣本身就是一個挑戰的問題。
基因組測序用的樣品最好是來自於同一個個體,這樣可以降低個體間的雜合對組裝的影響。大片段對此無要求。原則上進行 Survey 和de novo使用的 DNA 是來自一個個體的。如果DNA量不足以滿足整個de novo項目,則建議小片段文庫的DNA必須來自同一個體,三代大片段甚至超長片段的DNA文庫使用同一群體的另一個個體。
3)測序策略的選擇
根據基因組大小和具體情況選擇個大概的k值,確定用於構建contig所需的數據量以及文庫數量。對於植物基因組一般考慮的是大kmer(>31),動物的話一般在27左右,具體根據基因組情況調整。需要在短片段數據量達到20X左右的時候進行kmer分析。Kmer分析正常后,繼續加測數據以達到最后期望的數據量。
文庫構建,一般都是用不同梯度的插入片段來測序,小片段(200,500,800)和大片段(1k, 2kb 5kb 10kb 20kb 40kb)。如果是雜合度高和重復序列較多的物種,可能要采取fosmid-by-fosmid或者fosmid pooling的策略。
采用更多不同的技術組合見3.組裝策略部分。
4)質控、基因組組裝、質量評估
- 組裝流程:原始數據-數據過濾-糾錯-kmer分析-denovo組裝
- 質控常用軟件:FastQC,fastp,BFC,SOAPnuke(適合中小項目),SOAPfilter(適合大基因組)等。
- 糾錯軟件:COPE(An accurate k-mer based pair-end reads connection tool to facilitate genome assembly,doi: 10.1093/bioinformatics/bts563)
- kmer分析軟件:jellyfish,kmerfreq,kmerscan等。
- 主流組裝軟件:ALLPATHS-LG,SOAPdenovo2,ABySS,Velvet,Minia,MasuRCA,Rabbit(overlap組裝)。組裝並非一次就能得到理想的結果,會根據已有的組裝結果做分析,調整參數,處理數據,加測少量數據等策略來得到比較理想的結果。
- 補洞軟件:GapCloser,KGF等。
- 組裝評價軟件:BUSCO,Quast等。包括序列一致性(比對和覆蓋度)、序列完整性(EST數據或RNA)、准確性(全長BAC序列和scaffold是否具好的一致性)、保守性基因(保守蛋白家族集合)等方面進行評估。
5)基因組注釋
一般包括重復序列,基因結構,基因功能,非編碼RNA注釋。后續再專門總結。
6)生物學分析
主要是比較基因組分析,一般包括基因家族,系統進化,正選擇,共線性等分析。還有針對物種自身特點的個性化分析。后續專門總結。
7)更多參考內容
5. 動植物Denovo測序項目的主要分析內容
基因組Survey:
- K-mer分析以及基因組大小估算
- 雜合率估算
- 初步組裝
- GC-Depth分布分析
基因組組裝:
- 組裝
- GC-Depth分布分析
- GC含量分布分析
- 測序深度分析
- 常染色體區域覆蓋度評估(需提供BAC或Fosmid序列)
- 基因區覆蓋度評估(需提供EST或轉錄組序列)
基因組注釋:
- repeat注釋
- 基因預測
- 基因功能注釋
- ncRNA 注釋
進化分析:
- 基因聚類分析(也叫基因家族鑒定,動物TreeFam;植物OrthoMCL)
- 物種系統發育樹構建
- 物種分歧時間估算(需要標定時間信息)
- 基因組共線性分析
- 全基因組復制分析(動物WGAC;植物WGD)
參考資料:
從零開始生物信息學(5):基因組組裝
六步教會你基因組組裝!
干貨:最全面的三代基因組之組裝篇(上)
純二代測序從頭組裝基因組
三代組裝軟件簡介
生信老司機教你如何做基因組項目
基因組測序、組裝與分析總結
動植物 de novo 測序產品服務(華大)
全基因組de novo測序產品服務(諾禾)
二代測序組裝PK三代測序組裝
基因組組裝結果質量評估