一、ssDNA数据用samtools进行markdup去重的时候,出现报错信息。
脚本提交的时候在e文件中显示:
[markdup] error: no MC tag. [markdup] error: unable to assign pair hash key.
我用的bam文件已经进行sort过了(就是按照染色体上的位置进行sort,而且我也做完了index)所以报错可能的是没有进行fixmate 操作,这一步是为了加上 ms and MC tags,才能进行后续去重。
命令如下:
samtools fixmate -@ 5 -m $project/bam/$sample.sorted.bam $project/bam/$sample.fixmate.bam
fixmate还需要进行新的sort,之后就可以跑markdup了(用-r 直接去重)
但是还是报错。查到因为sort默认是按照position,但fixmate之前要按照名字sort,要加一个参数-n。过程如下:
samtools sort -n -@ 5 $project/bam/$sample.bam -o $project/bam/$sample.nsorted.bam #n按名字排序
samtools fixmate -@ 5 -m $project/bam/$sample.nsorted.bam $project/bam/$sample.fixmate.bam #加tag
samtools sort -@ 5 $project/bam/$sample.fixmate.bam -o $project/bam/$sample.fixmatesorted.bam #按postion排序
samtools markdup -r -@ 5 $project/bam/$sample.fixmatesorted.bam
$project/bam/$sample.rm.bam #去重
samtools index -@ 5 $project/bam/$sample.rm.bam 去重后index
samtools flagstat -@ 5 $project/bam/$sample.rm.bam > $project/bam/$sample.rmflagstat.txt
rm $project/bam/$sample.nsorted.bam $project/bam/$sample.fixmate.bam $project/bam/$sample.fixmatesorted.bam #删除中间bam
二、去重的意义
重复序列主要来自PCR扩增。PCR扩增目的是把含量极少的DNA进行复制,几十倍甚至上百倍,增加它们在液体中的密度,以便后面测序的时候可以被捕获到。但一些含量并不少的片段也会同步扩增,就使得这些片段可能会被取得两份(或多份)进行测序。会存在两条不同的 reads,但起始位置却完全一致的情况,因此需要去除这些重复。
三、去重的几种方法
去除重复的软件推荐 samtools markdup 和 picard。