diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseTransitionTableCalculatorJavaWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseTransitionTableCalculatorJavaWalker.java index 61fe0509d..1abbc40e3 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseTransitionTableCalculatorJavaWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseTransitionTableCalculatorJavaWalker.java @@ -217,11 +217,30 @@ public class BaseTransitionTableCalculatorJavaWalker extends LocusWalker= 1 && previousReadBasesMismatchRef(read, offset, ref) ) + return false; else { return true; } } + public boolean previousReadBasesMismatchRef( SAMRecord read, int offset, ReferenceContext ref ) { + int c = read.getReadNegativeStrandFlag() ? 1 : -1; + if ( offset + nPreviousBases*c < 0 ) { + return true; + } else if ( offset + nPreviousBases*c > read.getReadLength() ) { + return true; + } + + for ( int prevBase = 1; prevBase <= nPreviousBases; prevBase ++ ) { + if ( Character.toUpperCase(read.getReadBases()[offset + prevBase*c]) != Character.toUpperCase(ref.getBases()[nPreviousBases+1+prevBase*c]) ) { + return true; + } + } + + return false; + } + public List buildConditions( SAMRecord read, int offset, ReferenceContext ref, ReadBackedPileup pileup ) { ArrayList conditions = new ArrayList();