diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IntervalCleanerWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IntervalCleanerWalker.java index 52c87fde2..051e7e4c7 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IntervalCleanerWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IntervalCleanerWalker.java @@ -346,6 +346,7 @@ public class IntervalCleanerWalker extends LocusWindowWalker for ( int j = 0; j < altReads.size(); j++ ) { AlignedRead toTest = altReads.get(j); + // returned pair={alignment_offset on consensus, alignment score (mismtach sum)}: Pair altAlignment = findBestOffset(consensus.str, toTest); // the mismatch score is the min of its alignment vs. the reference and vs. the alternate @@ -364,8 +365,11 @@ public class IntervalCleanerWalker extends LocusWindowWalker //logger.debug(consensus.str + " " + consensus.mismatchSum); if ( bestConsensus == null || bestConsensus.mismatchSum > consensus.mismatchSum) { + if ( bestConsensus != null ) bestConsensus.readIndexes.clear(); // forget the old best consensus data, do not waste memory bestConsensus = consensus; //logger.debug(consensus.str + " " + consensus.mismatchSum); + } else { + consensus.readIndexes.clear(); // we do not need this alt consensus, release memory right away!! } }