美文网首页生息分析
测序的PCR duplicates - I(转载)

测序的PCR duplicates - I(转载)

作者: 灵动的小猪 | 来源:发表于2018-08-23 20:19 被阅读169次

    在做NGS data处理的时候,常常会遇到需要使用picard和samtools 进行remove PCR duplicates的步骤。
    在网上查了一下 PCR duplicates的来历,有两个资料讲的比较详细。
    但是这两个资料侧重的点不太一样,这里节选翻译+总结一下这两份资料,供将来研究作参考。
    这里是第一份资料,另一份资料在下一篇文章中。

    第一篇

    一般来说,建库测序的过程分为下面六步:

    1, 用超声波等方法将基因组DNA打碎。
    2,对打碎得到的DNA片段加接头。
    3,PCR扩增加了接头的DNA片段。
    4,将扩增后的产物“洒”在flowcell上,目的是一个bead上抓取到一个DNA片段分子。
    5,在bead上进行PCR扩增反应,保证后面测序时可以读取到足够强的信号。
    6,测序(各测序平台有自己的技术:pyrosequencing (Roche), reversible terminator chemistry (Illumina), or ion semiconductor (Ion Torrent)).

    PCR duplicates是在第3步产生的。

    理想情况下,对打碎的基因组DNA,每个DNA片段测且仅测到一次。

    而第三步扩增了6个cycle,那么每个DNA片段有了64份拷贝。将扩增后所有产物“洒”到flowcell,来自一个DNA片段的两个拷贝,可能会锚定在两个bead上,经过测序得到的这两条read,就是PCR duplication。

    一般来说,如果PCR duplication rate过高,那么同样总数目的reads,所提供的关于基因组的信息就大大减少了。

    那么PCR duplication rate跟什么因素相关呢?

    下面通过一个简单的计算来说明这个问题。

    假设扩增后(第3步后)准备上机测序的DNA总质量为1ug。建库时候扩增了6个cycle,也就是每个DNA片段有2^6=64份拷贝。原始的(扩增前)DNA片段总质量=1ug/64=15.6ng.

    一个碱基对的分子量为 660g/mol, 即 660 g per mol per bp. 假设我们打碎的DNA片段长度都为200bp,那么一个片段的分子量 = 200bp*660g/mol = 220 bp * 660 * 10^9 ng/mol

    那么 原始的(扩增前)DNA片段总数目=15.6 ng / (220 bp * 660 * 10^9 ng/mol ) = 1.07438e-13 mol

    由于1mol 单位中包含 6.022×10^23 个粒子,那么1.07438e-13 mol对应 1.07438e-13 *6.022×10^23 = 64699163600 ~ 7e10 个分子。

    也就是说,基因组被打碎后得到了** 7e10 **独特的DNA片段。

    注:阿伏伽德罗常数用于代表一摩尔物质所含的基本单元(如分子或原子)之数量,在一般计算时,常取6.02×1023或6.022×1023为近似值(来源,维基百科:https://zh.wikipedia.org/wiki/阿伏伽德罗常数

    如果我们对人的基因组进行测序(3G bp),测序深度为20x,read长度为100bp,那么对应了大约 3e9 bp /100bp * 20x = 600M reads. 一个read来自一个bead,也就是有600M个beads。

    到这里,我们有7e10 独特的DNA片段,每个片段在上机测序前有64份拷贝,它们会 600M beads随机进行杂交。

    平均来看,一个DNA片段被一个bead“抓住”的几率 = 600M/7e10=6e8/7e10=0.0085.

    为了了解PCR duplicates rate,我们需要知道这7e10个独特的DNA片段,被0个、1个、2个... bead抓住的几率,体现在最后read中就是0个read,1个read,2个reads...

    由于一个DNA片段被一个bead“抓住”的几率很低,我们可以用Poission distribution来刻画这个过程。

    Poisson distribution的概率密度函数 = λke-λ/k! , k=0,1,2,...n.

    这里, λ 就是一个DNA片段被一个bead“抓住”的几率=0.0085. 而 k 就是一个独特的DNA片段被几个bead抓住。

    k=seq(0,10,1)
    names=as.character(k)
    barplot(dpois(k,lambda=0.0085),names.arg=names,xlab="Number of times a given molecule is represented in reads",
    ylab="Probability")
    
    
    image

    由于beads的数目远远小于DNA片段总数,因此大部分DNA片段根本木有被测到。

    而我们关注的是“1” bar和它右边的所有bar。因此我们把“0”bar去除掉,再看:

    k=seq(1,10,1)
    names=as.character(k)
    barplot(dpois(k,lambda=0.0085),names.arg=names,xlab="Number of times a given molecule is represented in reads",
    ylab="Probability")
    
    
    image

    从这个图上来看,如果一个DNA片段被测到了(因为我们把k=0的都扔掉了),那么它很大机会是只被测到了一次。而如果它被测到了2次或更多次,这就造成了PCR duplicates.

    我们算一下被测到的DNA片段(无论被测到几次)的比例:

    sum(dpois(k,lambda=.0085)/k)/(1-dpois(0,lambda=.0085))
    
    

    sum(dpois(k,lambda=.0085)/k) 就是在数 count(1)/1+count(2)/2 + ..., 也就是总计测到的、独特的DNA分子有多少个。被除数(1-dpois(0,lambda=.0085)) 是所有测出来的reads数目。

    结果为0.9979, 即 0.21% PCR duplicates.

    现在,我们假设,我们打碎基因组DNA后,得到了9e9个DNA片段,在第三步扩增时候,进行了9个cycle,也就是每个DNA片段被扩增了512倍。那么 Poisson distribution中的lambda=6e8/9e9 = 0.067. 即一个DNA片段被一个bead抓住的概率为0.067.

    sum(dpois(k,lambda=.067)/k)/(1-dpois(0,lambda=.067))
    
    

    结果为0.983,也就是有1.7% PCR duplicate rate。

    k=seq(1,10,1)
    names=as.character(k)
    barplot(dpois(k,lambda=0.067),names.arg=names,xlab="Number of times a given molecule is represented in reads",
            ylab="Probability")
    
    
    image

    可以看出,相比较lambda=0.0085的柱状图,k=2的柱子明显变高了,也就是说更多的DNA片段被测到了两次,PCR duplicates rate上升了。

    更极端的情况,如果我们打碎基因组DNA后,得到了1e9个DNA片段,在第三步扩增时候,进行了12个cycle,也就是每个DNA片段被扩增了4096倍。那么 Poisson distribution中的lambda=6e8/1e9 = 0.6. 即一个DNA片段被一个bead抓住的概率为0.6.

    sum(dpois(k,lambda=.6)/k)/(1-dpois(0,lambda=.6))
    
    

    =0.85, 即有15%的reads都是PCR duplicates。

    k=seq(1,10,1)
    names=as.character(k)
    barplot(dpois(k,lambda=0.6),names.arg=names,xlab="Number of times a given molecule is represented in reads",
            ylab="Probability")
    
    
    image

    从这幅图中可以看的更明显。

    到这里,我们可以看到:DNA片段/bead数目 这个比例越小,PCR duplicate rate越大。

    原文作者下面还回答了一些读者提出的问题:

    “为什么不准备一些DNA原材料,不做PCR,直接测序”

    作者引用了Mike Talkowski (People) 的答案:

    在第二步加接头的时候,只有一小部分DNA片段可以成功加上接头,第三步会把成功连上接头的DNA片段进行扩增,此时待上机的产物大部分都是有接头的DNA片段了,而上机后,只有有接头的DNA片段才可以被bead抓取到。

    如果不做PCR,直接从第二步到上机,那上机产物中大部分都是没有接头的分子,上机后bead也无法抓取这些分子。

    相关文章

      网友评论

        本文标题:测序的PCR duplicates - I(转载)

        本文链接:https://www.haomeiwen.com/subject/mrcvyftx.html