前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MarkDuplicates 的意义与作用

MarkDuplicates 的意义与作用

作者头像
生信修炼手册
发布2020-05-11 17:38:02
4.1K0
发布2020-05-11 17:38:02
举报
文章被收录于专栏:生信修炼手册生信修炼手册

在数据预处理中,有一个很重要的步骤就是MarkDuplicates, 字面意思就是标记重复序列。重复序列是如何产生的,为什么要标记重复序列呢? 首先来看重复序列产生的途径,有以下两种

  1. PCR duplicates 这个很好理解,PCR根据一份模板,扩增出多份拷贝,来源于同一模板的多份拷贝之间就是PCR重复序列
  2. Optical duplicates illumina测序仪的基本单位是flowcell,测序反应在flowcell上发生和进行,高密度的flowcell使得测序的通量显著提升,也带来了序列重复读取的问题。虽然比例非常低,但是也需要考虑进来。

GATK官方对PCR重复和系统重复进行了统计,可以看到,PCR重复的比例随着测序量的增加而增加,而Optical duplicates 重复序列的比例是一个随机分布,总是存在的,其比例相对稳定,在是在一定范围内波动,符合系统误差的特性。

之所以要标记重复序列,是为了下游的SNP分析。SNP位点的识别,简单理解可以看做一个概率问题。比如下面两种情况:

  1. 情况A 基因组上某位点碱基为A, 有100条reads 覆盖到该位点。 其中99条都为A, 1条为C;
  2. 情况B 基因组上某位点碱基为T, 有100条reads 覆盖到该位点。 其中54条为T, 46条为C;

上述两种情况都检测到了两种碱基,是不是意味着检测到了两个SNP位点呢? 当然不是,情况A中C碱基的比例为1%,很可能是测序错误,当然不能算是一个SNP位点;情况B只从reads分布看,可以认为是一个候选的SNP位点,当然还要分析其他的因素才能判断是否是一个snp位点。从这里也可以看出, reads 的计数对于SNP位点的检测特别的重要。

但是这里的reads 指的是有效reads , 是实际在样本中存在的reads的数目。在计数时,重复序列只计数1次。MarkDuplicates的作用就是标记重复序列, 标记好之后,在下游分析时,程序会根据对应的 tag 自动识别重复序列。

重复序列的判断方法有两种:

  1. 序列完全相同
  2. 比对到基因组的起始位置相同

序列完全相同时,认为是重复序列当然没什么大问题。虽然会有同源性,重复序列等因素的影响,但是概率非常之小,基本上可以忽略不计;比对位置相同也认为是重复序列,是因为在测序过程中,会存在测序错误,本身完全一样的序列, 可能测序得到的的reads并不完全相同(可能有几个碱基不同),而且在去除低质量的过程中,也会有所差异(末端切除的低质量碱基数不同), 所以最终根据比对基因组的结果进行判断。如果序列比对到基因组上的起始位置是相同的,就认为是重复序列。

GATK4 标记重复序列的命令如下:

soft/gatk-4.0.4.0/gatk MarkDuplicates -I input.bam -M metrc.csv -O marked.bam

在输出的bam文件中,借助第二列的flag 来标记重复序列,flag的值是多种情况的叠加,其中1024代表重复序列

samtools flags 1024 0x400 1024 DUP

在生出的bam文件中,通过flag的值可以知道该序列是否为重复序列。

通过flag已经可以知道哪些是重复序列了,对于gatk 下游分析而言,已经足够了。有时我们还会去除掉重复序列,在去除重复序列时,会根据序列的碱基质量值 ,选择一个碱基质量值总和最大的reads 作为代表序列,保留下来。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档