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 a473f7c92..ea220d926 100755 --- a/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/VariantContextUtils.java +++ b/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/VariantContextUtils.java @@ -795,7 +795,7 @@ public class VariantContextUtils { String mergedName = VariantContextUtils.mergeVariantContextNames(vc1.getName(), vc2.getName()); double mergedNegLog10PError = Math.max(vc1.getNegLog10PError(), vc2.getNegLog10PError()); Set mergedFilters = new HashSet(); // Since vc1 and vc2 were unfiltered, the merged record remains unfiltered - Map mergedAttribs = VariantContextUtils.mergeVariantContextAttributes(vc1.getAttributes(), vc2.getAttributes(), allMergedAlleles); + Map mergedAttribs = VariantContextUtils.mergeVariantContextAttributes(vc1.getAttributes(), vc2.getAttributes()); if (mergedAttribs == null) return null; @@ -815,7 +815,7 @@ public class VariantContextUtils { return name1 + "_" + name2; } - private static Map mergeVariantContextAttributes(Map attribs1, Map attribs2, Set allMergedAlleles) { + private static Map mergeVariantContextAttributes(Map attribs1, Map attribs2) { Map mergedAttribs = new HashMap(); List> attribsList = new LinkedList>(); @@ -829,6 +829,8 @@ public class VariantContextUtils { Boolean val = getBooleanAttribute(attribs, orAttrib); if (val != null) attribVal = (attribVal || val); + if (attribVal) // already true, so no reason to continue: + break; } mergedAttribs.put(orAttrib, attribVal); } @@ -841,7 +843,7 @@ public class VariantContextUtils { if (iDVal == null) iDVal = val; else - iDVal += ";" + val; + iDVal += VCFConstants.ID_FIELD_SEPARATOR + val; } } if (iDVal != null)