diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java index 528a28d9e..7272b36c8 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java @@ -116,6 +116,7 @@ public class VariantEvalWalker extends RodWalker { @Argument(shortName="known", doc="Name of ROD bindings containing variant sites that should be treated as known when splitting eval rods into known and novel subsets", required=false) protected String[] KNOWN_NAMES = {rodDbSNP.STANDARD_DBSNP_TRACK_NAME}; + private Set uniqueKnownNames = new HashSet(); @Argument(shortName="sample", doc="Derive eval and comp contexts using only these sample genotypes, when genotypes are available in the original context", required=false) protected String[] SAMPLES = {}; @@ -260,13 +261,13 @@ public class VariantEvalWalker extends RodWalker { for ( ReferenceOrderedDataSource d : this.getToolkit().getRodDataSources() ) { if ( d.getName().startsWith("eval") ) { evalNames.add(d.getName()); - } else if ( d.getName().startsWith(rodDbSNP.STANDARD_DBSNP_TRACK_NAME) ) { + } else if ( d.getName().startsWith("comp") ) { + compNames.add(d.getName()); + } else if ( d.getName().startsWith(rodDbSNP.STANDARD_DBSNP_TRACK_NAME) || d.getName().startsWith("hapmap") ) { // it feels like overkill (i.e. too much output) to include the dbsnp track as // truth given that it's also used in the known/novel stratification. If this // becomes useful for some reason, uncomment this line... - //compNames.add(d.getName()); - } else if ( d.getName().startsWith("hapmap") || d.getName().startsWith("comp") ) { - compNames.add(d.getName()); + uniqueKnownNames.add(d.getName()); } else { logger.info("Not evaluating ROD binding " + d.getName()); } @@ -571,6 +572,7 @@ public class VariantEvalWalker extends RodWalker { if ( tracker != null ) { bindVariantContexts(bindings, evalNames, tracker, context, false); bindVariantContexts(bindings, compNames, tracker, context, true); + bindVariantContexts(bindings, uniqueKnownNames, tracker, context, true); } return bindings; } diff --git a/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalIntegrationTest.java b/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalIntegrationTest.java index 331a48a99..e6b212e0e 100755 --- a/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalIntegrationTest.java +++ b/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalIntegrationTest.java @@ -18,8 +18,8 @@ public class VariantEvalIntegrationTest extends WalkerTest { @Test public void testVESimple() { HashMap expectations = new HashMap(); - expectations.put("-L 1:1-10,000,000", "f44a2c9057a78349e1d3ccec327d3343"); - expectations.put("-L 1:1-10,000,000 -family NA19238+NA19239=NA19240 -MVQ 0", "e8c5107015e5926aa647e274cb58bff6"); + expectations.put("-L 1:1-10,000,000", "5ea9dd109c45c47243f40af759b36d09"); + expectations.put("-L 1:1-10,000,000 -family NA19238+NA19239=NA19240 -MVQ 0", "8b126d445eaec0263d2af6fbfea5ad8b"); for ( Map.Entry entry : expectations.entrySet() ) { String extraArgs = entry.getKey(); @@ -39,8 +39,8 @@ public class VariantEvalIntegrationTest extends WalkerTest { " -B dbsnp_130,dbSNP," + GATKDataLocation + "dbsnp_130_b36.rod" + " -B comp_hapmap,VCF," + validationDataLocation + "CEU_hapmap_nogt_23.vcf"; - expectations.put("", "49a723e6e77a45a4fb0a46890d66806b"); - expectations.put(" -known comp_hapmap -known dbsnp", "11e2a3ae77b3ce4b659baa832388f920"); + expectations.put("", "1bc8126366117045bb08872e098502af"); + expectations.put(" -known comp_hapmap -known dbsnp", "1bc8126366117045bb08872e098502af"); expectations.put(" -known comp_hapmap", "11e2a3ae77b3ce4b659baa832388f920"); for ( Map.Entry entry : expectations.entrySet() ) { @@ -59,7 +59,7 @@ public class VariantEvalIntegrationTest extends WalkerTest { String extraArgs = "-L 1:1-10,000,000 -family NA19238+NA19239=NA19240 -MVQ 30"; WalkerTestSpec spec = new WalkerTestSpec( root + " " + extraArgs + " -o %s -outputVCF %s", 2, - Arrays.asList("d8b14bc334a8c4f3cd5462839f5a3ef2", "a3ce1d70d8ae3874807e9d61994d42af")); + Arrays.asList("cd4813cc4bcce0f8f81d42bcde11f7ce", "a3ce1d70d8ae3874807e9d61994d42af")); executeTest("testVEWriteVCF", spec); } }