1. 程式人生 > >13、基因組的拼接原理(轉載沈夢圓的博客)

13、基因組的拼接原理(轉載沈夢圓的博客)

學習 jpg 知識 general arch fly 技術分享 重復 prot

最近學習了一下基因組的拼接原理,以下是我的學習筆記和一些思考。基因組的拼接原理是高通量測序技術的基礎知識吧,我個人認為即使不做基 因組拼接工作,也可以學習一下幾個主流拼接軟件的算法和原理。我主要是學習了兩個網上教程,其教程出處為https://github.com/ TGAC/361Division/tree/master/de_novo_2016和https://github.com/ lexnederbragt/INF-BIO9120_fall2013_de_novo_assembly/tree/master/presentations。

技術分享 技術分享

拼接是個啥?

A hierarchical data structure that maps the sequence data to a putative reconstruction of the target.(Miller et al 2010,Genomics 95(6):315-327) 基因組拼接可以類比成一本書被碎紙機碎個稀巴爛,然後用膠水把他們一片片給拼回去的過程。 技術分享

技術分享

  • 拼接的過程就像一個黑箱處理過程,reads序列輸入,經過拼接黑盒,輸出就是基因組拼接好的結果。正確的拼接應該是The right motifs,the correct number of times,in correct order and position。我個人認為是盡可能得還原真實的基因組是拼接的終極目的。

  • 另外,拼接的算法分為試探型和窮舉型兩種,一般都用試探型算法,因為它更好更快更簡單(在絕大多數時候)。窮舉型算法局限性強、運行速度 慢、召回率低,並且數據類型不盡相同,因此沒有很好的模型適合全部的數據類型。

  • 在拼接之前,我們確保輸入的數據是去除接頭、汙染等的good data,並且要大概知道拼接的原理。最後完成拼接後,要檢查拼接結果的可靠性和完整性。 技術分享

測序技術

測序長度越長,覆蓋度越高,帶來的拼接結果也會越好。並且根據研究目的的不同,我們使用不同測序技術,產生不同類型的數據,得到不同的測序 信息。 技術分享

拼接算法

None of which is assessed by length stats.

  • Overlap Layout Consensus 找到重疊區域並且定義他們是key。layout有點難度。這種方法tracks每一條read。Consensus是由reads構建而成的。 技術分享

  • De Bruijn Graphs 技術分享

  • OLC VS DE bruijn 技術分享 技術分享

拼接實驗前

  • 有時候一次測序拼接結果可能很難達到預設的拼接目標,可能需要多次補測樣品來完善拼接結果。我們在測序拼接前,需要知道所研究對象的基因 組的大小、倍型、雜合性、GC含量、是否有汙染物/ 共生者、數據集的類型、是否線粒體還是葉綠體的細胞器基因組。其實這些內容在測序之前就需要考慮了,下面一些點進行進行較為詳細的介紹 :

(1)基因組大小的獲取關系到對以後組裝結果的大小的正確與否判斷;基因組太大(>10Gb),可能會超出了目前denovo組裝基因組軟件的對機器存 的要求,從客觀條件上講是無法實現組裝的。一般物種的基因組大小可以從公共數據庫查到。如果沒有搜錄,需要考慮通過實驗(流式細胞儀福爾根 染色/定量pcr/)或Kmer估計法來獲得基因組大小。

(2)雜合度對基因組組裝的影響主要體現在不能合並姊妹染色體,雜合度高的區域,會把兩條姊妹染色單體都組裝出來,從而造成組裝的基因組偏 大於實際的基因組大小。一般是通過SSR在測序親本的子代中檢查SSR的多態性。雜合度如果高於0.5%,則認為組裝有一定難度。雜合度高於1%則很難 組裝出來。雜和度估計一般通過kmer分析來做,降低雜合度可以通過很多代近交來實現。雜合度高,並不是說組裝不出來,而是說,裝出來的序列不 適用於後續的生物學分析。比如拷貝數、基因完整結構。

(3)隨著測序對質量要求越來越高和相關技術的逐漸成熟,遺傳圖譜也快成了denovo基因組的必須組成。

(4)實驗設計需要考慮的問題:1.明確我們的生物學問題;2.設計數據處理方案;3.設置實驗條件和生物/技術重復數;4.選擇測序平臺和覆蓋度。

技術分享 技術分享 技術分享 技術分享 技術分享

為啥拼接挺難的

  • 重復序列
  • 二倍體
  • 多倍性
  • 可供選擇的軟件多 技術分享

兩個拼接軟件

  • A modern assembler-SOAPdenovo2 技術分享
  • Trinity運行的原理和過程 1 Trinity 如何運作 a. 序列延伸 (inchworm) ——蟲子 將 reads切為 k-mers (k bp長度的短片段) 拆分K-mer的目的:節省內存,降低測序錯誤對拼接的影響;利用Overlap關系對k-mers進行延伸 ( 貪婪算法);輸出所有的序列 (“ contigs”)。 b. 構建 de Bruijn graph (chrysalis)—— 成蛹 聚類所有相似區域大於1kbp的 contigs;構圖 (區分不同的 “components”); 將reads比對回 components,進行驗證 c. 解圖,列舉轉錄本 (butterfly)——化蝶 拆分graph 為線性序列;使用reads以及 pairs關系消除錯誤序列。 2 組裝質量評估與去冗余 d. 組裝質量: 組裝完整性、組裝準確性、後續定量準確性、組裝冗余度 N50長度,可以初步評估組裝質量;但並非越長越好,應該參照相關的研究(同物種或近緣種);通過統計Unigene對近緣種編碼基因的覆蓋度分, 也可以從整體評估組裝質量。 3 註釋與其他

組裝評估

(1) kmer spectra,可用軟件KAT、CEGMA; 技術分享 (2)使用生物學知識去進行評估驗證

  • Direct experimental evidence: the reads、Genome size、ploidy、GC content、Symbionts、Plastids、ESTs、cDNAs、peptides、genome walking
  • Indirect experimental evidence: genomes in general(Genes! (They have structure,Repeats),Chromosome macrostructure ,(circular?, number, telomeres, …))、other species(Close relatives: proteins, transcripts, genomes; Distant relatives: single-copy genes,?phylogeny, HGT)

誤差和質控

樣本的準備和建庫:樣品未純化,PCR偏差(沒有化學反應是perfect、complete的) 技術分享 技術分享 技術分享

N50並不是那麽可靠、敏感,我們要註意。 技術分享 技術分享

其他參考資料

https://www.cbcb.umd.edu/research/assembly_primer

13、基因組的拼接原理(轉載沈夢圓的博客)