2022-09-08 bam文件去除重复reads

适用场景:


首选软件:

picard MarkDuplicates

命令示例:

export _JAVA_OPTIONS=-Djava.io.tmpdir=./tmp

picard -Xmx100g MarkDuplicates I=YH9H-2filter_MAPQ20.bam O=YH9H-2filter_MAPQ20redup.bam CREATE_INDEX=ture REMOVE_DUPLICATES=ture M=YH9H-2filter_MAPQ20.metrics.txt

缺点最难搞的软件,经常会各种超内存等问题,一大堆。该工具的另一个不同之处在于它不仅考虑reads的比对位置,还会考虑其中的插入错配等情况(即会利用sam/bam文件中的CIGAR值),甚至reads的tail,lane以及flowcell。Picard主要考虑reads的5'端的比对位置,一个每个reads比对上的方向。

samtools rmdup

如果多个reads具有相同的比对位置时,samtools rmdup将它们标记为duplicates,然后直接将识别出来的重复reads去掉,通常只保留质量最高的一条。

该方法对于以下两种情况,有很好的去除效果:一些reads由于测序错误导致其不完全相同;比对错误导致不同的序列比对到相同的位置(可能性不大)。

该方法的缺点:由于samtools去重只考虑reads比对上的起始终止位置,不考虑比对情况,这种去重有时会导致测序信息的丢失。

双端测序数据用samtools rmdup效果很差,很多人建议用picard工具的MarkDuplicates功能。samtools的rmdup是直接将这些重复序列从比对BAM文件中删除掉,而Picard的MarkDuplicates默认情况则只是在BAM的FLAG信息中标记出来,而不是删除,因此这些重复序列依然会被留在文件中,只是我们可以在变异检测的时候识别到它们,并进行忽略。

目前认为,samtools rmdup已经过时了,应该使用samtools markdup代替。samtools markdup与picard MarkDuplicates采用类似的策略。


最近新出的比较快的软件

sambamba

sambamba markdup OPTIONS

主要参数:

-r, --remove-duplicates 去掉重复序列,否则仅mark重复序列

-t, --nthreads=NTHREADS

-l, --compression-level=N

--tmpdir=TMPDIR 设置中间文件生成目录(默认为/tmp)

此外,还可以提取sam文件的某一段,sambamba slice OPTIONS region

也可以使用sambamba操作bam文件和去除重复,据说该命令运行比picard MarkDuplicates快30倍。


samblaster是sam格式输入文件


引用如下:

https://www.jianshu.com/p/645aaa48a8f0

https://www.jianshu.com/p/5781e7d74c40

https://www.jianshu.com/p/115b24b7df4c

你可能感兴趣的:(2022-09-08 bam文件去除重复reads)