diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SingleSampleGenotyper.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SingleSampleGenotyper.java index af72f6f0f..9e665b58a 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SingleSampleGenotyper.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SingleSampleGenotyper.java @@ -38,6 +38,9 @@ public class SingleSampleGenotyper extends LocusWalker reads, List offsets) { - GenotypeLikelihoods G; + GenotypeLikelihoods G = null; if (isHapmapSite(tracker)) { - G = new GenotypeLikelihoods(phapmap[0], phapmap[1], phapmap[2], p2ndon, p2ndoff); + G = new GenotypeLikelihoods(THREE_BASE_ERRORS, phapmap[0], phapmap[1], phapmap[2], p2ndon, p2ndoff); } else if (isDbSNPSite(tracker)) { - G = new GenotypeLikelihoods(pdbsnp[0], pdbsnp[1], pdbsnp[2], p2ndon, p2ndoff); + G = new GenotypeLikelihoods(THREE_BASE_ERRORS, pdbsnp[0], pdbsnp[1], pdbsnp[2], p2ndon, p2ndoff); } else { - G = new GenotypeLikelihoods(plocus[0], plocus[1], plocus[2], p2ndon, p2ndoff); + G = new GenotypeLikelihoods(THREE_BASE_ERRORS, plocus[0], plocus[1], plocus[2], p2ndon, p2ndoff); } + G.filterQ0Bases(! keepQ0Bases); // Set the filtering / keeping flag + for (int i = 0; i < reads.size(); i++) { SAMRecord read = reads.get(i); int offset = offsets.get(i); - G.add(ref, read.getReadString().charAt(offset), read.getBaseQualities()[offset]); + char base = read.getReadString().charAt(offset); + byte qual = read.getBaseQualities()[offset]; + int nBasesAdded = G.add(ref, base, qual); + if ( nBasesAdded == 0 ) { + nFilteredQ0Bases++; + //System.out.printf("Filtering Q0 base from %s at %s %d: %c %c %d%n", + // read.getReadName(), GenomeLocParser.createGenomeLoc(read), offset, ref, base, qual); + } } G.ApplyPrior(ref, this.alt_allele, this.allele_frequency_prior); @@ -352,7 +369,8 @@ public class SingleSampleGenotyper extends LocusWalker