From a5dfc9107dcca618977af6145487ecaa49daea28 Mon Sep 17 00:00:00 2001 From: ebanks Date: Wed, 2 Dec 2009 17:45:29 +0000 Subject: [PATCH] - Cleaned up annotation code some more - Use QualityUtils when phred-scaling now git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2217 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/walkers/annotator/AlleleBalance.java | 4 ++-- .../sting/gatk/walkers/annotator/DepthOfCoverage.java | 5 ++--- .../sting/gatk/walkers/annotator/FisherStrand.java | 7 +++---- .../sting/gatk/walkers/annotator/HomopolymerRun.java | 5 ++--- .../gatk/walkers/annotator/MappingQualityZero.java | 5 ++--- .../annotator/PrimaryBaseSecondaryBaseSymmetry.java | 5 ++--- .../gatk/walkers/annotator/RMSMappingQuality.java | 5 ++--- .../sting/gatk/walkers/annotator/RankSumTest.java | 4 ++-- .../sting/gatk/walkers/annotator/ResidualQuality.java | 5 ++--- .../sting/gatk/walkers/annotator/SecondBaseSkew.java | 4 ++-- .../gatk/walkers/annotator/SpanningDeletions.java | 5 ++--- .../gatk/walkers/annotator/VariantAnnotation.java | 10 ++++++++-- .../sting/gatk/walkers/annotator/VariantAnnotator.java | 5 ++--- .../walkers/genotyper/EMGenotypeCalculationModel.java | 4 ++-- .../JointEstimateGenotypeCalculationModel.java | 6 +++--- .../PointEstimateGenotypeCalculationModel.java | 4 ++-- 16 files changed, 40 insertions(+), 43 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java index 0036572a3..7f3a20bf8 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java @@ -11,7 +11,7 @@ import java.util.ArrayList; public class AlleleBalance extends StandardVariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { if ( genotypes.size() == 0 ) return null; @@ -40,7 +40,7 @@ public class AlleleBalance extends StandardVariantAnnotation { ratio = computeSingleBalance(ref.getBase(), genotypeStr, bases); } - return new Pair(getKeyName(), String.format("%.2f", ratio)); + return String.format("%.2f", ratio); } public String getKeyName() { return "AB"; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java index 93c4002f9..ae54a6147 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java @@ -1,7 +1,6 @@ package org.broadinstitute.sting.gatk.walkers.annotator; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; -import org.broadinstitute.sting.utils.Pair; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.genotype.Genotype; import org.broadinstitute.sting.utils.genotype.Variation; @@ -11,9 +10,9 @@ import java.util.List; public class DepthOfCoverage extends StandardVariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { int depth = pileup.getReads().size(); - return new Pair(getKeyName(), String.format("%d", depth)); + return String.format("%d", depth); } public String getKeyName() { return "DP"; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/FisherStrand.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/FisherStrand.java index 017c0fead..b655a5196 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/FisherStrand.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/FisherStrand.java @@ -1,8 +1,7 @@ package org.broadinstitute.sting.gatk.walkers.annotator; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; -import org.broadinstitute.sting.utils.BaseUtils; -import org.broadinstitute.sting.utils.Pair; +import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.genotype.Genotype; import org.broadinstitute.sting.utils.genotype.Variation; @@ -14,7 +13,7 @@ import java.util.List; public class FisherStrand implements VariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { // this test doesn't make sense for homs Genotype genotype = VariantAnnotator.getFirstHetVariant(genotypes); @@ -33,7 +32,7 @@ public class FisherStrand implements VariantAnnotation { return null; // use Math.abs to prevent -0's - return new Pair(getKeyName(), String.format("%.1f", Math.abs(10.0 * Math.log10(pvalue)))); + return String.format("%.1f", Math.abs(QualityUtils.phredScaleErrorRate(pvalue))); } public String getKeyName() { return "FisherStrand"; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java index d6db5e615..d1e60d947 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java @@ -1,7 +1,6 @@ package org.broadinstitute.sting.gatk.walkers.annotator; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; -import org.broadinstitute.sting.utils.Pair; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.genotype.Genotype; @@ -12,13 +11,13 @@ import java.util.List; public class HomopolymerRun extends StandardVariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { if ( !variation.isBiallelic() || !variation.isSNP() ) return null; int run = computeHomopolymerRun(variation.getAlternativeBaseForSNP(), ref); - return new Pair(getKeyName(), String.format("%d", run)); + return String.format("%d", run); } public String getKeyName() { return "HRun"; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java index 36edd3880..00ad93526 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java @@ -1,7 +1,6 @@ package org.broadinstitute.sting.gatk.walkers.annotator; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; -import org.broadinstitute.sting.utils.Pair; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.genotype.Genotype; import org.broadinstitute.sting.utils.genotype.Variation; @@ -12,14 +11,14 @@ import java.util.List; public class MappingQualityZero extends StandardVariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { List reads = pileup.getReads(); int MQ0Count = 0; for (int i=0; i < reads.size(); i++) { if ( reads.get(i).getMappingQuality() == 0 ) MQ0Count++; } - return new Pair(getKeyName(), String.format("%d", MQ0Count)); + return String.format("%d", MQ0Count); } public String getKeyName() { return "MQ0"; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/PrimaryBaseSecondaryBaseSymmetry.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/PrimaryBaseSecondaryBaseSymmetry.java index f4e4a2daf..0bd357132 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/PrimaryBaseSecondaryBaseSymmetry.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/PrimaryBaseSecondaryBaseSymmetry.java @@ -28,7 +28,7 @@ public class PrimaryBaseSecondaryBaseSymmetry implements VariantAnnotation{ public boolean useZeroQualityReads() { return USE_ZERO_MAPQ_READS; } - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { // todo -- this code doesn't work, should't be called if ( true ) return null; @@ -42,8 +42,7 @@ public class PrimaryBaseSecondaryBaseSymmetry implements VariantAnnotation{ } else { //System.out.printf("refSecondBasePair = %s, nonrefPrimaryBasePair = %s%n", refSecondBasePair, nonrefPrimaryBasePair); double primary_secondary_stat = refSecondBasePair.second - nonrefPrimaryBasePair.second; - String annotation = String.format("%f", primary_secondary_stat); - return new Pair(KEY_NAME, annotation); + return String.format("%f", primary_secondary_stat); } } else { return null; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java index 253ad6eb1..0e2b365e8 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java @@ -2,7 +2,6 @@ package org.broadinstitute.sting.gatk.walkers.annotator; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.utils.MathUtils; -import org.broadinstitute.sting.utils.Pair; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.genotype.Genotype; import org.broadinstitute.sting.utils.genotype.Variation; @@ -13,13 +12,13 @@ import java.util.List; public class RMSMappingQuality extends StandardVariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { List reads = pileup.getReads(); int[] qualities = new int[reads.size()]; for (int i=0; i < reads.size(); i++) qualities[i] = reads.get(i).getMappingQuality(); double rms = MathUtils.rms(qualities); - return new Pair(getKeyName(), String.format("%.2f", rms)); + return String.format("%.2f", rms); } public String getKeyName() { return "MQ"; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java index 0949da0f6..1ca5b8c00 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java @@ -12,7 +12,7 @@ import java.util.ArrayList; public class RankSumTest implements VariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { if ( genotypes.size() == 0 ) return null; @@ -40,7 +40,7 @@ public class RankSumTest implements VariantAnnotation { if ( MathUtils.compareDoubles(pvalue, 0.0) == 0 ) return null; - return new Pair(getKeyName(), String.format("%.1f", -10.0 * Math.log10(pvalue))); + return String.format("%.1f", QualityUtils.phredScaleErrorRate(pvalue)); } public String getKeyName() { return "RankSum"; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ResidualQuality.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ResidualQuality.java index 9367b31e3..a8ce1e152 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ResidualQuality.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ResidualQuality.java @@ -1,6 +1,5 @@ package org.broadinstitute.sting.gatk.walkers.annotator; -import org.broadinstitute.sting.utils.Pair; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.BaseUtils; import org.broadinstitute.sting.utils.genotype.Genotype; @@ -22,7 +21,7 @@ public class ResidualQuality implements VariantAnnotation{ public boolean useZeroQualityReads() { return true; } // for robustness - public Pair annotate( ReferenceContext ref, ReadBackedPileup p, Variation variation, List genotypes) { + public String annotate( ReferenceContext ref, ReadBackedPileup p, Variation variation, List genotypes) { Character snp = getSNPChar(ref, genotypes); if ( snp == null ) { @@ -35,7 +34,7 @@ public class ResidualQuality implements VariantAnnotation{ return null; } - return new Pair(KEY_NAME, String.format("%f", logResidQual )); + return String.format("%f", logResidQual); } public String getKeyName() { return KEY_NAME; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java index 15f2c2aeb..93b854733 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkew.java @@ -30,7 +30,7 @@ public class SecondBaseSkew implements VariantAnnotation { public String getDescription() { return KEY_NAME + ",1,Float,\"Chi-square Secondary Base Skew\""; } - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { if ( variation.isSNP() && variation.isBiallelic() ) { char snp = variation.getAlternativeBaseForSNP(); // try { @@ -50,7 +50,7 @@ public class SecondBaseSkew implements VariantAnnotation { // System.out.println("p_transformed="+p_transformed+" e_transformed="+expected_transformed+" variantDepth="+depthProp.getFirst()); // System.out.println("Proportion variant bases with ref 2bb="+depthProp.getSecond()+" Expected="+proportionExpectations[0]); double chi_square = Math.signum(depthProp.getSecond() - proportionExpectations[0])*Math.min(Math.pow(p_transformed - expected_transformed, 2), Double.MAX_VALUE); - return new Pair(KEY_NAME, String.format("%f", chi_square)); + return String.format("%f", chi_square); } } else { return null; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java index 759cf3a51..20c89e188 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java @@ -1,7 +1,6 @@ package org.broadinstitute.sting.gatk.walkers.annotator; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; -import org.broadinstitute.sting.utils.Pair; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.genotype.Genotype; import org.broadinstitute.sting.utils.genotype.Variation; @@ -11,9 +10,9 @@ import java.util.List; public class SpanningDeletions extends StandardVariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes) { int deletions = pileup.getNumberOfDeletions(); - return new Pair(getKeyName(), String.format("%.2f", (double)deletions/(double)pileup.size())); + return String.format("%.2f", (double)deletions/(double)pileup.size()); } public String getKeyName() { return "Dels"; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotation.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotation.java index 51d8c1ab6..55f1324d0 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotation.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotation.java @@ -1,7 +1,6 @@ package org.broadinstitute.sting.gatk.walkers.annotator; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; -import org.broadinstitute.sting.utils.Pair; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.genotype.Genotype; import org.broadinstitute.sting.utils.genotype.Variation; @@ -10,9 +9,16 @@ import java.util.List; public interface VariantAnnotation { - public Pair annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes); + // return the annotation for the given locus data (return null for no annotation) + public String annotate(ReferenceContext ref, ReadBackedPileup pileup, Variation variation, List genotypes); + + // return true if you want to use a context with mapping quality zero reads, false otherwise public boolean useZeroQualityReads(); + + // return the INFO key public String getKeyName(); + + // return the description used for the VCF INFO meta field public String getDescription(); } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java index a629ffac6..b15ce33dc 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java @@ -191,10 +191,9 @@ public class VariantAnnotator extends RodWalker { HashMap results = new HashMap(); for ( VariantAnnotation annotator : annotations) { - Pair annot = annotator.annotate(ref, (annotator.useZeroQualityReads() ? fullPileup : MQ0freePileup), variation, genotypes); + String annot = annotator.annotate(ref, (annotator.useZeroQualityReads() ? fullPileup : MQ0freePileup), variation, genotypes); if ( annot != null ) { - // System.out.println("Annotating: First="+annot.getFirst()+" Second="+annot.getSecond()); - results.put(annot.first, annot.second); + results.put(annotator.getKeyName(), annot); } } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/EMGenotypeCalculationModel.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/EMGenotypeCalculationModel.java index 5000412f9..7be9d92d6 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/EMGenotypeCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/EMGenotypeCalculationModel.java @@ -37,9 +37,9 @@ public abstract class EMGenotypeCalculationModel extends GenotypeCalculationMode double phredScaledConfidence; boolean bestIsRef = false; if ( PofD > PofNull ) { - phredScaledConfidence = -10.0 * Math.log10(PofNull / sum); + phredScaledConfidence = QualityUtils.phredScaleErrorRate(PofNull / sum); } else { - phredScaledConfidence = -10.0 * Math.log10(PofD / sum); + phredScaledConfidence = QualityUtils.phredScaleErrorRate(PofD / sum); bestIsRef = true; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java index bef0cc52c..4d1f04668 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java @@ -280,7 +280,7 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc char base = Character.toLowerCase(altAllele); int baseIndex = BaseUtils.simpleBaseToBaseIndex(altAllele); if ( MathUtils.compareDoubles(PofFs[baseIndex], 0.0) != 0 ) { - double phredScaledConfidence = -10.0 * Math.log10(alleleFrequencyPosteriors[baseIndex][0]); + double phredScaledConfidence = QualityUtils.phredScaleErrorRate(alleleFrequencyPosteriors[baseIndex][0]); if ( Double.isInfinite(phredScaledConfidence) ) { phredScaledConfidence = -10.0 * log10PofDgivenAFi[baseIndex][0]; verboseWriter.println("P(f>0)_" + base + " = 1"); @@ -288,7 +288,7 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc verboseWriter.println("LOD_" + base + " = " + phredScaledConfidence); } else { verboseWriter.println("P(f>0)_" + base + " = " + Math.log10(PofFs[baseIndex])); - verboseWriter.println("Qscore_" + base + " = " + (-10.0 * Math.log10(alleleFrequencyPosteriors[baseIndex][0]))); + verboseWriter.println("Qscore_" + base + " = " + (QualityUtils.phredScaleErrorRate(alleleFrequencyPosteriors[baseIndex][0]))); verboseWriter.println("LOD_" + base + " = " + (Math.log10(PofFs[baseIndex]) - Math.log10(alleleFrequencyPosteriors[baseIndex][0]))); } } @@ -306,7 +306,7 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc // only need to look at the most likely alternate allele int indexOfMax = BaseUtils.simpleBaseToBaseIndex(bestAlternateAllele); - double phredScaledConfidence = -10.0 * Math.log10(alleleFrequencyPosteriors[indexOfMax][0]); + double phredScaledConfidence = QualityUtils.phredScaleErrorRate(alleleFrequencyPosteriors[indexOfMax][0]); if ( Double.isInfinite(phredScaledConfidence) ) phredScaledConfidence = -10.0 * log10PofDgivenAFi[indexOfMax][0]; int bestAFguess = Utils.findIndexOfMaxEntry(alleleFrequencyPosteriors[indexOfMax]); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/PointEstimateGenotypeCalculationModel.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/PointEstimateGenotypeCalculationModel.java index 16b44008c..185af1f98 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/PointEstimateGenotypeCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/PointEstimateGenotypeCalculationModel.java @@ -58,12 +58,12 @@ public class PointEstimateGenotypeCalculationModel extends EMGenotypeCalculation // calculate the phred-scaled confidence score double phredScaledConfidence; if ( GENOTYPE_MODE ) { - phredScaledConfidence = -10.0 * Math.log10(1.0 - posteriors[bestIndex]); + phredScaledConfidence = QualityUtils.phredScaleErrorRate(1.0 - posteriors[bestIndex]); } else { int refIndex = DiploidGenotype.createHomGenotype(ref).ordinal(); bestIsRef = (refIndex == bestIndex); double pError = (bestIsRef ? 1.0 - posteriors[refIndex] : posteriors[refIndex]); - phredScaledConfidence = -10.0 * Math.log10(pError); + phredScaledConfidence = QualityUtils.phredScaleErrorRate(pError); } // are we above the lod threshold for emitting calls (and not in all-bases mode)?