Iterative error correction of long sequencing reads maximizes accuracy and improves contig assembly

長序列讀取的迭代誤差校正可以最大限度地提高準確性,並改進疊架裝配

抽象

新一代測序儀(例如Illumina)現在可以以高通量產生高達300 bp的讀數,這對於基因組組裝具有吸引力。基因組組裝的第一步是計算校正序列錯誤。但是,糾正這些較長讀段中的所有錯誤都具有挑戰性。在這裏,我們顯示了校正後殘留錯誤的讀數通常與重複序列重疊,而在其他重複序列中會出現短錯誤的k -mers。我們開發了一個迭代錯誤校正管道,該迭代錯誤校正管道以增加的k- mer大小在多輪基於k -mer的校正中運行先前發佈的String Graph Assembler(SGA),然後進行最後一輪基於重疊的校正。通過結合小和大k的優勢-mers,此方法可糾正重複中的更多錯誤,並最大程度減少錯誤讀取的總量。我們顯示更高的讀取精度將重疊羣長度增加了兩到三倍。我們提供了SGA迭代糾正錯誤(https://github.com/hillerlab/IterativeErrorCorrection/),該錯誤通過使用SGA中的模塊來實現迭代錯誤糾正。

介紹

在過去十年中,高通量測序技術的使用已大大增加。可以使用不同的測序平臺,例如Illumina,PacBio,454,IonTorrent和Nanopore。迄今爲止,Illumina使用最廣泛。儘管過去限於相對較短的讀取長度,但在Illumina MiSeq機器上單次運行現在可以產生15千兆字節(GB)的配對末端讀取,長達300 bp。最新的Illumina HiSeq 2500機器甚至可以產生300 GB的配對末端250 bp讀數。這種長讀取的高通量對於基因組組裝具有吸引力。儘管Illumina數據已經包含了相對較少的錯誤,錯誤率不到1%[ 1 ],但讀取完全沒有錯誤的可能性很低,尤其是對於250或300 bp較長的讀取。

對於基因組組裝,期望使用儘可能準確的讀數。因此,校正序列錯誤是必不可少的預處理步驟。對於短讀取測序數據的糾錯許多工具存在:BFC [ 2 ],祝福[ 3 ],珊瑚[ 4 ],ECHO [ 5 ],歐拉[ 67 ],菲奧娜[ 8 ],錘[ 9 ],HITEC [ 10 ],Karect [ 11 ],打火機[ 12 ],Musket [ 13 ],MyHybrid [ 14 ],Quake [ 15 ],RACER [ 16 ],爬行動物[ 17 ],SGA [18 ]和SHREC [ 19 ]等。所有方法都依賴於很少發生的錯誤以及足夠高的測序覆蓋率,因此可以使用覆蓋相同基因組基因座的其他讀數來糾正錯誤。這些工具中的大多數根據它們如何處理測序讀數的校正可分爲兩類:基於k -mer的校正(主要處理鹼基取代)基於重疊的校正(也可以校正插入和缺失)。Laehnemann 等人給出了每種方法和現有工具的詳細概述。[ 1 ]。

基於k聚體的校正背後的想法是,測序錯誤將導致在基因組中不出現讀段(k mer)的k bp長的子串,因此輸入數據的計數較低。可以檢測到這種不常見的k- mer,並且如果將錯誤的鹼基替換爲另一個鹼基會導致k- mer發生的頻率更高(固體k- mer),則可以糾正錯誤的鹼基。基於K -mer的校正取決於k- mer大小的參數選擇以及偶發和實心k的計數閾值-mers。基於重疊的校正背後的想法是建立可能來自相同基因組基因座的相似讀段的多序列比對。然後,將測序錯誤檢測爲比對列中的罕見差異,並用比對列共識進行校正。基於重疊的校正取決於用於最小讀取相似性的參數,用於罕見差異的計數閾值以及支持共有基數的最小讀取數量。

以前的研究已經解決的一些誤差校正工具[性能2021 ]。大多數工具在測試的數據集上表現良好,幾乎所有的讀數都可以針對較小的基因組進行校正[ 20 ]。但是,對於複雜的,重複序列豐富的基因組,例如人類基因組,校正後仍有相當一部分讀數有錯誤。例如,在使用性能最佳的工具進行校正後,人類100 bp HiSeq讀數中仍有15-20%的錯誤([ 20 ]中的表2 )。對於較長的讀取,此性能甚至更差。從小大腸桿菌基因組讀取的250 bp MiSeq讀數中仍有一半以上存在錯誤([ 20 ]中的表3 )。

測序錯誤可能仍未糾正的原因可能有多種。首先,具有許多錯誤的讀數更難於校正,因爲它們與來自同一基因座的其他讀數不同。然而,由於它們中存在許多不常見的k聚體,因此此類讀數易於丟棄。其次,由於來自相同基因座的其他讀數中缺乏固體k聚體,因此可能無法校正來自具有低測序覆蓋率的基因組基因座的讀數。第三,如果測序錯誤導致在基因組其他地方發現k- mer,這種錯誤經常發生在重複區域,則測序錯誤可能仍然未被發現。雖然前兩種情況很難通過計算解決,但對於更長的250或300 bp讀取,可以改善重複中的錯誤校正。

在這裏,我們顯示了許多在標準校正重疊重疊後具有未校正序列錯誤的讀數。在這些讀物中,短錯誤的k聚體在另一個重複拷貝中相同地出現,因此被錯誤地認爲是正確的。爲了改善長時間Illumina讀取的錯誤校正,我們使用了String Graph Assembler中的模塊,並開發了迭代錯誤校正管道,該管道運行多輪基於k -mer的校正,並增加k- mer的大小,然後進行最後一輪重疊基於校正。我們表明,這種迭代策略可以有效地糾正重複中的錯誤並減少錯誤讀取的總量。我們進一步表明,這種較高的讀取精度可將重疊羣的裝配轉化爲兩倍或三倍。

方法

模擬數據集

爲了研究爲什麼在標準錯誤校正後仍然存在測序錯誤並測試迭代錯誤校正是否可以提高讀取精度,我們首先模擬了已知基因組的讀取。模擬數據的優勢在於,在引入錯誤之前,我們知道每次採樣讀取的真實順序。這使我們能夠精確地測量每一輪糾錯之後的讀取是否無錯誤。

我們的分析是基於人的11號染色體(135 Mb),卡洛斯Anolis carolinensis 4號染色體(156 Mb)和雞14號染色體(15 Mb)。我們首先用隨機序列填充裝配缺口和不明確的鹼基(N)。然後,我們通過在已知的速率爲每一個物種導入雜[創建第二單倍型的單核苷酸多態性(SNP)爲蜥蜴率0.001人類,0.003和0.0006雞根據[ 22 ]; 默認插入率0.0001; 沒有結構上的變化]使用了木樁[ 23 ]。最後,我們使用ART [ 24]和MiSeq 2×300 bp的特定錯誤譜,以模擬三個染色體的讀數,每個覆蓋率均爲30X(參數:每個單倍型的覆蓋率爲15X,片段大小爲550±55 bp)。所有模擬數據集和錯誤配置文件可從http://bds.mpi-cbg.de/hillerlab/IterativeErrorCorrection/獲得

真實數據

爲了在真實數據集上測試我們的糾錯策略,我們爲水稻菌株IR64,DJ123和Nipponbare(分別爲SRX180591,SRX186093和SRX179262)下載了2×250 bp的MiSeq讀數;分別爲http://schatzlab.cshl.edu/data/rice /)。我們還下載了人類2×100 bp的HiSeq讀取數據集(庫1來自http://gage.cbcb.umd.edu/data/)。爲了與我們的模擬一致,我們將所有數據集下采樣到30倍覆蓋率。

重複讀序列重疊

我們從UCSC基因組瀏覽器“ rmsk”表中獲得了所有三個染色體的散佈和串聯重複序列的座標[ 25 ]。下載了所有與重複一致性相差最多10%的重複。這套樣本覆蓋了9.5%的人類11號染色體,2.3%的蜥蜴4號染色體和1%的雞14號染色體。爲完整起見,我們還分析了所有重複的重疊,無論其發散率如何(補充表1)。

糾錯策略

在我們的迭代糾錯流水線中,在後續的基於k -mer的校正中,隨着k- mer大小的增加,對鹼基替換進行校正。爲了更正剩餘的小插入和刪除,我們進行了最後一輪基於重疊的更正。

我們使用String Graph Assembler [ 18 ] 測試了我們的策略,因爲(i)SGA代碼是開源的;(ii)既實施了基於k -mer的校正方法又實施了基於重疊的校正方法;(iii)SGA是模塊化的,允許我們僅運行基因組組裝工作流程中的選定步驟;(iv)SGA可以讀取不同長度的數據,並使用有效的數據結構來處理大量數據[ 26 ];最重要的是,(v)它是複雜的,富含重複序列的基因組的最佳校正方法之一[ 21 ]。

SGA糾錯模塊不適用於較大的k- mer大小,在某些基因座上,只有少數讀取可能重疊k bp或更多。爲了避免在這些區域中進行錯誤校正,例如,通過將一個頻率不高的k - mer 錯誤地校正爲頻率稍高的k- mer,我們在SGA中添加了以下參數:

基於K -mer的校正:

  • – count-offset = N(默認值1):校正k- mer時,要求新k- mer的計數至少比舊k- mer 的計數高N。

  • 基於重疊的校正:

  • – base-threshold = N(默認值2):嘗試糾正讀取中的鹼基,該鹼基在多序列比對的特定列中少於N次。

  • – min-count-max-base = N(默認值爲4):校正基數時,要求新的共識基數至少爲N。

 

我們使用了以下參數:–count-offset 2,–min-overlap 40,–error-rate 0.01,否則爲默認值。

測量模擬數據集的讀取準確性

因爲我們旨在最大程度地提高無錯誤讀取的數量,所以我們區分了“正確”讀取和“錯誤”讀取。如果讀數的序列與從中讀取單倍體的基因組基因座相同,則認爲該讀數正確。相反,如果讀取具有至少一個不匹配或插入/刪除,則認爲該讀取是錯誤的。如果一個讀段的序列與替代單倍型相同,我們也認爲該讀段是錯誤的,這可能是由於將SNP誤認爲一個錯誤並將其糾正爲其他等位基因而發生的。因此,如果在二倍體基因組中的任何位置均發現相同的讀數,則我們的方法比將讀數視爲正確更爲嚴格。除了計算多少個正確的讀數外,我們還通過將一個讀數的序列與正確的讀數的序列比對來確定(i)測序錯誤的總數,

測量真實數據集的讀取準確性

我們通過計算精確映射到參考基因組的讀取數來確定無錯誤的讀取數。具體來說,我們使用默認參數運行bowtie2 [ 27 ]並計算了標誌“ MD:Z:”的出現次數,其後是生成的sam文件中的確切讀取長度。應該注意的是,水稻參考基因組具有裝配缺口,歧義鹼基(N's)和僅一種單倍型,這意味着即使沒有錯誤,也不是所有讀物都能準確定位。

基因組組裝

我們使用SGA將經過糾錯的讀段組裝到重疊羣中。總共有六套重疊羣,分別用於(i)單個基於k -mer的最佳校正後的讀數,以及(ii)使用我們的迭代策略校正後的讀數。使用“ sga過濾器”(參數:-kmer-threshold 2,-均聚物檢查,-low-complexity-check;否則爲默認值)過濾掉了潛在的錯誤讀數,並使用“ sga overlay”生成了基於重疊的字符串圖(參數:–min-overlap 75;否則默認設置)。重疊羣使用“ sga assemble”進行組裝,並且針對每個重疊羣優化了字符串圖中序列之間的最小重疊(參數:–min-overlap從75到200,–resolve-small 10;否則爲默認值)。

通過使用參數-tileSize = 18 -minMatch = 4 -maxIntron = 10的Blat,通過測試多少個≥400bp的重疊羣重疊到一個連續的基因組區域,我們評估了組裝質量。然後,我們計算每個重疊羣,其中至少98%的序列與基因組具有至少98%的同一性,並且基因組中的比對跨度最大爲重疊羣長度的102%。人工檢查了幾個不符合這些標準的重疊羣,發現它們很短,<1000 bp,與其他染色體單倍型更好地匹配,而後者未用於Blat。爲了評估完整基因的覆蓋範圍,我們使用了具有脊椎動物基因組的BUSCO [ 28 ]在基因組模式下。

使用其他方法進行迭代錯誤校正

對於RACER,我們將基因組大小設置爲人類11號染色體的大小(135006516bp)。以-K kmer_length基因組大小(-K 32 135006516)運行打火機。對於BFC和Musket,我們用-k參數指定了k -mer大小。所有其他參數均爲​​默認值。

結果

最未經校正的300 bp讀數重疊重複

我們首先使用模擬讀取來研究爲什麼糾錯不能糾正所有錯誤。在進行任何更正之前,所有讀取中的87%是錯誤的。經過k  = 40的校正後,變成正確重疊的人類,蜥蜴和雞的讀數分別有12.9、9.6和5%重複,而仍然包含錯誤的讀數有64.8、24.2和10.5%重疊了,即2至5。折高。

這些數字表明,重複區域中的錯誤特別成問題,並且經常無法糾正。因爲重複序列在基因組中具有許多相似的拷貝,所以重複重疊的讀段中的測序錯誤更有可能導致錯誤的k聚體在另一重複序列中相同地發生。較小k的K- mer校正將不會檢測到這種錯誤的k- mer很少(不是穩定的),因爲在來自其他重複副本的讀取中發現了該錯誤。因此,該錯誤將不會得到糾正。圖1顯示了來自我們的模擬數據集的示例。

圖1
 

重複區域中測序錯誤的示例,在用小k- mer 校正過程中仍未發現。包含測序錯誤的40個單體(箭頭)與SINE重複序列重疊,並且在人類11號染色體的其他位置相同。因此,該k單體被認爲是實體的,並且在相應的讀數中未糾正錯誤。但是,將k增加到50或更大將不會識別該區域。因此,更長的序列背景(300 bp讀取提供)允許在高度相似的重複序列中檢測和糾正此類錯誤。

 
 

 

迭代錯誤校正可糾正重複重疊的讀取

基於圖1中的示例,我們認爲具有較大k- mer大小的其他校正回合可以校正其他讀數。爲了測試這一點,我們對k  = 40校正後的模擬數據集進行了另一輪校正,其中k增加到讀取長度的 三分之二(k = 75/100/125/150/175/200)並進行了測量錯誤讀取的百分比。一致地,對於所有三個物種,額外的校正回合大大減少了錯誤讀取的數量(圖2A中的行補充表2)。不管我們是否使用k,都沒有單個校正輪可以達到迭代校正的精度。改變k s 的基於mer的校正或基於重疊的校正(圖2A中的叉號)。例如,雖然3.4%的人類讀數在一次最佳k  = 75校正後有錯誤,但是隻有0.82%的人在反覆校正後直到k  = 200 纔有錯誤。與觀察到的錯誤讀取百分比的減少相一致,隨後進行了多次校正還穩定地減少了錯誤的總數,並增加了被10、20或30個正確讀段覆蓋的基因組的百分比(補充表34)。

圖2

迭代錯誤校正比任何單個校正回合校正更多的錯誤,尤其是校正重複重疊的讀取。(A)校正迭代回合(行)中的錯誤時,錯誤讀取的百分比會減少。不管使用哪種k- mer大小,最終達到的百分比都顯着低於任何單個校正輪(十字)。最終基於重疊的校正顯示在右側。人類,蜥蜴和雞的數據是模擬的300 bp MiSeq讀數。(B)Y軸顯示在重複重複的k聚體校正的每次迭代之後新校正的讀數的百分比。隨後的幾輪比第一個k  = 40輪糾正更多的重複重疊讀取。(C)當校正迭代回合中的錯誤時,來自三個不完全映射到參考基因組的水稻亞種的250 bp MiSeq讀數的百分比降低。

 
 

 

接下來,我們探討了迭代糾錯是否有助於糾正重複重疊讀取中的錯誤。在每個校正回合之後,我們提取在前一回閤中錯誤的新校正的讀段,並檢查重複序列是否重疊。我們發現,與第一個k  = 40的校正回合相比,每個後續回合中重複重疊讀取的百分比都顯着更高(圖2B補充表1)。對於重複序列豐富的人類基因組,在k  = 125校正後,該百分比達到93%。綜上所述,這些結果表明,與任何單個校正回合相比,迭代錯誤校正可以校正的讀數要多得多,並且後續回合的k值更高。 越來越多地糾正重複區域中的錯誤。

最後一輪基於重疊的校正可糾正插入和刪除錯誤

儘管基於迭代k聚體的校正使替換錯誤最小化,但僅靠它本身並不能校正由於小的插入和刪除而導致的錯誤。實際上,錯誤的人,蜥蜴和雞的讀數中有20%,16%和19%在 校正k = 200 後包含插入和刪除錯誤。因此,我們進行了最後一輪基於重疊的校正,將帶有插入和缺失的錯誤讀段的百分比降低到9、7和8%。在糾錯流水線的這一最後步驟之後,人類,蜥蜴和小雞的讀數仍然只有0.71、0.93和0.81%仍然是錯誤的(圖2A中最右邊的數據點;補充表2)。

迭代錯誤校正可最大程度地減少實際250 bp讀取中的錯誤

爲了測試迭代糾錯是否還能提高實際測序讀取中的讀取準確性,我們將此策略應用於來自三個不同水稻亞種的2×250 bp MiSeq數據。每次迭代後,我們確定準確映射到參考基因組的讀段的百分比。如在所示圖2C,迭代糾錯不斷改善準確映射的百分比讀取(補充表2)。我們得出結論,使用多個基於k -mer的迭代糾錯校正和基於最終重疊的糾錯可將模擬數據和真實數據中錯誤讀取的總數最小化。

減少錯誤讀取的數量,大大改善了重疊羣的裝配

接下來,我們測試了錯誤讀取次數的減少是否可以轉化爲人類,蜥蜴和雞數據的重疊羣組裝。我們應用SGA來組裝重疊羣,它們來自(i)單一基於k -mer的最佳校正( 人類和蜥蜴的k = 75; 雞的k = 40)之後的讀數,以及(ii)我們的迭代錯誤校正策略後的讀數。圖3顯示了相應的NG50值,其中各個染色體的一半由至少那個長度的重疊羣組成。人體的NG50值提高2.1倍,蜥蜴提高2.2倍,雞肉提高2.9倍。因此,錯誤讀取數量的減少,即使是人類的錯誤讀取數量的減少,即使從3.4%減少到0.7%,也可以導致更長的重疊羣。

圖3

重疊錯誤校正後,重疊羣大小可提高2到3倍。NG(x)%圖顯示重疊羣大小(Y軸),其中染色體的x%由至少那個大小的重疊羣組成。迭代誤差校正後和單次最佳校正回合後,由模擬讀段組裝的重疊羣分別用實線和虛線表示。垂直虛線表示NG50。相應的數字在旁邊註明。

 
 

 

爲了評估組裝的準確性並排除更長的重疊羣是由於錯誤組裝導致連接不相鄰基因組區域的原因,我們將重疊羣與我們從中讀取原始讀數的基因組進行了比對。我們發現,幾乎所有由反覆校正的讀段組裝而成的重疊羣都映射到單個連續的基因組區域(人爲99.71%,蜥蜴爲99.89%,雞爲100%)。我們還使用了BUSCO [ 28]通過計算每個裝配中發現的完整單拷貝基因的數量來評估裝配正確性。BUSCO從經過反覆校正的讀數中發現了更完整的單拷貝基因(人爲17對15個基因,蜥蜴爲67對44個基因,雞爲27對23個)。總之,這表明重疊羣長度的增加不是由於組裝錯誤而引起的,並且組裝精度很高。

更少的校正回合減少了運行時間,同時保留了校正精度

雖然迭代錯誤校正可最大程度地減少錯誤讀取的次數並顯着改善重疊羣的組裝,但顯然需要額外的運行時間。與最佳單個k- mer校正的運行時間相比,進行了7次迭代k- mer校正,最後一次重疊校正的運行時間是其6-8倍(補充表5)。與k- mer校正相比,重疊校正可計算讀取的多個序列比對,佔總運行時間的40%,並且需要1.5倍的內存。

出於實際考慮,我們尋求了在保持校正性能的同時減少運行時間的方法。我們具有較大步長所測試更少校正輪ķ三輪與:ķ  =的40/125/200代替七輪與ķ  = 40/75/100/125/150/175/200,既接着是最終的重疊基於校正的回合。我們發現,與最佳單個k- mer校正(補充表5)相比,更少的回合運行約5倍的時間,而人,蜥蜴和雞的錯誤讀取百分比僅增加0.18%,0.27%和0.04%(圖4補充)表2)。這表明最終獲得的讀取精度非常相似,無論k -mer步長。省略計算上昂貴的重疊校正步驟,可進一步將運行時間減少到1.8、1.9和3.4倍,而對人類,蜥蜴和雞肉的錯誤讀取增加0.31、0.42和0.16%。

圖4

較少的迭代校正回合保留校正精度。基於k- mer的校正的三輪而不是七輪,隨後都是基於重疊的校正,可實現相似百分比的錯誤讀取。

 
 

 

如果測序覆蓋率高,大於讀取長度三分之二的K -mers可以糾正錯誤

原則上,測序覆蓋率越高,可用於糾錯的k- mer大小越大。爲了探究是否確實如此,除了上述30X數據集外,我們還從人類模擬基因組中進行了60X和100X覆蓋率的讀取。像以前一樣進行迭代錯誤校正,增加了k  = 225和k  = 250個校正回合。在每一輪之後,我們測量正確讀取與錯誤讀取的比率;比率> 1表示比錯誤校正更多的校正。

如圖圖5A中,校正與ķ  = 225和ķ  = 250進一步減少錯誤的百分比在60X和100X的數據集讀取(虛線和點線),但不是在30X數據組(實線;還參見補充表2)。與該結果一致,我們始終觀察到60X和100X數據集中的校正比錯誤校正要多(圖5B)。事實上,不是一個單一的鹼是誤糾正爲ķ  在100X數據集≤150。相反,觀察到更多的錯誤校正比校正ķ  在30X數據集≥225。

圖5

如果測序覆蓋率高,大於讀取長度三分之二的K -mers可以糾正錯誤。(A)隨着k  = 225和k  = 250校正,人類30X數據集(實線)中錯誤讀取的百分比再次開始增加。相反,百分比在60X(虛線)和100X(虛線)數據集中不斷下降。(B)與A一致,我們開始觀察到比 人類30X數據集(比率低於1)中的k  = 225和k = 250 校正後的校正更多的錯誤校正,而不是60X和100X數據集(比率> 1,與k- mer大小無關。

 
 

 

由於具有較高k- mer大小的30X數據集中的錯誤校正是意外的和不希望發生的,因此我們探究了可能的原因,發現它們幾乎專門代表“單倍型轉化”。k  = 250校正後,錯誤校正的讀數的百分之九十六與相應的替代單倍型完美對齊,也就是說,不是從中產生讀數的單倍型。如果兩個單倍型的測序覆蓋率低且不均勻,則可能會發生這些單倍型轉換,從而將SNP錯誤地視爲錯誤。應該注意的是,即使去除雜合性可能對基因組組裝是有利的,我們也將單倍型轉化嚴格地視爲錯誤校正。合計,增加k 讀取長度的三分之二以上對於具有高測序覆蓋率的數據集是有益的,即使錯誤讀取的進一步減少是微不足道的。

120 bp讀取的迭代錯誤校正可提高讀取精度,但不能始終如一地重疊羣

因爲許多基因組裝配都是基於較短的讀取數據,所以我們還模擬了來自所有三個染色體的2×120 bp讀數,每個覆蓋率均爲30X,並使用真實的人類2×100 bp測序數據來測試迭代錯誤校正。的確,對於300 bp的讀取,迭代錯誤糾正始終減少了錯誤讀取的百分比(補充圖12)。但是,與300 bp讀數相反,僅對雞,而不是對人和蜥蜴,迭代校正120 bp讀數可以改善重疊羣組裝(補充圖1B)。)。這可能有兩個原因。首先,較短的120 bp讀跨較少的重複。例如,在30X覆蓋率的情況下,只有0.6%的人類Alu重複序列被至少1個120 bp讀段覆蓋,而14.8%的人類Alu重複序列被至少1個300 bp讀段覆蓋。其次,讀取的長度限制了組裝過程中讀取之間的重疊長度。原則上,較長的讀取重疊可幫助解決重複引起的裝配歧義。我們比較了導致NG50最佳組裝的最小精確讀取重疊。對於單次校正和迭代校正的120 bp讀取,以最小的80 bp讀取重疊實現了最佳的人和蜥蜴裝配。相反,較大的最小讀取重疊會導致迭代校正的300 bp讀取的最佳組合(單個校正與迭代校正:對於人類,最小重疊爲80對100 bp,對於蜥蜴則爲100對130 bp)。總體而言,迭代糾錯僅在更長的序列讀取時才能持續改善重疊羣裝配。

其他方法也可以從迭代錯誤校正中受益

爲了測試其他錯誤糾正工具是否以迭代方式糾正更多錯誤,我們將步槍[ 13 ]和BFC [ 2 ]應用於人類30X數據集。如圖6所示,隨後的校正回合減少了這兩種方法的錯誤讀取百分比。儘管Musket和BFC的速度比SGA快(補充表5),但它們無法達到SGA的準確性。我們還測試了其他兩種無法迭代運行的方法,因爲它們的最大k- mer大小限制爲小k s(Lighter [ 12 ]),或者因爲k是根據基因組大小自動確定的(RACER [ 16])])。我們發現,通過Musket或SGA進行迭代校正,這兩種方法的性能均優於(圖6)。這些結果表明,迭代錯誤校正並非特定於SGA,而是許多錯誤校正工具的通用策略。

圖6

如果將其他糾錯方法與迭代糾錯策略一起使用,則錯誤讀取的百分比也會降低。使用Musket [ 13 ]和k  = 40/125/200進行三輪校正,使用BFC [ 2 ]和k  = 40/63進行兩次校正輪也可以減少人類30X數據集中錯誤的300 bp讀數的百分比。SGA曲線從圖4中複製出來以進行比較。對於BFC,我們只進行了兩輪操作,因爲BFC要求k最多爲63。請注意,對於Musket,錯誤讀取的百分比從2.5%(k  = 125)增加到3%(k  = 200)。爲了進行比較,我們還測試了RACER [ 16]和打火機[ 12 ]。我們只運行Lighter一次,因爲它要求k最多爲32。在輸入基因組大小(135006516bp)的情況下,RACER只運行一次是因爲它自動確定最佳k。由於RACER不會輸出k的選定值,因此我們在k  = 32時任意繪製性能(錯誤讀取的13.18%)。

 
 

 

討論區

隨着測序技術的發展,更長的讀數可能將成爲基因組組裝項目的首選。下一代測序數據中的基因組組裝需要對短插入文庫進行測序以構建重疊羣。過去,短插入文庫通常使用Illumina HiSeq測序儀的2×100 bp讀數進行測序。現在,Illumina技術可對2×250甚至2×300 bp的讀序列進行測序。給定一個平均插入片段大小約爲450 bp的短插入文庫,這些讀段能夠跨越某些重複類別。例如,較長的讀段將跨越最多300 bp的長短散佈元件,占人類基因組的15%,由於存在180萬個拷貝,因此代表了組裝方面的重大挑戰[ 29]。但是,較長的Illumina讀數具有精度較低的缺點。即使測序錯誤率相同,讀取的時間也越長,則讀取數據完全無錯誤的可能性就越低。鑑於無錯誤的讀取數據對於基因組組裝是理想的,因此計算錯誤校正至關重要。因此,我們開發了一種改進錯誤校正的策略,該策略可最大程度地提高長測序讀段(尤其是重複重疊讀段)的準確性。

現有的糾錯工具通常使用小於30 bp 的單個且相對較小的k- mer大小在單個回合中糾正儘可能多的錯誤[ 1 ]。一些工具確定最佳的k- mer大小,因爲它會導致最多的校正,而其他工具則讓用戶選擇k。但是,選擇單個固定的k- mer大小有一個固有的權衡:雖然小k可以進行更多的校正,因爲讀取僅需重疊k bp,如果錯誤將導致檢測錯誤。k在基因組的其他地方發現[ 15 ](另請參見圖1))。另一方面,較大的k可以糾正重複序列中的錯誤(圖1),但不能檢測低覆蓋率區域中的錯誤,也不能糾正具有很多錯誤的讀取錯誤。在這裏,我們表明迭代糾錯結合了小k- mer 和大k- mers 的優點,可以最大程度地減少錯誤讀取的次數(圖2)。

儘管迭代錯誤校正需要更長的運行時間,但到目前爲止,在基因組組裝,後續的基因組註釋以及最終對新基因組的分析上花費了更多的時間。重要的是,註釋和分析關鍵取決於基因組裝配的質量。如圖3所示,提高長Illumina讀取的準確性有助於獲得更好的組裝。因此,讀取精度應該是主要考慮因素。迭代錯誤校正可能以兩種方式幫助基因組組裝。首先,儘管像SGA這樣的彙編程序會嘗試丟棄錯誤的讀取,但是其中一些讀取將逃避過濾,並將用於彙編。事實上,SGA沒有丟棄34%(155 812 456 827)的單個最佳後的誤人類讀取ķ = 75次校正,這些未丟棄讀段中有62%(155 812條中的97 006條)重疊重複。這些錯誤的讀取會在裝配圖中增加虛假分支,並妨礙裝配連續性。如圖2B所示,迭代錯誤校正可糾正重複中的更多錯誤,從而減輕由於裝配圖各部分中已經難以解決的順序錯誤而增加分支的問題。其次,迭代錯誤校正可將我們的數據集中正確讀取的數據對人類來說增加了2.7%,對蜥蜴來說是3.4%,對雞肉來說是0.5%。儘管這些額外的讀取可能對具有高讀取覆蓋率的基因座影響不大,但它們將有助於構建覆蓋範圍較低的基因座的重疊羣。

我們使用SGA來測試迭代錯誤校正,因爲它是大型基因組中性能最好的錯誤校正方法之一[ 21 ],而且其性能也優於其他方法。但是,如圖6所示,其他工具也可以從迭代錯誤糾正策略中受益。因此,未來的錯誤校正工具的開發和基準測試通常可能會從迭代校正中受益。

給用戶的實用指導

爲了方便社區應用提議的迭代錯誤糾正,我們提供了一個名爲SGA迭代糾正錯誤(SGA-ICE)的包裝腳本,該腳本通過重複使用SGA模塊來實現管道。僅在給定輸入目錄包含帶有序列讀取的fastq文件的情況下,SGA-ICE就會生成一個可執行的Shell腳本,其中包含用於迭代錯誤糾正的所有命令。默認情況下,SGA-ICE運行三輪基於k -mer的校正,k在讀取長度的40%至三分之二之間(SGA-ICE將自動確定),然後進行最後一輪基於重疊的校正。因此,SGA-ICE消除了用戶選擇單個k- mer值的需要。或者,用戶可以指定哪個k使用以及是否進行最終的基於重疊的校正回合。

對於大型基因組(例如脊椎動物基因組)的Illumina測序數據,我們建議SGA-ICE默認策略爲三個k- mer校正回合,這樣可以減少運行時間,同時保留大多數校正準確性如圖4所示。省略重疊校正將進一步減少運行時間。但是,較小的插入和刪除錯誤將保留在讀取中。如果運行時考慮因素不重要或基因組較小,我們建議運行三輪以上以最大程度地提高讀取精度,例如k  = 40/75/100/125/150/175/200。正如所建議圖5中,測序覆蓋確定最大ķ-mer可以使用。對於約30倍的覆蓋範圍(應足以從長的Illumina讀取中構建重疊羣),我們建議不要使用大於讀取長度三分之二的k聚體。然而,對於60X或更高的高測序覆蓋率,使用這些大k聚體將是有利的,因爲它們能夠校正在重疊羣組裝期間難以橋接的極其相似的基因組重複中的錯誤。

SGA-ICE可從https://github.com/hillerlab/Iterative ErrorCorrection /獲得

 

關鍵點

 

  • 重疊高度相似的基因組重複序列的讀段中的測序錯誤很難通過基於k -mer的方法來糾正。

  • 250或300 bp長的Illumina讀數提供了使用更長的k- mers 糾正此類錯誤的機會。

  • 迭代誤差校正隨着k- mer大小的增加而運行多個校正回合,可以校正更多的錯誤,尤其是在重複中。

  • 錯誤讀取數量的減少改善了長Illumina讀取的重疊羣裝配

  • 迭代校正消除了用戶選擇單個k- mer值的需要。

發佈了517 篇原創文章 · 獲贊 83 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章