From 31d5df285993d68833f9358d077177b5e1aea65d Mon Sep 17 00:00:00 2001 From: chartl Date: Tue, 27 Oct 2009 15:58:20 +0000 Subject: [PATCH] Previous base now checks that the read matches the reference in the previous base window. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1915 348d0f76-0448-11de-a6fe-93d51630548a --- ...seTransitionTableCalculatorJavaWalker.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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();