diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/RealignedReadCounter.java b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/RealignedReadCounter.java index f9e7a42f4..e6688c691 100755 --- a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/RealignedReadCounter.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/RealignedReadCounter.java @@ -55,7 +55,7 @@ public class RealignedReadCounter extends ReadWalker { // the current interval in the list private GenomeLoc currentInterval = null; - private long updatedIntervals = 0, updatedReads = 0; + private long updatedIntervals = 0, updatedReads = 0, affectedBases = 0; private boolean intervalWasUpdated = false; public void initialize() { @@ -92,6 +92,7 @@ public class RealignedReadCounter extends ReadWalker { if ( !intervalWasUpdated ) { intervalWasUpdated = true; updatedIntervals++; + affectedBases += 20 + getIndelSize(read); } updatedReads++; @@ -106,6 +107,15 @@ public class RealignedReadCounter extends ReadWalker { return 0; } + private int getIndelSize(SAMRecord read) { + for ( CigarElement ce : read.getCigar().getCigarElements() ) { + if ( ce.getOperator() == CigarOperator.I || ce.getOperator() == CigarOperator.D ) + return ce.getLength(); + } + logger.warn("We didn't see an indel for this read: " + read.getReadName() + " " + read.getAlignmentStart() + " " + read.getCigar()); + return 0; + } + private boolean doNotTryToClean(SAMRecord read) { return read.getReadUnmappedFlag() || read.getNotPrimaryAlignmentFlag() || @@ -126,5 +136,6 @@ public class RealignedReadCounter extends ReadWalker { public void onTraversalDone(Integer result) { System.out.println(updatedIntervals + " intervals were updated"); System.out.println(updatedReads + " reads were updated"); + System.out.println(affectedBases + " bases were affected"); } }