隨著測序的成本越來越低,測序技術越發先進,除了研究單核苷酸多態性(SNP)。研究者們開始慢慢將目光轉向了各位複雜,但是也同樣非常常見的結構變異(SV)。接下來幾期推文會和大家一起學習結構變異的檢測原理,然後通過一系列的實戰演練和大家一起熟悉一些相關的工具和流程。
結構變異的定義與其研究的重要性變異是導致基因組差異的最重要因素,具體可分為單個鹼基對的變異(SNVs/SNPs)、小的插入或缺失(InDels≤50bp)以及結構變異(SVs>50bp)。
根據結構變異的不同類型,結構變異可以進一步分為DNA序列的插入、缺失、重複、倒位、易位、拷貝數變異等。結構變異可以影響基因組的穩定性、相關基因的表達調控,進而決定物種表型。據統計,每個人類基因組都有超過20000個結構變異,基因組結構變異可能導致的疾病已經超過1000種,例如我們熟悉的耳聞的漸凍症、精神分裂症以及癌症。結構變異帶來的影響比SNVs/SNPs或者是InDels帶來的影響更大。另外,稀有且相同的一些結構性變異往往和疾病(包括癌症)的發生相互關聯甚至還是其直接的致病誘因。結構變異除了廣泛存在人類基因組外,也普遍存在於動植物之中。研究者發現,結構變異與一些關鍵的農藝性狀或者育種相關的性狀也是息息相關。並且多個研究表明,結構變異能夠更好的解析群體結構,為我們更深入了解動植物馴化過程提供進一步的有效信息。簡而言之,結構變異的相關研究必將是生物學未來的一個熱點。
結構變異檢測原理目前經典的結構變異檢測方法包括:
Read Pair,一般稱為Pair-End Mapping,簡稱RP;
Split Read,分裂read,簡稱SR;
Read Depth,簡稱RD,也有人將其稱為RC——Read Count的意思,它與Read Depth是同一回事,都是利用序列read的橫縱覆蓋情況來檢測變異是否存在的方法;
從頭組裝(de novo Assembly, 簡稱AS)的方法。
Read Pair方法簡單來說,Read Pair方法是根據pair-end兩端之間距離(插入片段)與參考基因組上差異來確認結構變異。根據測序的原理,這個插入片段長度是一個固定的值,通過測量插入片段的分布是RP方法進行變異檢測的一個關鍵點。
RP方法共有兩種策略來鑑定SVs/CNVs:
下面引用黃樹嘉老師(公眾號解螺旋的礦工中一文)所寫的一段話來解析一下RP探測結構變異的具體原理(我想不出我還能比他解析得更好):
如果插入片段長度有異常,它實際上包含的意思是,組成read1和read2的這個序列片段和參考基因組相比存在著序列上的變異。舉個例子,如果我們發現它這個計算出來的插入片段長度與正態分布的中心相比大了200bp(假設這個200bp已經大於3個標準差了),那麼就意味著參考基因組比read1和read2所在的片段要長200bp,通過類似這樣的方式,我們就可以發現read1和read2所在的序列片段相比與參考基因組而言發生了200bp的刪除(Deletion)。
RP除了可以利用異常插入片段長度的信息進行線性變異(特指Deletion和Insertion)的發現之外,通過比對read1和read2之間的序列位置關係,還能夠發現更多非線性的序列變異。比如,序列倒置(Inversion),因為,按照PE的測序原理,read1和read2與參考基因組相比對,正好是一正一負,要麼是read1比上正鏈,read2比上負鏈,要麼是反過來,而且read1和read2都應處於同一個染色體上,如果不是這種現象,那麼就很可能是序列的非線性結構性變異所致,比如前者是序列倒置(Inversion),後者是序列易位(Translocation)等。
接著簡單總結一下利用RP這個方法去探測結構變異的流程。通過PE reads的比對找出那些比對不正常的read pairs,進而提取出比對不正常的區域,發現相互關聯的聚集。根據這些區域的位置,大小,還有比對不正常的reads的數目來判斷對應的結構變異的種類,最後通過計算相關的置信值來確定對應的結構變異。
使用RP方法來檢測結構變異的不足:
由於RP方法主要是基於入片段長度的變化來檢測Deletion。RP對於比較長的Deletion(通常是大於1kbp)比較敏感,準確性也高。但是對於小片段的Deletion,例如小於200bp的片段,其檢測可靠性準確性就會降低。
它所能檢測的插入Insertion序列,長度無法超過插入片段的長度。如果其長度超過插入片段,相當於是整個片段都是插入序列,PE read將無法比對到基因組上,從而無法進行檢測。
Delly和Breakdancer是兩個最經典的,使用RP方法來進行結構變異檢測的軟體。
Split Read方法Split Read方法又叫分裂read方法,其算法核心與RP一樣,都是利用PE read來進行變異檢測。但是正如它的名字一般(分裂),SR方法對應著一個特殊的情況:兩條PE的read,有一條能夠正常比對上參考基因組,但是另一條卻不行的情形。其能夠檢測的結構變異類型包括:
關於SR的優缺點,繼續引用黃老師的原話(不是我懶,是人家寫的真的很好):
SR的一個優勢在於,它所檢測到的SVs斷點能精確到單個鹼基,但是也和大多數的RP方法一樣,無法解決複雜結構性變異的情形。對於SR來說,它要求測序的read要更長才能體現它的優勢,read太短,許多變異都會不可避免地被漏掉,它的檢測功效在基因組的重複區域也會比較差。
Pindel,Delly,lumpy和SVseq2都是使用SR方法檢測結構變異的經典工具。
Read Depth方法Read Depth方法,主要通過在指定區域內(根據滑動窗口)的序列read的橫縱覆蓋情況來檢測變異是否存在的方法。該方法目前普遍被使用於基因組拷貝數變異檢測(CNV)。CNV實質上是序列Deletion或Duplication。Deletion就CNV中最極端的情況,相當於沒有任何copy。這種極端的變異也可以被叫做存在或者缺失變異(PAV)。
全基因組測序(WGS)得到的覆蓋深度呈現出來的是一個泊松分布——因為基因組上任意一個位點被測到的機率都是很低的——是一個小概率事件,在很大量的測序read條件下,其覆蓋就會呈現一個泊松分布,如下圖:
拷貝數增加會使得該區域的Read Depth高於期望值,而拷貝數缺失使得該區域的Read Depth低於高於期望值。根據滑動窗口讀段深度來指示拷貝數擴增與缺失。在眾多的軟體中,CNVnator採取了RD的方法,目前已經被廣泛地被用於檢測CNV。
AS方法AS方法(從頭組裝),通過將不同個體的read從頭組裝成基因組,然後兩兩之間一起比較找出其中的差異。這應該是最經典,最直接有效找結構變異的辦法。
但這裡,與上面的方法一樣。局限於短序列,你組裝的基因組可能會不完整片段化,導致無法進行精準的基因組比較。另外我們上面提到的所有方法其實都受限於read太短。由於read太短,不能在比對的時候橫跨基因組重複區域;並且無法抓捕很多大的Insertion序列。為了避免測序序列短的缺點,我們可以通過三代長read測序來克服二代數據短帶來的不便。但是長序列的引入,又需要考慮其錯誤高和測序價格相對較高的影響。在最理想的情況下,基於三代測序的從頭組裝應該是基因組結構性變異檢測上最有效的方法,它能夠檢測並且覆蓋所有類型的結構性變異。
總結在最理想的狀態,不考慮成本,並且組裝的基因組的複雜性,基於三代測序的從頭組裝是最有效的結構變異檢測方法。在剩下三個方法中,每個方法都有自己的優缺點,並沒有說哪個方法會比其它方法有壓倒性的優勢。下表是不同結構變異檢測所推薦使用的工具:
目前大家最常用的方法就是,將幾個方法/工具結合在一起,取不同結果的重合區域作為最終的結構變異結構。進而減少由於二代短測序產生的假陽性結果。下一次內容會和大家進行一些相關的實戰,敬請大家關注。
參考資料:
【簡書】一篇文章說清楚基因組結構性變異檢測的方法
學術前沿 | NGS方法進行拷貝數變異檢測概述
明哥的GitHub:基於NGS SVs檢測原理
文末友情宣傳強烈建議你推薦我們生信技能樹給身邊的博士後以及年輕生物學PI,幫助他們多一點數據認知,讓科研更上一個臺階: