From 2838629724c686f6d2d910218733c5583cb3bea4 Mon Sep 17 00:00:00 2001 From: ebanks Date: Wed, 2 Dec 2009 16:25:32 +0000 Subject: [PATCH] -VCF writer now checks whether the allele frequency has been set before trying to write it out. -Renamed methods to be more consistent. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2214 348d0f76-0448-11de-a6fe-93d51630548a --- .../walkers/genotyper/EMGenotypeCalculationModel.java | 2 +- .../genotyper/JointEstimateGenotypeCalculationModel.java | 2 +- .../sting/utils/genotype/GenotypeLocusData.java | 8 +++++++- .../sting/utils/genotype/vcf/VCFGenotypeLocusData.java | 8 ++++++-- .../utils/genotype/vcf/VCFGenotypeWriterAdapter.java | 3 ++- 5 files changed, 17 insertions(+), 6 deletions(-) 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 4e3ea057c..5000412f9 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/EMGenotypeCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/EMGenotypeCalculationModel.java @@ -78,7 +78,7 @@ public abstract class EMGenotypeCalculationModel extends GenotypeCalculationMode ((SLODBacked)locusdata).setSLOD(strandScore); } - locusdata.setAlleleFrequency(overall.getMAF()); + locusdata.setNonRefAlleleFrequency(overall.getMAF()); } return new Pair, GenotypeLocusData>(genotypeCallsFromGenotypeLikelihoods(overall, ref, contexts), locusdata); } 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 9a7aec7ee..bef0cc52c 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java @@ -323,7 +323,7 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc GenotypeLocusData locusdata = GenotypeWriterFactory.createSupportedGenotypeLocusData(OUTPUT_FORMAT, ref, loc, VARIANT_TYPE.SNP); if ( locusdata != null ) { locusdata.addAlternateAllele(bestAlternateAllele.toString()); - locusdata.setAlleleFrequency((double)bestAFguess / (double)(frequencyEstimationPoints-1)); + locusdata.setNonRefAlleleFrequency((double)bestAFguess / (double)(frequencyEstimationPoints-1)); if ( locusdata instanceof ConfidenceBacked ) { ((ConfidenceBacked)locusdata).setConfidence(phredScaledConfidence); } diff --git a/java/src/org/broadinstitute/sting/utils/genotype/GenotypeLocusData.java b/java/src/org/broadinstitute/sting/utils/genotype/GenotypeLocusData.java index cf069fc41..edd0259a7 100755 --- a/java/src/org/broadinstitute/sting/utils/genotype/GenotypeLocusData.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/GenotypeLocusData.java @@ -16,10 +16,16 @@ public interface GenotypeLocusData extends Variation { */ public void addAlternateAllele(String alt); + /** + * + * @return true if the allele frequency has been set + */ + public boolean hasNonRefAlleleFrequency(); + /** * * @param frequency the allele frequency for this genotype */ - public void setAlleleFrequency(double frequency); + public void setNonRefAlleleFrequency(double frequency); } \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeLocusData.java b/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeLocusData.java index 939876a35..19c9eeb30 100755 --- a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeLocusData.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeLocusData.java @@ -21,7 +21,7 @@ public class VCFGenotypeLocusData implements GenotypeLocusData, ConfidenceBacked private Double mSLOD = null; // the allele frequency field - private double mAlleleFrequency = 0.0; + private double mAlleleFrequency = -1.0; // the location private GenomeLoc mLoc; @@ -97,6 +97,10 @@ public class VCFGenotypeLocusData implements GenotypeLocusData, ConfidenceBacked return mType; } + public boolean hasNonRefAlleleFrequency() { + return mAlleleFrequency >= 0.0; + } + public double getNonRefAlleleFrequency() { return mAlleleFrequency; } @@ -171,7 +175,7 @@ public class VCFGenotypeLocusData implements GenotypeLocusData, ConfidenceBacked * * @param frequency the allele frequency for this genotype */ - public void setAlleleFrequency(double frequency) { + public void setNonRefAlleleFrequency(double frequency) { mAlleleFrequency = frequency; } diff --git a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeWriterAdapter.java b/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeWriterAdapter.java index 592793c3e..519385f78 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeWriterAdapter.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeWriterAdapter.java @@ -190,7 +190,8 @@ public class VCFGenotypeWriterAdapter implements GenotypeWriter { if ( locusdata != null ) { if ( locusdata.getSLOD() != null ) infoFields.put("SB", String.format("%.2f", locusdata.getSLOD())); - infoFields.put("AF", String.format("%.2f", locusdata.getNonRefAlleleFrequency())); + if ( locusdata.hasNonRefAlleleFrequency() ) + infoFields.put("AF", String.format("%.2f", locusdata.getNonRefAlleleFrequency())); Map otherFields = locusdata.getFields(); if ( otherFields != null ) { infoFields.putAll(otherFields);