經典:基因組測序數據從頭拼接或組裝算法的原理


 


基因組測序數據的拼接/組裝 (圖片來源:google)  
 

每一個物種的參考基因組序列(reference genome)的產生都要先通過測序的方法,獲得基因組的測序讀段(reads),然后再進行從頭拼接或組裝(英文名稱為do novo genome assembly),最后還原測序物種的各條染色體的序列,即ATGC四種鹼基的排列順序。

 

之所以要進行基因組拼接,是因為現在的測序技術還只能測較短的序列,無法直接獲取一整條染色體的序列。如一代測序(Sanger測序)一般可測1kb左右的序列;二代測序(next-generation sequencing),一般可測50~500bp;三代測序雖然可測100kb甚至更長的序列,但現在三代測序技術還不是很成熟,還有較高的測序錯誤率。(歡迎關注微信公眾號:AIPuFuBio,和使用生物信息學平台AIPuFu:www.aipufu.com)

 

基因組測序數據的從頭組裝過程,可簡單描述為:reads---->contig---->scaffold---->chromosome,具體如下所示:


基因組序列從頭組裝示意圖(圖片來源:Guo et al. Genomics, 2017)。
 
首先基因組測序產生reads,然后對reads進行組裝產生長片段Contigs,再確定Contig的方向和順序,組裝產生更長的片段Scaffolds,最后再組裝連接Scaffold得到完整的染色體序列。

 

接下來,給大家依次介紹一下上圖從頭拼接中涉及到的兩個概念:contig和scaffold

Contig是由多個reads通過組裝而形成的長片段。由於測序讀段較短、基因組序列通常含有較多重復序列、而且還有測序錯誤等原因,除了簡單的基因組序列外,大部分物種的基因組序列組裝都會先產生很多contig,無法一次獲得完整的染色體序列。

Scaffold為多條contig序列連接形成更長片段,這些contig方向和順序已經確定,且contig間未知序列(一般用NNNN表示)的長度也獲知。

 

Scaffold的獲得一般主要通過雙端測序(如paired-end sequecing或mate-pair sequencing)來確定contig的順序和方向,以及contig之間的間隔距離,具體如下示意圖所示。


由reads組裝產生contig,再由contig連接形成scaffold的示意圖 (圖片來源:google)  

 

基因組測序數據的從頭組裝的核心算法主要可以分為以下幾大類:

1、基於貪心算法(greedy-extention);

2、基於Overlap-Layout-Consensus(OLC);

3、基於de Bruijn Graph;

4、以上兩種或多種算法的組合;

5、其他類型。

 

具體如下圖所示:


基因組從頭組裝算法分類及代表性軟件發表的時間(圖片來源:Zhanget al. PlosOne, 2011)

其中最經典的兩類為:

1)Overlap-Layout-Consensus(OLC)算法,基於OLC算法的組裝軟件主要是針對長測序讀段(如Sanger測序、454測序等)設計的;

2)de Bruijn Graph算法,基於de Bruijn Graph的組裝軟件則主要是針對二代測序產生的短讀段數據設計。

 

具體如下所示:

1)Overlap-Layout-Consensus(OLC)算法


Overlap-Layout-Consensus(OLC)算法的示意圖(圖片來源:Ayling et al. Briefings in Bioinformatics, 2019)

 

2)de Bruijn Graph算法


de Bruijn Graph算法的示意圖(圖片來源:Ayling et al. Briefings in Bioinformatics, 2019)

 

現在主流的是二代測序技術,因此再給大家詳細介紹一下專門針對二代測序數據開發的基於de Bruijn Graph的從頭拼接方法。

 

其中一個非常著名的軟件就是Velvet,是基於de Bruijn Graph設計的經典代表,其算法示意圖如下:


Velvet從頭組裝軟件的算法設計示意圖( 圖片來源:Zerbinoet al. 2008, Genome Research)。其中紅色鹼基為測序錯誤或SNP位點。

 

Velvet的組裝原理,主要可分為這幾個步驟:

1)首先把所有測序讀段(reads)都分割為更小的片段k-mer;


Reads產生k-mer的過程示意圖。這里k為7,假如read的長度為n,則總共可產生n-1個k-mer。

2)把每個k-mer作為一個節點,然后判斷k-mer之間是否有k-1鹼基的重疊,如果有則作為兩個不同的節點連接起來。依次這樣連接所有可連接的k-mer就形成了Velvet從頭組裝軟件算法設計示意圖中第2步的de Bruijn Graph;

3)依次合並相鄰的k-mer,因為相鄰的k-mer有k-1個鹼基的重疊,就可進一步簡化de Bruijn Graph形成Velvet從頭組裝軟件算法設計示意圖中第3步的簡化后的圖;

4)使用一系列算法消除由測序錯誤而形成的tips(具體如Velvet從頭組裝軟件的算法設計示意圖中所示),並合並bubbles(兩條或多條路徑序列,一般由SNP造成,如Velvet從頭組裝軟件的算法設計示意圖);

5)最后拼接得到Contig序列。

 

值得注意的是,Velvet從頭組裝軟件算法設計示意圖中最后一步拼接產生了回文序列,主要是由於原始序列中含有回文,如果k取為偶數(圖中k=4)就容易在組裝中形成這種現象。

為了有效的避免拼接中產生回文序列,一般k取為奇數。

 

那么基於基因組測序數據的從頭拼接軟件,那些具有較好的性能呢?


不同從頭組裝軟件在拼接C.elegans、Yeast、E.coli、Swinepox基因組時的准確性和覆蓋度比較( 圖片來源:Zhanget al. PlosOne, 2011)

 

從上圖中可以看出,Velvet和SOAPdenovo在拼接C.elegans、Yeast、E.coli、Swinepox的基因組序列時,相對於其他軟件,組裝結果更准確(A:Percentage of correctly mapped contigs)且拼接出來的序列能更完整的覆蓋原基因組序列(B:Genome Coverage)。

 

大部分處理測序數據的軟件都是由國外開發的,其中這里提到的SOAPdenovo為華大基因開發的從頭拼接軟件。

 

​今天就給大家介紹到這里。更多精彩,可見大型免費綜合生物信息學資源和工具平台AIPuFu:www.aipufu.com,關注微信公眾號:AIPuFuBio。

 

希望今天的內容對大家有用,會持續更新經典內容,歡迎留言~~!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM