diff --git a/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContextUtils.java b/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContextUtils.java index 3a96b23e2..6a0d30837 100755 --- a/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContextUtils.java +++ b/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContextUtils.java @@ -121,19 +121,23 @@ public class AlignmentContextUtils { * Splits the AlignmentContext into one context per read group * * @param context the original pileup - * @return a Map of ReadGroup to AlignmentContext + * @return a Map of ReadGroup to AlignmentContext, or an empty map if context has no base pileup * **/ public static Map splitContextByReadGroup(AlignmentContext context, Collection readGroups) { - HashMap contexts = new HashMap(); + if ( ! context.hasBasePileup() ) { + return Collections.emptyMap(); + } else { + HashMap contexts = new HashMap(); - for (SAMReadGroupRecord rg : readGroups) { - ReadBackedPileup rgPileup = context.getBasePileup().getPileupForReadGroup(rg.getReadGroupId()); - if ( rgPileup != null ) // there we some reads for RG - contexts.put(rg, new AlignmentContext(context.getLocation(), rgPileup)); + for (SAMReadGroupRecord rg : readGroups) { + ReadBackedPileup rgPileup = context.getBasePileup().getPileupForReadGroup(rg.getReadGroupId()); + if ( rgPileup != null ) // there we some reads for RG + contexts.put(rg, new AlignmentContext(context.getLocation(), rgPileup)); + } + + return contexts; } - - return contexts; } public static Map splitContextBySampleName(ReadBackedPileup pileup, String assumedSingleSample) { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java index a80508715..e60ace0cb 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java @@ -314,7 +314,7 @@ public class SelectVariants extends RodWalker { genotypes.add(genotypePair.getValue()); } - VariantContext sub = vc.subContextFromGenotypes(genotypes); + VariantContext sub = vc.subContextFromGenotypes(genotypes, vc.getAlleles()); HashMap attributes = new HashMap(sub.getAttributes()); diff --git a/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java b/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java index 23fd43b01..66a7b4d9b 100755 --- a/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java +++ b/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java @@ -31,7 +31,7 @@ public class SelectVariantsIntegrationTest extends WalkerTest { WalkerTestSpec spec = new WalkerTestSpec( baseTestString(" -sn A -sn B -sn C -B:variant,VCF3 " + testfile + " -NO_HEADER"), 1, - Arrays.asList("fe6963e5fea1d3854634dcf3defd7b92") + Arrays.asList("5ba7536a0819421b330350a160e4261a") ); executeTest("testRepeatedLineSelection--" + testfile, spec);