From 80f32712dc2ab41600cc27f7278bafdcd3cd930b Mon Sep 17 00:00:00 2001 From: depristo Date: Sun, 5 Dec 2010 18:48:33 +0000 Subject: [PATCH] Tiny bug fix git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4793 348d0f76-0448-11de-a6fe-93d51630548a --- java/src/org/broadinstitute/sting/utils/BAQ.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/src/org/broadinstitute/sting/utils/BAQ.java b/java/src/org/broadinstitute/sting/utils/BAQ.java index fc102f061..6d49ef291 100644 --- a/java/src/org/broadinstitute/sting/utils/BAQ.java +++ b/java/src/org/broadinstitute/sting/utils/BAQ.java @@ -421,7 +421,7 @@ public class BAQ { public BAQCalculationResult calcBAQFromHMM(SAMRecord read, IndexedFastaSequenceFile refReader) { // start is alignment start - band width / 2 - size of first I element, if there is one. Stop is similar int offset = getBandWidth() / 2; - long start = read.getAlignmentStart() - offset - getFirstInsertionOffset(read); + long start = Math.max(read.getAlignmentStart() - offset - getFirstInsertionOffset(read), 0); long stop = read.getAlignmentEnd() + offset + getLastInsertionOffset(read); if ( stop > refReader.getSequenceDictionary().getSequence(read.getReferenceName()).getSequenceLength() ) { @@ -431,7 +431,8 @@ public class BAQ { // now that we have the start and stop, get the reference sequence covering it ReferenceSequence refSeq = refReader.getSubsequenceAt(read.getReferenceName(), start, stop); - return calcBAQFromHMM(read, refSeq.getBases(), - (offset + getFirstInsertionOffset(read))); + // todo -- think about last tiny bit of logic -- should be fine but need to convince myself that it's 100% correct + return calcBAQFromHMM(read, refSeq.getBases(), (int)(start - read.getAlignmentStart())); } }