戴道成
(西安歐亞學院 金融學院,陜西 西安 710065)
眾所周知,桑格(Sanger)測序法是人類歷史上第一代DNA測序技術,因其成本高、通量低的缺點,而被以Roche公司的454技術、illumina公司的Solexa技術和ABI公司的Solid技術為代表的二代測序技術(Next Generation Sequencing, NGS)所取代。相較于Sanger測序,NGS測序的成本大大降低,同時實現了較高的測序精度,但read長度的極大縮短限制了NGS的廣泛應用。以Pacific Biosciences公司SMRT技術和Oxford Nanopore Technologies公司納米孔單分子技術為代表的三代測序技術(Third Generation Sequencing, TGS),不僅繼承了NGS的優點,而且能產生長度大于10 kbp的長read,因而在序列組裝、基因突變鑒定以及疾病診斷等諸多領域得到廣泛的應用。但是錯誤隨機分布的特性和15%的測序錯誤率是限制TGS大范圍應用的主要瓶頸,由此產生兩大類針對三代測序數據進行錯誤校正的方法。第一類是三代測序數據(long reads, LRs)的自校正方法,以HGAP和LoRMA為例,這些方法需要較高水平的覆蓋度來確保質量,這無疑是增加了基因組計劃的成本。第二類是混合校正方法,此方法需要同時比較LRs和二代測序數據(short reads, SRs),如proovread、LoRDEC和Jabba等,其經常需要計算和處理數百萬個SRs到LRs的比對結果,這也是一個十分艱巨的挑戰,需要消耗較多的資源和內存。為了避免以上問題,充分發揮已有糾錯方法的優點,基于機器學習中的眾包標注思想,通過計算高質量SRs集合的一致度、能力和準確度來對低質量LRs的位點進行標注,從而實現三代測序數據的精準糾錯。
在基于眾包標注的三代測序數據的糾錯方法(Error Correction method of Third generation sequencing Data based on Crowdsourcing annotation, CTDC)中,將通過基因組仿真得到的三代測序數據視為待標注任務(Long Reads Assignment,LRA),將通過相同基因組仿真得到的二代測序數據視為標注工作者(Short Reads Worker, SRW),利用SRW對LRA進行標注,從而完成三代測序數據的糾錯過程。
在CTDC中,對LRA中的每個位點進行眾包標注的準確性主要取決于參與標注任務的SRW的能力,SRW能力越強,說明其可信度越大,相應位點的標簽準確率越高。而SRW的能力受其對應LRA的位點任務難度以及比對質量等的影響,所以為了從眾多標簽中選出最準確的一個,需要將所有可能影響SRW能力的因素都考慮進去,包括LRA中每個位點的任務難度水平、SRW的準確度以及覆蓋在此位點下的SRW之間的一致性。整個算法的設計過程如圖1所示。
圖1 眾包標注的算法設計過程
通常來講,對于一個待標注的LRs任務,初始采集到的來自同一樣本的SRs包括三類:完全正確的SRs、具有測序誤差噪聲的SRs、比對錯誤而導致錯位的SRs。因此,有必要對初始采集到的SRs進行數據預處理,過濾掉相關噪聲數據,從而盡可能提高SRs的精度。
首先,由于二代測序數據的錯誤通常位于read的末端,在使用BLASR進行SRs到LRs的比對時將read尾部的5bp截掉,因此BLASR的參數為:blasr Sk Li --header --out result -m 5。
其次,保證SR與LR之間的相似度Similarity≥0.7,其中Similarity=numMatch/(numMatch + numSub + numIns +numDel),numMatch、numSub、numIns、numDel分別代表正確比對的位點數目、錯誤比對的位點數目、插入的位點數目和刪除的位點數目。
同時,由于BLASR是一種高容錯性的比對工具,每條read在M5格式中會產生多條比對結果,并且這些結果已經按照比對質量score值進行降序排序,因此選擇最上面的比對結果。
1.3.1 LRA難度的計算
根據信息熵值衡量標簽結果分布的平衡度,熵值越大,說明標簽越分散,平衡度越高,任務難度越大;反之,標簽越集中,平衡度越低,任務難度越小。
1.3.2 SRW能力的計算
在眾包標注中,需要考慮SRW的三個要素,自身能力、標注一致度和標注準確度。下文分別進行分析和計算。
1.3.2.1 SRW一致度
1.3.2.2 SRW準確度
SRW準確度通過其所標注任務的位點中正確標注的位點所占的比例來衡量。在SRW中,對于任意S,令A代表其準確度,計算公式為:
(1)根據LRs的測序錯誤率,為SRW中的每個S設置一個準確度初始值0.85;
(2)對于第1位堿基,以S的準確度初始值0.85計算相應的支持率,完成眾包標注;
(3)對于第k位堿基,以前k-1位更新過的準確度值作為第k位的準確度初值,計算位點對象的支持率,從而實現位點的校正。同時根據校正結果重新計算第k位的準確度值,作為第k+1位的準確度初值。
(4)重復以上步驟,直至所有堿基都得到處理。
1.3.2.3 SRW能力
基于眾包標注的已有研究,對于任意S,令B代表其在某一堿基 上的能力,計算公式為:
其中,λ為一個調和參數,用作權衡SRW準確度與一致度的權重比例,默認取值為0.5。
綜上,當算法對最終標簽進行整合時,通常采用SRW的加權能力值進行以上過程,并且具有更高能力值的工作者對標簽選擇的貢獻權重更大。因此,對式(1)的支持率M進行如下改進。
最大期望算法的計算過程為:
(2)根據式(6)求得所有待標注對象的各個標簽的支持率,然后根據最大支持率更新相應標簽;
(3)根據式(3)更新S的一致度G,同時根據式(4)更新S的準確度A,然后根據式(5)更新S的能力值B;
(5)迭代次數加1,如果迭代次數超過預設閾值,則算法轉到(6),否則,算法轉到(5);
(6)重復以上步驟,直至LRA中的所有堿基都得到標注。
2.1.1 數據說明
考慮到真實數據的巨大和難處理性,CTDC算法的性能驗證實驗中均使用仿真數據。首先,將人類基因組的chr19染色體作為參考序列,然后通過二代仿真工具TNsim生成長度為100 bp的SRs,并隨機植入0.1%的變異位點,通過三代仿真工具PBSIM生成長度為15 000 bp、測序錯誤率為15%的LRs。
2.1.2 實驗說明
本次實驗主要驗證CTDC算法對于三代測序數據的糾錯能力??紤]到CTDC算法的糾錯過程以及已有混合校正方法在測序覆蓋度、資源消耗和運行內存上的不足,設計以下三組實驗進行CTDC算法的性能驗證。第一組實驗:CTDC在SRs不同測序覆蓋度下的精確度分析;第二組實驗:CTDC與LoRDEC在SRs不同測序覆蓋度下的糾錯結果比較;第三組實驗:CTDC、LoRDEC與proovread在SRs不同測序覆蓋度下的運行時間和內存比較。
TP:原位點有測序錯誤,且通過CTDC算法進行糾錯;
TN:原位點無測序錯誤,且通過CTDC算法未進行糾錯;
FP:原位點無測序錯誤,且通過CTDC算法進行糾錯;
FN:原位點有測序錯誤,且通過CTDC算法未進行糾錯;
Accuracy=(TP+TN)/(TP+TN+FN+FP),即通過CTDC算法成功糾錯的位點數占位點總數的比例,通常來說,精確度越高,糾錯效果越好。
2.3.1 CTDC在SRs不同測序覆蓋度下的精確度分析
對于SRs,設置生成的測序覆蓋度分別為5×、10×、20×、30×、50×和100×,考慮到運行時間,將LRs的測序覆蓋度設置為5×。經過CTDC糾錯,對LRs的每一個位點進行統計分析,得到如圖2所示的結果。
圖2 SRs的不同測序覆蓋度下CTDC對于三代測序數據的校正精確度
在圖2中,隨著SRs測序覆蓋度的增加,越來越多的SRs參與眾包標注,因此CTDC對于三代測序數據的校正性能越來越好。同時,當SRs的測序覆蓋度達到50×以上時,CTDC的精確度達到最佳97.6%。
2.3.2 CTDC與LoRDEC在SRs不同測序覆蓋度下的糾錯結果比較
基于以上實驗分析,設置如上的SRs與LRs,同時選擇LoRDEC進行比對實驗。經過糾錯后的位點統計,得到如圖3所示的結果。
圖3 SRs的不同測序覆蓋度下CTDC與LoRDEC對于三代測序數據的校正結果
由圖3可知,隨著SRs測序覆蓋度的增加,CTDC和LoRDEC對于三代測序數據的校正性能逐漸增強,但是在測序覆蓋度相同時,CTDC的性能優于LoRDEC。為了便于比較CTDC和LoRDEC,繪制圖4進行分析。
圖4 SRs的不同測序覆蓋度下CTDC與LoRDEC對于三代測序數據的校正精確度
總而言之,對于三代測序數據的校正,CTDC的性能優于LoRDEC。
2.3.3 CTDC、LoRDEC與proovread在SRs不同測序覆蓋度下的運行時間和內存比較
為了驗證CTDC在資源消耗和運行內存上的性能,同樣設置如上的SRs與LRs,同時選擇LoRDEC和proovread進行比對實驗。經過對三代測序數據的糾錯,所統計的實驗結果如表1所示。
表1 SRs的不同測序覆蓋度下CTDC、LoRDEC和Proovread的內存消耗比較
由表1可知,在低于20×的測序覆蓋度下,對于三代測序數據的校正,CTDC的運行時間顯著低于LoRDEC和proovread。隨著SRs測序覆蓋度的增加,LoRDEC與proovread的運行時間也明顯增加,但均低于CTDC。同時,在運行內存上,CTDC由于計算上的優勢,資源消耗明顯低于LoRDEC和proovread。
針對測序數據進行有效的校正是獲得高精度的基因序列的關鍵技術。針對現有三代測序數據糾錯方法的不足,本文提出一種基于眾包標注的三代測序數據糾錯方法CTDC。CTDC使用經處理的高質量SRs對LRs的任務難度進行計算,結合其一致度、能力和準確度對當前低質量的各個位點對象分別進行眾包標注,并使用最大期望算法完成糾錯。根據不同測序覆蓋度下的實驗結果,當SRs的測序覆蓋度為50×時,CTDC對于三代測序數據的校正精確度達到97.6%。同時,在運行時間和占用內存上,CTDC的性能明顯優于已知的混合校正算法LORDEC和proovread。后續需要在眾包標注算法中考慮LRs的重疊片段,以進一步提高三代測序數據的糾錯性能,從而獲取更高精度的測序數據,實現后續的基因分析乃至疾病的精準治療。