From 01e04992f8a94f84776864e747e889ae6462ce31 Mon Sep 17 00:00:00 2001 From: Mark DePristo Date: Mon, 2 Jul 2012 11:38:59 -0400 Subject: [PATCH] Fixed compatibilities in AbstractVCFCodec that resulted in key=; being parsed as written as key; in VCF output --- .../sting/utils/codecs/vcf/AbstractVCFCodec.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/AbstractVCFCodec.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/AbstractVCFCodec.java index 1d5869349..5ad939e76 100755 --- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/AbstractVCFCodec.java +++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/AbstractVCFCodec.java @@ -363,10 +363,10 @@ public abstract class AbstractVCFCodec extends AsciiFeatureCodec int eqI = infoFieldArray[i].indexOf("="); if ( eqI != -1 ) { key = infoFieldArray[i].substring(0, eqI); - String str = infoFieldArray[i].substring(eqI+1); + String valueString = infoFieldArray[i].substring(eqI+1); // split on the INFO field separator - int infoValueSplitSize = ParsingUtils.split(str, infoValueArray, VCFConstants.INFO_FIELD_ARRAY_SEPARATOR_CHAR, false); + int infoValueSplitSize = ParsingUtils.split(valueString, infoValueArray, VCFConstants.INFO_FIELD_ARRAY_SEPARATOR_CHAR, false); if ( infoValueSplitSize == 1 ) { value = infoValueArray[0]; final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key); @@ -396,6 +396,9 @@ public abstract class AbstractVCFCodec extends AsciiFeatureCodec } } + // this line ensures that key/value pairs that look like key=; are parsed correctly as MISSING + if ( "".equals(value) ) value = VCFConstants.MISSING_VALUE_v4; + attributes.put(key, value); } }