From 8439f0aa61cda79677f7048ac9a8b5e21cfd5fb9 Mon Sep 17 00:00:00 2001 From: fromer Date: Mon, 1 Nov 2010 17:51:35 +0000 Subject: [PATCH] Check for VCFConstants.MISSING_VALUE_v4 when retrieving INFO fields and consider such values as non-existent git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4603 348d0f76-0448-11de-a6fe-93d51630548a --- .../variantcontext/VariantContextUtils.java | 35 +++++++++++++++---- .../phasing/ReadBackedPhasingWalker.java | 3 ++ .../varianteval/GenotypePhasingEvaluator.java | 8 ++--- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/VariantContextUtils.java b/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/VariantContextUtils.java index cfc67a7cf..b8610da56 100755 --- a/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/VariantContextUtils.java +++ b/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/VariantContextUtils.java @@ -934,20 +934,43 @@ public class VariantContextUtils { return mergedAttribs; } - private static Boolean getBooleanAttribute(Map attribs, String attribName) { + public static Boolean getBooleanAttribute(Map attribs, String attribName) { Object val = attribs.get(attribName); - if (val == null) + if (val == null || val.equals(VCFConstants.MISSING_VALUE_v4)) return null; - return new Boolean(val.toString()); + try { + return new Boolean(val.toString()); + } + catch (Exception e) {// IGNORE unparseable data + return null; + } } - private static String getStringAttribute(Map attribs, String attribName) { + public static String getStringAttribute(Map attribs, String attribName) { Object val = attribs.get(attribName); - if (val == null) + if (val == null || val.equals(VCFConstants.MISSING_VALUE_v4)) return null; - return val.toString(); + try { + return val.toString(); + } + catch (Exception e) {// IGNORE unparseable data + return null; + } + } + + public static Double getDoubleAttribute(Map attribs, String attribName) { + Object val = attribs.get(attribName); + if (val == null || val.equals(VCFConstants.MISSING_VALUE_v4)) + return null; + + try { + return new Double(val.toString()); + } + catch (Exception e) {// IGNORE unparseable data + return null; + } } private static boolean mergeIntoMNPvalidationCheck(VariantContext vc1, VariantContext vc2) { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java index 8416d6778..2b3180aa0 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java @@ -933,6 +933,8 @@ public class ReadBackedPhasingWalker extends RodWalker finalList = processQueue(result, true); // process all remaining data writeVcList(finalList); writer.close(); @@ -940,6 +942,7 @@ public class ReadBackedPhasingWalker extends RodWalker