diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantSummary.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantSummary.java index b3f3630bd..3c7c6f00c 100644 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantSummary.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantSummary.java @@ -46,6 +46,7 @@ import java.util.*; public class VariantSummary extends VariantEvaluator implements StandardEval { final protected static Logger logger = Logger.getLogger(VariantSummary.class); + /** Indels with size greater than this value are tallied in the CNV column */ private final static int MAX_INDEL_LENGTH = 50; private final static double MIN_CNV_OVERLAP = 0.5; private VariantEvalWalker walker; @@ -196,14 +197,16 @@ public class VariantSummary extends VariantEvaluator implements StandardEval { } private final boolean overlapsKnownCNV(VariantContext cnv) { - final GenomeLoc loc = walker.getGenomeLocParser().createGenomeLoc(cnv, true); - IntervalTree intervalTree = knownCNVs.get(loc.getContig()); + if ( knownCNVs != null ) { + final GenomeLoc loc = walker.getGenomeLocParser().createGenomeLoc(cnv, true); + IntervalTree intervalTree = knownCNVs.get(loc.getContig()); - final Iterator> nodeIt = intervalTree.overlappers(loc.getStart(), loc.getStop()); - while ( nodeIt.hasNext() ) { - final double overlapP = loc.reciprocialOverlapFraction(nodeIt.next().getValue()); - if ( overlapP > MIN_CNV_OVERLAP ) - return true; + final Iterator> nodeIt = intervalTree.overlappers(loc.getStart(), loc.getStop()); + while ( nodeIt.hasNext() ) { + final double overlapP = loc.reciprocialOverlapFraction(nodeIt.next().getValue()); + if ( overlapP > MIN_CNV_OVERLAP ) + return true; + } } return false; diff --git a/public/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalIntegrationTest.java b/public/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalIntegrationTest.java index b3555b145..5c3a43c96 100755 --- a/public/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalIntegrationTest.java +++ b/public/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalIntegrationTest.java @@ -450,4 +450,21 @@ public class VariantEvalIntegrationTest extends WalkerTest { ); executeTest("testIntervalStrat", spec); } + + @Test + public void testModernVCFWithLargeIndels() { + WalkerTestSpec spec = new WalkerTestSpec( + buildCommandLine( + "-T VariantEval", + "-R " + b37KGReference, + "-eval " + validationDataLocation + "/NA12878.HiSeq.WGS.b37_decoy.indel.recalibrated.vcf", + "-L 20", + "-D " + b37dbSNP132, + "-o %s" + ), + 1, + Arrays.asList("a6f8b32fa732632da13dfe3ddcc73cef") + ); + executeTest("testModernVCFWithLargeIndels", spec); + } }