reads去重复
RNA-seq一般不去重复: In RNA-Seq however, apart from the technical PCR duplicates, there is a strong source for biological read duplicates: for a given gene length and sequencing depth there exists an expression level beyond which it is not possible to add place more reads inside a gene locus without placing a second read exactly on the position of an already existing read. (然而,在RNA-Seq中,除了技术上的PCR重复之外,还有一个强大的生物读数重复来源:对于给定的基因长度和测序深度,存在一个表达水平,超过这个水平,如果不将第二个读数准确地放在已经存在的读数的位置上,就不可能在基因座内添加更多的读数。)
- DNA-based assay: For common DNA-based assays PCR duplicates are often simply removed before further analysis and their overall fraction or the read multiplicity taken as quality metrics.
- ChIP-seq一般去重复
- call SNP一般去重复
万事无绝对,还需参考起始量和PCR扩增数判断是否去重复。reads mapping覆盖均匀度可以判断是否需要去重复。
PCR去重工具首选Picard
根源上解决去重复问题:起始量高,循环数少,reads能长不短,能双端不单端
PCR重复的危害
理论上来讲,不同的序列在进行PCR扩增时,扩增的倍数应该是相同的。但是由于聚合酶的偏好性,PCR扩增次数过多的情况下,会导致一些序列持续扩增,而另一些序列扩增到一定程度后便不再进行,也就是我们常说的PCR偏好性。
这种情况对于定量分析(如ChIP-seq),会造成严重的影响。此外,PCR扩增循环数过多,会出现一些扩增偏差,进而影响一些突变识别(比如call SNP)的置信度。
因此,在一些NGS分析流程中需要考虑去除PCR重复。
常用的去重工具
测序所得到的reads是由于超声波或者酶切断裂得到的,因此这些reads比对到基因组上的位置是完全随机的。那么两个reads比对到相同位置的概率是非常低的。如果两个reads比对情况相同或者极其相似,则很有可能是由于PCR重复所导致的。而我们常用的去重工具主要也是遵循这一思想。
samtools rmdup
如果多个reads具有相同的比对位置时,rmdup将它们标记为duplicates,然后去除重复,通常只保留第一个识别到的reads。
该方法对于以下两种情况,有很好的去除效果:
- 一些reads由于测序错误导致其不完全相同
- 比对错误导致不同的序列比对到相同的位置(可能性不大)
该方法的缺点:由于samtools去重只考虑reads比对上的起始终止位置,不考虑比对情况,这种去重有时会导致测序信息的丢失。
Picard
该工具的MarkDuplicates方法也可以识别duplicates。但是与samtools不同的是,该工具仅仅是对duplicates做一个标记,只在需要的时候对reads进行去重。而samtools的rmdup则是直接将其识别出来的重复reads去掉。
该工具的另一个不同之处在于它不仅考虑reads的比对位置,还会考虑其中的插入错配等情况(即会利用sam/bam文件中的CIGAR值),甚至reads的tail,lane以及flowcell。Picard主要考虑reads的5'端的比对位置,一个每个reads比对上的方向。
因此我们可以从一定程度上认为,5'端的位置,方向,以及碱基比对情况相同,Picard就将这些reads中碱基比对值Q>15的看作是best pair而其他的reads则当作是duplicate reads。甚至当reads的长度不同时,Picard依然利用上述原理进行去重。
对Picard来说,reads的5'端信息更为重要.若duplicates是PCR重复,那么它们的序列不一定完全相同。但是由于PCR扩增时,酶的前进方向是5'->3'方向,PCR重复序列中5'端的部分相似的可能性更高。
如何判断是否需要去除重复?
在illumina测序中,通常有两种类型的重复,分别是光学重复和PCR重复,PCR重复就不用多说了,就是在建库过程中PCR扩增导致的重复。那么什么是光学重复呢?具体如下图所示,它是由于illumina测序时照相机错误的的将一个簇识别为两个簇(多个),这就会导致产生完全一样的reads。该重复可以利用tail的坐标进行去除。
当我们做RNA-seq时,我们所得到的reads覆盖度通常是不均匀的(由于不同的基因表达水平不同),如果我们不加考虑的直接remove duplicate,将会导致许多重要信息的丢失。
RNA-seq由于其建库起始量一般都很高所以不需要去除重复,而且RNA-seq数据中经常会出现某些基因的表达量十分高,这就导致这些基因打断的reads的比对情况有很大概率是一致的。
而ChIP-seq中,由于起始量不高,且没有那种富集程度很高的位点,因此通常需要考虑去除PCR重复。
至于call SNP,起始量一般都高(因为要保证测序深度),此外由于PCR扩增会导致一些序列复制错误,这将严重影响SNP位点识别的置信度。因此一般需要去重复。
利用reads mapping的均匀程度判断是否具有重复。若富集位点周围的reads均匀覆盖,那么没有重复;若富集位点周围覆盖度不均匀,某些区域猛然升高,那么很有可能需要进行PCR去重复
总结
- 起始量很多时,不需要去重复
- 扩增数很少时,15个cycle以内,不需要去重复
- 双端测序由于其两个reads的位置矫正,有助于去除PCR重复
- reads长度越长,越容易识别真正的PCR重复