![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to use Picard's MarkDuplicates | cliff | Bioinformatics | 12 | 01-26-2015 11:56 PM |
Picard's MarkDuplicates -> OutOfMemoryError | elgor | Bioinformatics | 15 | 08-05-2013 07:37 AM |
MarkDuplicates in picard | bair | Bioinformatics | 3 | 12-23-2010 12:00 PM |
Picard rmdup error | kapoormanav | Illumina/Solexa | 2 | 09-07-2010 02:11 PM |
Picard MarkDuplicates | wangzkai | Bioinformatics | 2 | 05-18-2010 10:14 PM |
![]() |
|
Thread Tools |
![]() |
#1 |
Junior Member
Location: Boston, MA Join Date: Jun 2010
Posts: 1
|
![]()
I am trying to remove duplicate using samtools's rmdup and rmdupse, they don't seem to just remove everything that share the same start/end sites. I couldn't seem to find a good description of what exactly rmdup/rmdupse does, nor could i understand the C source code.
I found in another post that Picard might does a better job at this, but it seems controversial. So I am wondering what people use and what are the pros/cons of the two options. thanks, |
![]() |
![]() |
![]() |
#2 |
Nils Homer
Location: Boston, MA, USA Join Date: Nov 2008
Posts: 1,285
|
![]()
Not too controversial, use Picard.
|
![]() |
![]() |
![]() |
#3 |
Member
Location: Maryland Join Date: Jul 2008
Posts: 48
|
![]() |
![]() |
![]() |
![]() |
#4 |
Nils Homer
Location: Boston, MA, USA Join Date: Nov 2008
Posts: 1,285
|
![]() |
![]() |
![]() |
![]() |
#5 |
Member
Location: Maryland Join Date: Jul 2008
Posts: 48
|
![]()
I did, but haven't found any details. For single-end reads, samtools consider them to be duplicates as long as their mapping locations are the same. Even if the sequences of two reads are not the same, they are still removed as duplicates. I'm not sure if it's desired, and how picard handles it.
|
![]() |
![]() |
![]() |
#6 | |
Nils Homer
Location: Boston, MA, USA Join Date: Nov 2008
Posts: 1,285
|
![]() Quote:
Also, the first search on google using the string "site: seqanswers.com duplicate removal" was useful. Last edited by nilshomer; 06-13-2010 at 09:22 PM. Reason: more info |
|
![]() |
![]() |
![]() |
#7 | |
Member
Location: Maryland Join Date: Jul 2008
Posts: 48
|
![]() Quote:
"Essentially what Picard does (for pairs; single-end data is also handled) is to find the 5' coordinates and mapping orientations of each read pair. When doing this it takes into account all clipping that has taking place as well as any gaps or jumps in the alignment. You can thus think of it as determining "if all the bases from the read were aligned, where would the 5' most base have been aligned". It then matches all read pairs that have identical 5' coordinates and orientations and marks as duplicates all but the "best" pair. "Best" is defined as the read pair having the highest sum of base qualities as bases with Q >= 15." |
|
![]() |
![]() |
![]() |
#8 | |
Nils Homer
Location: Boston, MA, USA Join Date: Nov 2008
Posts: 1,285
|
![]() Quote:
|
|
![]() |
![]() |
![]() |
#9 | |
Member
Location: Germany Join Date: Jan 2009
Posts: 41
|
![]()
now I come to anther question: once we have reads with various lengths, should 3' coordinates should also be considerred(or length of the aligned part) ? for reads from the reverse strand, 3' is the beginning of the fragment, am I right?
Quote:
|
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Location: Los Angeles, China. Join Date: Feb 2010
Posts: 106
|
![]() Quote:
|
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Location: Boston Join Date: Feb 2008
Posts: 693
|
![]()
I believe Picard is doing the same for SE and this is the right thing to do. PCR duplicates can have different sequences. Optical duplicates have identical sequences.
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Location: Los Angeles, China. Join Date: Feb 2010
Posts: 106
|
![]()
Hi lh3, thanks for the response! I understand PCR duplicates, but can you clarify what an optical duplicate is? I like what you are saying. Thanks again!
|
![]() |
![]() |
![]() |
#13 | ||
Senior Member
Location: Palo Alto Join Date: Apr 2009
Posts: 213
|
![]() Quote:
Hope that helps. ![]() Quote:
Also, reads from the reverse strand are still in 5'->3' context. The enzymes always go in the same direction, right?
__________________
Mendelian Disorder: A blogshare of random useful information for general public consumption. [Blog] Breakway: A Program to Identify Structural Variations in Genomic Data [Website] [Forum Post] Projects: U87MG whole genome sequence [Website] [Paper] |
||
![]() |
![]() |
![]() |
#14 | |
Junior Member
Location: denmark Join Date: Apr 2010
Posts: 8
|
![]() Quote:
In my case I am using SE data, and if I'm guessing right for SE picard and samtools work the same for dupl removal?? Thanks! |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Location: San Diego Join Date: May 2008
Posts: 912
|
![]()
I tried to use picard's mark duplicates, but it doesn't seem to be doing much of a job (The sam file is from a bwa paired end alignment)
java -jar SortSam.jar I=full_genome_grepped.sam O=full_genome_grepped_sorted.sam SO=coordinate VALIDATION_STRINGENCY=LENIENT java -jar MarkDuplicates.jar I=full_genome_grepped_sorted.sam O=full_genome_grepped_sorted_deduped.sam M=Dedup_metrics.txt VALIDATION_STRINGENCY=LENIENT QUIET=true REMOVE_DUPLICATES=true The resultant file is only a little smaller than the original. So I checked some known duplicates; grep 1:78:10366:8808 full_genome_grepped_sorted_deduped.sam 100729:1:78:10366:8808:a: 99 chr9 3000477 0 50M = 3000810 383 AGTGGATGTTTCTCATTTTCCATGATTTTCAGTTTTCTTGCCATATTCCA gggggggggggggggggggggdgfcgggggdggggggggegggggggggg X0:i:23 X1:i:27 MD:Z:50 XG:i:0 AM:i:0 NM:i:0 SM:i:0 XM:i:0 XO:i:0 XT:A:R 100729:1:78:10366:8808:b: 147 chr9 3000810 0 50M = 3000477 -383 GCCATATTTTACGTCCTAAAGTGTGCATTTCTCATTTTTCACGTTTTTCA hhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhghhhhhhhhhhhhhhhh X0:i:4 X1:i:0 XA:Z:chr9,-3022120,50M,3;chr9,-3011768,50M,3;chr9,-3019372,50M,3; MD:Z:9C1G6C31 XG:i:0 AM:i:0 NM:i:3 SM:i:0 XM:i:3 XO:i:0 XT:A:R grep 1:80:15287:8131 full_genome_grepped_sorted_deduped.sam 100729:1:80:15287:8131:a: 99 chr9 3000477 3 50M = 3000810 383 AGTGGATGTTTCTCATTTTCCATGATTTTCAGTTTTCTTGCCATATTCCA ggggggggggggggfggggggcggggggggggggggggggggggggggga X0:i:23 X1:i:27 MD:Z:50 XG:i:0 AM:i:0 NM:i:0 SM:i:0 XM:i:0 XO:i:0 XT:A:R 100729:1:80:15287:8131:b: 147 chr9 3000810 3 50M = 3000477 -383 GCCATATTTTACGTCCTAAAGTGTGCATTTCTCATTTTTCACGTTTTTCA hhhhhhhhhhhghhhhhhhhhfhhhhhhhhhhghhhhhhhhhhhhhhhhh X0:i:4 X1:i:0 XA:Z:chr9,-3000810,50M,3;chr9,-3011768,50M,3;chr9,-3019372,50M,3; MD:Z:9C1G6C31 XG:i:0 AM:i:0 NM:i:3 SM:i:0 XM:i:3 XO:i:0 XT:A:R I was hoping that one of the two would be deleted from the deduped file, since they look like perfect duplicates to me. Last edited by swbarnes2; 11-19-2010 at 03:18 PM. Reason: typos |
![]() |
![]() |
![]() |
#16 |
Senior Member
Location: 41°17'49"N / 2°4'42"E Join Date: Oct 2008
Posts: 323
|
![]()
The example you are showing is not significant to determine if there was any problem with picard. You are showing the two ends of a pair. They are both in your sam file before and after running picard. That's the expected behavior.
__________________
-drd |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Location: USA Join Date: Jan 2008
Posts: 482
|
![]() Quote:
http://seqanswers.com/forums/showthread.php?t=6854 Last edited by bioinfosm; 11-22-2010 at 12:59 PM. Reason: working link |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Location: Los Angeles, China. Join Date: Feb 2010
Posts: 106
|
![]() Quote:
Picard's markdups program's supposed advantage is in its ability to remove duplicates across chromosomes. I ran markdups and samtools and samtools ended up removing more dups, but not across chromosomes of course. Either way, you can physically go through and filter out pairs and sequences with poor pairing or mapping QVs. I also remove reads across chromosomes now. Depends on what you're doing really. |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Location: San Diego Join Date: May 2008
Posts: 912
|
![]() Quote:
But Picard doesn't seem to be removing dupes within chromosomes. I posted the .sam entries for two different clusters with the exact same sequence at each end; why didn't Picard remove one cluster or the other? |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Location: Los Angeles, China. Join Date: Feb 2010
Posts: 106
|
![]()
I'm not sure really. I actually use samtools now to remove the dups and I believe we're moving towards filtering out the singletons, cross-chromosome pairs, invalid insert sizes, and anything else under a QV of ten. Just for the sake of the most accurate data.
|
![]() |
![]() |
![]() |
Tags |
markduplicates, picard, remove duplicates, rmdup, samtools |
Thread Tools | |
|
|