From 70f8ab6f89b10f2c6c06c21697113a805367d906 Mon Sep 17 00:00:00 2001 From: rpoplin Date: Tue, 3 May 2011 15:22:50 +0000 Subject: [PATCH] Adding AF bin stratification for VariantEval. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5728 348d0f76-0448-11de-a6fe-93d51630548a --- .../stratifications/AlleleFrequency.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleFrequency.java diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleFrequency.java b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleFrequency.java new file mode 100755 index 000000000..0daad99dc --- /dev/null +++ b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleFrequency.java @@ -0,0 +1,41 @@ +package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications; + +import org.broad.tribble.util.variantcontext.VariantContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; +import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; +import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp; +import org.broadinstitute.sting.utils.MathUtils; + +import java.util.ArrayList; +import java.util.Set; + +public class AlleleFrequency extends VariantStratifier { + // needs to know the variant context + private ArrayList states; + + @Override + public void initialize(Set jexlExpressions, Set compNames, Set knownNames, Set evalNames, Set sampleNames, Set contigNames) { + states = new ArrayList(); + for( double a = 0.000; a <= 1.005; a += 0.005 ) { + states.add(String.format("%.3f", a)); + } + } + + public ArrayList getAllStates() { + return states; + } + + public ArrayList getRelevantStates(ReferenceContext ref, RefMetaDataTracker tracker, VariantContext comp, String compName, VariantContext eval, String evalName, String sampleName) { + ArrayList relevantStates = new ArrayList(); + + if (eval != null) { + try { + relevantStates.add(String.format("%.3f", (5.0 * MathUtils.round(eval.getAttributeAsDouble("AF") / 5.0, 3)))); + } catch (Exception e) { + return relevantStates; + } + } + + return relevantStates; + } +}