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
This commit is contained in:
chartl 2009-10-27 15:58:20 +00:00
parent 726378be8b
commit 31d5df2859
1 changed files with 19 additions and 0 deletions

View File

@ -217,11 +217,30 @@ public class BaseTransitionTableCalculatorJavaWalker extends LocusWalker<Set<Bas
return false;
} else if ( useSecondaryBase && read.getAttribute("SQ") == null )
return false;
else if ( nPreviousBases >= 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<Comparable> buildConditions( SAMRecord read, int offset, ReferenceContext ref, ReadBackedPileup pileup ) {
ArrayList<Comparable> conditions = new ArrayList<Comparable>();