为什么二代测序的原始数据中会出现Read重复现象?

要搞清楚这个read重复(duplicate)的问题,我想我们需要从NGS数据的产出过程说起,具体来说如下:

  1. 基因组DNA提取;
  2. DNA随机打断,最常用的是超声打断;
  3. 对被打断的DNA片段进行末端修复(通常是3'加A),然后在两端加接头,选择特定长度的片段文库进行PCR扩增(通过PCR的扩增会选!择!性!地提高加上了接头的文库分子数量);
  4. 文库上机与测序芯片(Flowcell)上的引物结合,经过桥式PCR扩增,在芯片上形成测序所需的cluster;
  5. 进行SBS测序,光学信号捕获,生成序列。

我们一般认为第1步DNA提取出来的是完整的基因组,打断则是完全随机的——通常来说也确实如此。

在第3步,PCR扩增时,同一个DNA片段会产生多个相同的拷贝,第4步测序的时候,这些来源于同!一!个!拷贝的DNA片段会结合到Fellowcell的不同位置上,生成完全相同的测序cluster,然后被测序出来,这些相同的序列就是duplicate。这是duplicate的第一个来源,也是主要来源,称为PCR duplicates(PCR重复)。

同样,在第4步,生成测序cluster的时候,某一个cluster中的DNA序列可能搭到旁边的另一个cluster的生成位点上,又再重新长成一个相同的cluster,这也是序列duplicate的另一个来源,这个现象在Illumina HiSeq4000之后的Flowcell中会有这类Cluster duplicates,这是第二类duplicate(如下图)。

在第5步中,某些cluster在测序的时候,捕获的荧光亮点由于光波的衍射,导致形状出现重影(如同近视散光一样),导致它可能会被当成两个荧光点来处理。这也会被读出为两条完全相同的reads,这是第三类duplicate,称之为Optical duplicates(光学重复);

 
 

以上三种比较常见,还有第四种,称为Sister duplicates,这是比较特殊的一个情况。它是文库分子的两条互补链同时都与Flowcell上的引物结合分别形成了各自的cluster被测序,最后产生的这对reads是完全反向互补的。比对到参考基因组时,也分别在正负链的相同位置上,在有些分析中也会被认为是一种duplicates。

另外,据说 NextSeq 平台上还出现过由于荧光信号捕获相机移动位置不够,导致 tile 边缘被重复拍摄,每次采样区域的边缘由于重复采样而出现了duplicates,下图中蓝色点代表 duplicates,可以看到在tile的左右两侧明显富集。

 
 

以上,除了NextSeq的情况之外,所有这些不同类型的duplicates都各有特点。比如PCR duplicate的特点是随机分布于Flowcell表面;而cluster duplicates和optical duplicates 的特点是它们都来自Flowcell上位置相邻的cluster。Cluster的位置一般都会被记录在原始测序fastq文件@Sequence-id那一行中。

这些Read重复都会一定程度上导致一些碱基信号被错误地拉高或者减低,会对后续分析带来干扰,特别是在WGS和WES分析时都需要去除。如果测序过程没什么特殊问题或者原因,那么,测序数据的duplicate比例一般都在10%以下。

另外,PCR duplicates可以通过PCR-free来避免。并且PCR本身还会带来一些其他的问题,比如扩增过程自带了一定的偏向性,这会损失一定的测序随机性,使得某些序列信息被扩大或者减小。所以,只要DNA起始量足够,那么我们就应该尽量采用PCR Free的方式来建库。

作者:黄树嘉
链接:https://www.jianshu.com/p/f1cd91e24edd
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

为什么二代测序的原始数据中会出现Read重复现象?的更多相关文章

  1. Next generation sequencing (NGS)二代测序数据预处理与分析

    二代测序原理: 1.DNA待测文库构建. 超声波把DNA打断成小片段,一般200--500bp,两端加上不同的接头2.Flowcell.一个flowcell,8个channel,很多接头3.桥式PCR ...

  2. 样本、文库、重复、lane、run - 二代测序原理及名词解释

    参考: 独占鳌头的Illumina仪器(二代测序篇) HiSeq2000测序原理.流程与仪器 NGS文库制备的方法比较[心得点评] 各种测序文库构建方式 样本:就是待测的DNA.RNA或蛋白序列,样本 ...

  3. Fastqc使用说明

    用FastQC检查二代测序原始数据的质量 2013-01-28 21:28:10|  分类: Bioinformatics |  标签:bioinformatics  deep-seq   |举报 | ...

  4. NCBI SRA数据库使用详解

    转:https://shengxin.ren/article/16 https://www.cnblogs.com/lmt921108/p/7442699.html 批量下载SRA http://ww ...

  5. 扩增子分析QIIME2-4分析实战Moving Pictures

    本示例的的数据来自文章<Moving pictures of the human microbiome>,Genome Biology 2011,取样来自两个人身体四个部位五个时间点   ...

  6. 测序中Q20 Q30 Q40

    你能给别人讲清楚这个概念吗? 二代测序中,每测一个碱基会给出一个相应的质量值,这个质量值是衡量测序准确度的.碱基的质量值13,错误率为5%,20的错误率为1%,30的错误率为0.1%.行业中Q20与Q ...

  7. 【转录组入门】3:了解fastq测序数据

    操作:需要用安装好的sratoolkit把sra文件转换为fastq格式的测序文件,并且用fastqc软件测试测序文件的质量 作业:理解测序reads,GC含量,质量值,接头,index,fastqc ...

  8. illumina SBS测序详解

    illumina SBS测序详解 2018年01月02日 09:33:56 sixu_9days 阅读数:9789 标签: 生物信息学二代测序 更多 个人分类: 测序原理   最近回头重新看了illl ...

  9. 第三章 RNA测序

    第三章 RNA测序   RNA测序(RNA Sequencing,简称RNA-Seq,也被称为全转录物组鸟枪法测序Whole Transcriptome Shotgun Sequencing,简称WT ...

随机推荐

  1. Oracle导出DMP文件的两种方法

    本文转载自:http://www.cnblogs.com/o-andy-o/archive/2013/06/05/3118611.html   导出: 方法一:利用PL/SQL Developer工具 ...

  2. 跳表(skiplist)Python实现

    # coding=utf-8 # 跳表的Python实现 import random # 最高层数设置为4 MAX_LEVEL = 4 def randomLevel(): ""& ...

  3. openx _金额

    1/work/openx/lib/max/Delivery/log.php MAX_Delivery_log_logAdImpression    MAX_Delivery_log_logAdRequ ...

  4. ASP.NET CMS: Administration Template

    ASP.NET CMS: Administration Template For many creating advanced ASP.NET website or application admin ...

  5. 1. myeclipse设置jsp默认打开方式为jsp Editor

    1.windows - preferences - General - Editors - File Associations

  6. HTML5 Canvas ( 创建图形对象 ) createImageData

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. CategoryPanelGroup动态生成节点

    afw TCategoryPanel *cp; ; i < TreeView1->Items->Count; i++) { ) { cp = new TCategoryPanel(C ...

  8. 用yield 实现协程 (包子模型)

    协程是一种轻量级的线程 无需线程上下级的开销, 所有的协程都在一个线程内执行 import time def consumer(name): print('%s is start to eat bao ...

  9. Eclipse launch configuration----Eclipse运行外部工具

    虽然我们已经有了像 Eclipse 这样高级的 IDE,但是我们有时候也是需要在开发的时候使用 Windows 的命令行,来运行一些独立的程序.在两个程序中切换来切换去是很麻烦的.所以 Eclipse ...

  10. ios localization

    1. 在工程文件中选择支持的语言,“Localizations” 2. 添加资源文件 Localizable.strings, (app默认从该资源文件读取字符串) 3. 通过 NSLocalized ...