在NGS分析入門階段,我們不需要考慮太多的細(xì)節(jié),只用知道一個(gè)分析的大致流程并完整跑下來即可。太多的細(xì)節(jié),只會讓我們對于分析產(chǎn)生莫須有的恐懼,因此一些“無關(guān)緊要“細(xì)節(jié)就被我們刻意的忽略了……

但是隨著我們對于測序數(shù)據(jù)的認(rèn)識不斷加深,我們要考慮的小細(xì)節(jié)便越來越多。其中,是否去除PCR重復(fù)就是一個(gè)很值得思考的問題。
太長不看系列
RNA-seq一般不去重復(fù)
ChIP-seq一般去重復(fù)
call SNP一般去重復(fù)
萬事無絕對,還需參考起始量和PCR擴(kuò)增數(shù)判斷是否去重復(fù)。reads mapping覆蓋均勻度可以判斷是否需要去重復(fù)。
PCR去重工具首選Picard
根源上解決去重復(fù)問題:起始量高,循環(huán)數(shù)少,reads能長不短,能雙端不單端
仔細(xì)看看系列
PCR重復(fù)的危害
理論上來講,不同的序列在進(jìn)行PCR擴(kuò)增時(shí),擴(kuò)增的倍數(shù)應(yīng)該是相同的。但是由于聚合酶的偏好性,PCR擴(kuò)增次數(shù)過多的情況下,會導(dǎo)致一些序列持續(xù)擴(kuò)增,而另一些序列擴(kuò)增到一定程度后便不再進(jìn)行,也就是我們常說的PCR偏好性。
這種情況對于定量分析(如ChIP-seq),會造成嚴(yán)重的影響。此外,PCR擴(kuò)增循環(huán)數(shù)過多,會出現(xiàn)一些擴(kuò)增偏差,進(jìn)而影響一些突變識別(比如call SNP)的置信度。
因此,在一些NGS分析流程中需要考慮去除PCR重復(fù)。但是,這并不代表可以無腦去除,你要真這樣做了,我這篇文章也就沒啥意義了~

常用的去重工具
測序所得到的reads是由于超聲波或者酶切斷裂得到的,因此這些reads比對到基因組上的位置是完全隨機(jī)的。那么兩個(gè)reads比對到相同位置的概率是非常低的。如果兩個(gè)reads比對情況相同或者極其相似,則很有可能是由于PCR重復(fù)所導(dǎo)致的。而我們常用的去重工具主要也是遵循這一思想。
samtools rmdup
samtools的大名,基本上是無人不知,無人不曉。而這個(gè)工具其中有一個(gè)rmdup方法,可以幫助我們?nèi)コ貜?fù)。雖然我們不需要了解該工具的具體代碼實(shí)現(xiàn),但是了解其核心思想將有助于我們深刻認(rèn)識這個(gè)玩意。
如果多個(gè)reads具有相同的比對位置時(shí),rmdup將它們標(biāo)記為duplicates,然后去除重復(fù),通常只保留第一個(gè)識別到的reads。
該方法對于以下兩種情況,有很好的去除效果:
- 一些reads由于測序錯(cuò)誤導(dǎo)致其不完全相同
- 比對錯(cuò)誤導(dǎo)致不同的序列比對到相同的位置(可能性不大)
該方法的缺點(diǎn):由于samtools去重只考慮reads比對上的起始終止位置,不考慮比對情況,這種去重有時(shí)會導(dǎo)致測序信息的丟失。
Picard
這是另一個(gè)鼎鼎大名的工具,該工具的MarkDuplicates方法也可以識別duplicates。但是與samtools不同的是,該工具僅僅是對duplicates做一個(gè)標(biāo)記,只在需要的時(shí)候?qū)eads進(jìn)行去重。而samtools的rmdup則是直接將其識別出來的重復(fù)reads去掉。
該工具的另一個(gè)不同之處在于它不僅考慮reads的比對位置,還會考慮其中的插入錯(cuò)配等情況(即會利用sam/bam文件中的CIGAR值),甚至reads的tail,lane以及flowcell。Picard主要考慮reads的5'端的比對位置,一個(gè)每個(gè)reads比對上的方向。
因此我們可以從一定程度上認(rèn)為,5'端的位置,方向,以及堿基比對情況相同,Picard就將這些reads中堿基比對值Q>15的看作是best pair而其他的reads則當(dāng)作是duplicate reads。甚至當(dāng)reads的長度不同時(shí),Picard依然利用上述原理進(jìn)行去重。
對Picard來說,reads的5'端信息更為重要.若duplicates是PCR重復(fù),那么它們的序列不一定完全相同。但是由于PCR擴(kuò)增時(shí),酶的前進(jìn)方向是5'->3'方向,PCR重復(fù)序列中5'端的部分相似的可能性更高。
如果說非要推薦一個(gè)去重軟件,那我就只能無腦吹一波Picard了。到那時(shí)如果不需要考慮太多,那么samtools的去重更加方便
如何判斷是否需要去除重復(fù)?
那么,既然不能無腦去除,那么我們應(yīng)該根據(jù)什么標(biāo)準(zhǔn)去判斷呢?

首先我們可以檢查FastQC中的原始數(shù)據(jù),該數(shù)據(jù)大致說明reads中的重復(fù)水平。雖然該工具僅計(jì)入前200,000個(gè)序列,但是我們?nèi)匀豢梢越璐舜笾铝私馄鋽?shù)量級。
我們之前有說到,兩個(gè)reads比對到相同位置的概率是非常低的,但是概率低不代表就不會發(fā)生。因此當(dāng)我們準(zhǔn)備去除重復(fù)時(shí),我們需要清楚這些數(shù)據(jù)究竟是什么?
在illumina測序中,通常有兩種類型的重復(fù),分別是光學(xué)重復(fù)和PCR重復(fù),PCR重復(fù)就不用多說了,就是在建庫過程中PCR擴(kuò)增導(dǎo)致的重復(fù)。那么什么是光學(xué)重復(fù)呢?具體如下圖所示,它是由于illumina測序時(shí)照相機(jī)錯(cuò)誤的的將一個(gè)簇識別為兩個(gè)簇(多個(gè)),這就會導(dǎo)致產(chǎn)生完全一樣的reads。該重復(fù)可以利用tail的坐標(biāo)進(jìn)行去除(此處需要回憶一下Picard的去重原理)。

當(dāng)我們做RNA-seq時(shí),我們所得到的reads覆蓋度通常是不均勻的(由于不同的基因表達(dá)水平不同),如果我們不加考慮的直接remove duplicate,將會導(dǎo)致許多重要信息的丟失。
samtools的作者李恒提供了一個(gè)公式用于計(jì)算錯(cuò)誤去除率:0.28 * m / s / L(其中m是reads的數(shù)量,s是插入片段大小分布的標(biāo)準(zhǔn)偏差,L是基因組的長度;插入的片段大小分布越集中(s越?。┎恍业卦黾恿隋e(cuò)誤的重復(fù)數(shù)據(jù)刪除率)。如果經(jīng)驗(yàn)去重率高于0.28 * m / s / L,則這些序列是真的PCR重復(fù)
那么RNA-seq是否需要去除重復(fù)呢?答案是具體情況具體看看待咯~

好吧,這句話確實(shí)像是廢話,但是這真的是實(shí)話欸……
總結(jié)一下,若起始量很低,PCR擴(kuò)增次數(shù)很多,那么則需要去除PCR重復(fù)。因此:
- RNA-seq由于其建庫起始量一般都很高所以不需要去除重復(fù),而且RNA-seq數(shù)據(jù)中經(jīng)常會出現(xiàn)某些基因的表達(dá)量十分高,這就導(dǎo)致這些基因打斷的reads的比對情況有很大概率是一致的。
- 而ChIP-seq中,由于起始量不高,且沒有那種富集程度很高的位點(diǎn),因此通常需要考慮去除PCR重復(fù)。
- 至于call SNP,起始量一般都高(因?yàn)橐WC測序深度),此外由于PCR擴(kuò)增會導(dǎo)致一些序列復(fù)制錯(cuò)誤,這將嚴(yán)重影響SNP位點(diǎn)識別的置信度。因此一般需要去重復(fù)。
當(dāng)然萬事無絕對,還是需要根據(jù)起始量和擴(kuò)增數(shù)進(jìn)行判斷,但是如果你說我還是覺得不太安心怎么辦,沒關(guān)系,我還有一個(gè)小技巧可以偷偷告訴你。雖然我自己由于時(shí)間問題沒有測試過,但是這個(gè)方法聽起來很是蠻靠譜的。
該方法是由biostar的創(chuàng)始人在其論壇中給出的:利用reads mapping的均勻程度判斷是否具有重復(fù)。若富集位點(diǎn)周圍的reads均勻覆蓋,那么沒有重復(fù);若富集位點(diǎn)周圍覆蓋度不均勻,某些區(qū)域猛然升高,那么很有可能需要進(jìn)行PCR去重復(fù)
不僅治標(biāo)也要治本
上面給的解決辦法,都是治標(biāo)不治本,那么能不能從根源上減少這種重復(fù)帶來的影響呢?這個(gè)必須有~
- 起始量很多時(shí),不需要去重復(fù)
- 擴(kuò)增數(shù)很少時(shí),15個(gè)cycle以內(nèi),不需要去重復(fù)
- 雙端測序由于其兩個(gè)reads的位置矯正,有助于去除PCR重復(fù)
- reads長度越長,越容易識別真正的PCR重復(fù)