diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java index a813192df..8e091ba84 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java @@ -126,6 +126,10 @@ public class VariantEvalWalker extends RodWalker implements Tr @Argument(shortName="selectName", doc="Names to use for the list of stratifications (must be a 1-to-1 mapping)", required=false) protected ArrayList SELECT_NAMES = new ArrayList(); + @Hidden + @Argument(shortName="summary", doc="One or more JEXL staments to log after evaluating the data", required=false) + protected ArrayList SUMMARY_EXPS = new ArrayList(); + @Hidden @Argument(shortName="validate", doc="One or more JEXL validations to use after evaluating the data", required=false) protected ArrayList VALIDATE_EXPS = new ArrayList(); @@ -483,12 +487,12 @@ public class VariantEvalWalker extends RodWalker implements Tr private Set instantiateEvalationsSet() { Set evals = new HashSet(); Object[] args = new Object[]{this}; - Class[] argTypes = new Class[]{this.getClass()}; + Class[] argTypes = new Class[]{VariantEvalWalker.class}; - for ( Class c : evaluationClasses ) { + for ( Class c : evaluationClasses ) { try { - Constructor constructor = c.getConstructor(argTypes); - VariantEvaluator eval = (VariantEvaluator)constructor.newInstance(args); + Constructor constructor = c.getConstructor(argTypes); + VariantEvaluator eval = constructor.newInstance(args); evals.add(eval); } catch (Exception e) { throw new DynamicClassResolutionException(c, e); @@ -804,7 +808,7 @@ public class VariantEvalWalker extends RodWalker implements Tr * Validates the JEXL expressions and throws an exception if they do not all return true. */ private void validateContext() { - if (VALIDATE_EXPS.size() == 0) + if (SUMMARY_EXPS.size() + VALIDATE_EXPS.size() == 0) return; JexlContext jc = new MapContext(); @@ -833,6 +837,11 @@ public class VariantEvalWalker extends RodWalker implements Tr JexlEngine jexl = new JexlEngine(uberspect, null, null, null); + for (String expression: SUMMARY_EXPS) { + Object jexlResult = jexl.createExpression(expression).evaluate(jc); + logger.info("Summary: " + expression + " = " + jexlResult); + } + List failedExpressions = new ArrayList(); for (String expression: VALIDATE_EXPS) { // ex: evalYRI.compYRI.all.called.novel.titv.tiTvRatio > 1.0 diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ValidationGenotyper.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ValidationGenotyper.java index eb04848de..d06276d4a 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ValidationGenotyper.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ValidationGenotyper.java @@ -23,7 +23,7 @@ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package org.broadinstitute.sting.playground.gatk.walkers.validationgenotyper; +package org.broadinstitute.sting.playground.gatk.walkers; import org.broad.tribble.util.variantcontext.VariantContext; import org.broadinstitute.sting.commandline.Output;