diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/AbstractReadBackedPileup.java b/public/java/src/org/broadinstitute/sting/utils/pileup/AbstractReadBackedPileup.java index d0ae68912..42938d2a6 100644 --- a/public/java/src/org/broadinstitute/sting/utils/pileup/AbstractReadBackedPileup.java +++ b/public/java/src/org/broadinstitute/sting/utils/pileup/AbstractReadBackedPileup.java @@ -1022,7 +1022,7 @@ public abstract class AbstractReadBackedPileup sortedElements = new TreeSet(new Comparator() { @Override @@ -1031,15 +1031,27 @@ public abstract class AbstractReadBackedPileup tracker = (UnifiedPileupElementTracker) pileupElementTracker; - for (PE pile : tracker) - sortedElements.add(pile); + + if (pileupElementTracker instanceof PerSamplePileupElementTracker) { + PerSamplePileupElementTracker tracker = (PerSamplePileupElementTracker) pileupElementTracker; + + for (final String sample : tracker.getSamples()) { + PileupElementTracker perSampleElements = tracker.getElements(sample); + for (PE pile : perSampleElements) + sortedElements.add(pile); + } + } + else { + UnifiedPileupElementTracker tracker = (UnifiedPileupElementTracker) pileupElementTracker; + for (PE pile : tracker) + sortedElements.add(pile); + } UnifiedPileupElementTracker sortedTracker = new UnifiedPileupElementTracker(); for (PE pile : sortedElements) sortedTracker.add(pile); - return (RBP) createNewPileup(this.getLocation(), sortedTracker); + return (RBP) createNewPileup(loc, sortedTracker); } @Override