美文网首页生息分析
测序的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(转载)

    在做NGS data处理的时候,常常会遇到需要使用picard和samtools 进行remove PCR dup...

  • 测序的PCR duplicates - II(转载)

    这一次的资料给出了详细的计算公式,并且有R做模拟验证的code。 在我实际处理NGS data时候,从测序数据中自...

  • fastquniq

    Pcr扩增是duplicates的主要来源,一般是因为测序文库扩增来带入的。而这些重复的片段对获得scaffold...

  • 学习小组day7笔记-钟能能

    测序 1.三代测序历史 2.高通量测序分类 3.第二代测序技术流程 DNA文库构建 簇的生成——桥式PCR 测序 ...

  • RNA-seq基础知识

    单端测序和双端测序 单端测序只有一种测序引物 ,使得PCR只能沿着这个引物的方向进行,所有的 reads 都只能按...

  • 为了服务养猪人,我们在学习

    1、畜禽常用检测方法 抗原检测,即病原诊断技术(普通PCR、荧光定量PCR、ELISA、基因DNA测序技术、SDS...

  • PCR做了几次都是假阳性

    随着基因组测序、分子生物学检测手段的快速发展,PCR和荧光定量PCR实验,正在越来越多的实验室应用。然而,PCR作...

  • 科普讲堂 | 三代测序技术Nanopore的介绍

    与前两代相比,三代测序最大的特点就是单分子测序,测序过程无需进行PCR扩增。实现了对每一条DNA分子的单独测序。目...

  • 测序数据上游分析--质量控制

    感谢小学学! 测序原理: 将基因打断成片段reads;每段reads一端连接不同的UMI做为标识;PCR;测序 u...

  • NGS建库为何需要PCR,何时需要去重?

    背景 二代测序建库时,当连接好接头之后,需要进行PCR,而目的是什么?对后续生信分析有何影响? 为什么需要PCR?...

网友评论

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

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