前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测序深度的计算,你真的掌握了吗

测序深度的计算,你真的掌握了吗

作者头像
生信修炼手册
发布2020-05-07 16:22:35
3.4K0
发布2020-05-07 16:22:35
举报

计算测序深度是数据分析中的一个常规操作,常用的工具有以下几种

1. samtools depth

命令如下

samtools depth input.bam > sample.depth
2. samtools mpileup

命令如下

samtools mpileup -A  -Q 0 chrY.bam | cut -f1,2,4 > sample.depth
3. bdetools genomecov

命令如下

bedtools  genomecov -ibam input.bam -d > sample.depth

尽管方法不同,但是输出结果的格式是相同的,示意如下

第一列是染色体名称,第二列是染色体上的坐标,第三列是对应的测序深度。原本以为计算测序深度就是这么轻松的一件事,但是在比较不同方法的输出结果时,却发现部分区域samtools计算的结果和bedtools的结果对应不上,结果如下

第三列为samtools软件计算出来的结果,第四列为bedtools软件计算出来的结果,可以看到,samtools的结果比bedtools少了很多。

为了确定这段区域真实的测序深度,将bam文件导入IGV软件之中进行查看,对应区域的结果如下

从reads来看,确实应该是10和16条,那么samtools计算出来的结果又是什么, 总不可能是samtools的bug吧,作为一个应用这个广泛的软件,不可能有如此低级的错误。

从结果来看,samtools在计算depth的过程中对reads进行了过滤,那么它过滤的原则是什么呢?通过查看bam文件中第二列的flag我找到了规律,143-150bp的reads有以下10条

第二列的flag含义如下

0x91    145 PAIRED,REVERSE,READ2
0x163   355 PAIRED,PROPER_PAIR,MREVERSE,READ1,SECONDARY
0x63    99  PAIRED,PROPER_PAIR,MREVERSE,READ1

可以看到,其中有一个SECONDARY比对,对应数字355,这样的reads有4条,去除这4条之后,就是samtools计算的最终结果了。

作为SAM文件的官方操作工具,samtools内置了对flag的过滤, 而bedtools默认没有进行这样的过滤,只是简单统计了该区域比对上的reads数目。

在使用IGV展示测序深度时,可以用igvtools先计算出tdf文件再导入IGV中,这样比直接导入bam文件快很多。在tdf文件中,其测序深度和bedtools软件的计算结果是一致的,也是只统计了read数目,没有做过滤。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. samtools depth
  • 2. samtools mpileup
  • 3. bdetools genomecov
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档