去duplicate的方法
1.什么是duplicate,为什么要去除。
什么是duplicate:这是在建库的过程后,对已连有接头的DNA片段进行扩增,然后去接flowcell。之所以在建库后扩增,这是由于接flowcell的效率很低,建库后的分子很少。
为什么要去除:因为PCR duplicate后就会导致一个序列被重复测了多次。如果这个序列在后面的分析中有突变位点,则不去pcr dup就会增加它的深度,然后被定位真的突变位点。
2.主要有运用两种工具:samtools和picard
samtools
A:利用flags值:samtools view -F 1024 - h test.bam >rmdup.bam
B:rmdup工具:samtools rmdup test.bam rmdup.bam
C1:fixmate和markdup工具:samtools markdup test.bam markdup.bam
C2:fixmate和markdup工具:samtools markdup -r test.bam markdup.bam
类型 | wc -l 查看read数目 | 备注 | |
去重前 | 4888252 | ||
去重A | 4888252 |
用于测试的sam文件中的flags值最高只到181,所以是没有过滤掉任何reads。 sam文件来自于比对软件bwa,那么flags值是否。 |
|
去重B | 4888252 | 说明只是在duplicate read上标注,并没有将它从sam文件中去除 | |
去重C1 | 4888252 | 说明只是在duplicate read上标注,并没有将它从sam文件中去除 | |
去重C2 | 3930244 | 说明已经将duplicate read从sam文件中去除 | |
去重D1 | 4888252 | 说明只是在duplicate read上标注,并没有将它从sam文件中去除 | |
去重D2 | 3930212 | 说明已经将duplicate read从sam文件中去除 |
picard
D1:java -jar picard.jar MarkDuplicate I=test.bam O=picard1.bam M=picard1.txt (test.bam是坐标轴排序的bam文件)
D2:java -jar picard.jar MarkDuplicate REMOVE_DUPLICATES I=test.bam O=picard1.bam M=picard1.txt