From 124b7a2a581786aa062999bee3c656cb06b2edfb Mon Sep 17 00:00:00 2001 From: rpoplin Date: Tue, 20 Apr 2010 16:20:25 +0000 Subject: [PATCH] Moved ApplyVariantClusters over to VariationContext git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3207 348d0f76-0448-11de-a6fe-93d51630548a --- .../contexts/variantcontext/Genotype.java | 2 +- .../ApplyVariantClustersWalker.java | 52 +++++++++---------- .../VariantGaussianMixtureModel.java | 9 ++-- 3 files changed, 31 insertions(+), 32 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/Genotype.java b/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/Genotype.java index 224ec6493..b0e7382e1 100755 --- a/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/Genotype.java +++ b/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/Genotype.java @@ -5,7 +5,7 @@ import org.broadinstitute.sting.utils.Utils; import java.util.*; /** - * This class emcompasses all the basic information about a genotype. It is immutable. + * This class encompasses all the basic information about a genotype. It is immutable. * * @author Mark DePristo */ diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variantoptimizer/ApplyVariantClustersWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variantoptimizer/ApplyVariantClustersWalker.java index a3c78ab01..161be9e97 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variantoptimizer/ApplyVariantClustersWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variantoptimizer/ApplyVariantClustersWalker.java @@ -27,11 +27,12 @@ package org.broadinstitute.sting.playground.gatk.walkers.variantoptimizer; import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; +import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContext; import org.broadinstitute.sting.gatk.datasources.simpleDataSources.ReferenceOrderedDataSource; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.RodVCF; +import org.broadinstitute.sting.gatk.refdata.VariantContextAdaptors; import org.broadinstitute.sting.gatk.refdata.tracks.RMDTrack; -import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature; import org.broadinstitute.sting.gatk.walkers.RodWalker; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.utils.collections.ExpandingArrayList; @@ -85,6 +86,7 @@ public class ApplyVariantClustersWalker extends RodWalker ignoreInputFilterSet = null; + private final ArrayList ALLOWED_FORMAT_FIELDS = new ArrayList(); //--------------------------------------------------------------------------------------------------------------- @@ -111,6 +113,11 @@ public class ApplyVariantClustersWalker extends RodWalker hInfo = new HashSet(); hInfo.addAll(VCFUtils.getHeaderFields(getToolkit())); @@ -145,29 +152,17 @@ public class ApplyVariantClustersWalker extends RodWalker numHom; //vc.getHetCount() > vc.getHomVarCount(); // BUGBUG: what to do here for multi sample calls? + variantDatum.isTransition = vc.getSNPSubstitutionType().compareTo(BaseUtils.BaseSubstitutionType.TRANSITION) == 0; + variantDatum.isKnown = !vc.getAttribute("ID").equals("."); + variantDatum.isHet = vc.getHetCount() > vc.getHomVarCount(); // BUGBUG: what to do here for multi sample calls? - final double pTrue = theModel.evaluateVariant( rodVCF.getInfoValues(), rodVCF.getQual(), variantDatum.isHet ); - final double recalQual = QualityUtils.phredScaleErrorRate( Math.max( 1.0 - pTrue, 0.000000001) ); + final double pTrue = theModel.evaluateVariant( vc.getAttributes(), vc.getPhredScaledQual(), variantDatum.isHet ); + final double recalQual = QualityUtils.phredScaleErrorRate( Math.max(1.0 - pTrue, 0.000000001) ); if( variantDatum.isKnown && KNOWN_VAR_QUAL_PRIOR > 0.1 ) { variantDatum.qual = 0.5 * recalQual + 0.5 * KNOWN_VAR_QUAL_PRIOR; @@ -176,14 +171,17 @@ public class ApplyVariantClustersWalker extends RodWalker annotationMap, final double qualityScore, final boolean isHet ) { + public final double evaluateVariant( final Map annotationMap, final double qualityScore, final boolean isHet ) { final double[] pVarInCluster = new double[numGaussians]; final double[] annotations = new double[dataManager.numAnnotations]; for( int jjj = 0; jjj < dataManager.numAnnotations; jjj++ ) { double value = 0.0; - if( dataManager.annotationKeys.get(jjj).equals("QUAL") ) { + final String annotationKey = dataManager.annotationKeys.get(jjj); + if( annotationKey.equals("QUAL") ) { value = qualityScore; } else { try { - final String stringValue = annotationMap.get( dataManager.annotationKeys.get(jjj) ); + final Object stringValue = annotationMap.get( annotationKey ); if( stringValue != null ) { - value = Double.parseDouble( stringValue ); + value = Double.parseDouble( stringValue.toString() ); if( Double.isInfinite(value) ) { value = ( value > 0 ? 1.0 : -1.0 ) * INFINITE_ANNOTATION_VALUE; }