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 1f0d732e5..f901a8f4e 100755 --- a/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/VariantContextUtils.java +++ b/java/src/org/broadinstitute/sting/gatk/contexts/variantcontext/VariantContextUtils.java @@ -293,7 +293,8 @@ public class VariantContextUtils { Map d = mvc.getAttributes(); mvc.clearAttributes(); for ( String key : keysToPreserve ) - mvc.putAttribute(key, d.get(key)); + if ( d.containsKey(key) ) + mvc.putAttribute(key, d.get(key)); } Collection gs = mvc.getGenotypes().values(); @@ -301,6 +302,9 @@ public class VariantContextUtils { for ( Genotype g : gs ) { MutableGenotype mg = new MutableGenotype(g); mg.clearAttributes(); + for ( String key : keysToPreserve ) + if ( g.hasAttribute(key) ) + mg.putAttribute(key, g.getAttribute(key)); mvc.addGenotype(mg); } 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 c329e4bfc..edb6ec6e8 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java @@ -241,13 +241,14 @@ public class ReadBackedPhasingWalker extends RodWalker KEYS_TO_KEEP_IN_REDUCED_VCF = new HashSet(Arrays.asList("PQ")); private VariantContext reduceVCToSamples(VariantContext vc, List samplesToPhase) { // for ( String sample : samplesToPhase ) // logger.debug(String.format(" Sample %s has genotype %s, het = %s", sample, vc.getGenotype(sample), vc.getGenotype(sample).isHet() )); VariantContext subvc = vc.subContextFromGenotypes(vc.getGenotypes(samplesToPhase).values()); // logger.debug("original VC = " + vc); // logger.debug("sub VC = " + subvc); - return subvc; + return VariantContextUtils.pruneVariantContext(subvc, KEYS_TO_KEEP_IN_REDUCED_VCF ); } private List processQueue(PhasingStats phaseStats, boolean processAll) {