From 76e4100d89b8a11b1eaaeccc1406d0b3d08c6dbe Mon Sep 17 00:00:00 2001 From: Mark DePristo Date: Wed, 4 Apr 2012 18:36:36 -0400 Subject: [PATCH] By default, IndelLengthHistogram won't collapse large events into the last bin, as it produces weird looking plots -- Updated integration tests as well --- .../evaluators/IndelLengthHistogram.java | 15 +++++++++++---- .../varianteval/VariantEvalIntegrationTest.java | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelLengthHistogram.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelLengthHistogram.java index 82028f642..0b17c7adb 100644 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelLengthHistogram.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelLengthHistogram.java @@ -53,6 +53,7 @@ public class IndelLengthHistogram extends VariantEvaluator implements StandardEv public TreeMap results; public final static int MAX_SIZE_FOR_HISTOGRAM = 10; + private final static boolean INCLUDE_LONG_EVENTS_AT_MAX_SIZE = false; public IndelLengthHistogram() { initializeCounts(MAX_SIZE_FOR_HISTOGRAM); @@ -99,16 +100,22 @@ public class IndelLengthHistogram extends VariantEvaluator implements StandardEv /** * Update the histogram with the implied length of the indel allele between ref and alt (alt.len - ref.len). * - * If this size is outside of MAX_SIZE_FOR_HISTOGRAM, the size is capped to MAX_SIZE_FOR_HISTOGRAM + * If this size is outside of MAX_SIZE_FOR_HISTOGRAM, the size is capped to MAX_SIZE_FOR_HISTOGRAM, + * if INCLUDE_LONG_EVENTS_AT_MAX_SIZE is set. * * @param ref * @param alt */ public void updateLengthHistogram(final Allele ref, final Allele alt) { int len = alt.length() - ref.length(); - if ( len > MAX_SIZE_FOR_HISTOGRAM ) len = MAX_SIZE_FOR_HISTOGRAM; - if ( len < -MAX_SIZE_FOR_HISTOGRAM ) len = -MAX_SIZE_FOR_HISTOGRAM; - + if ( INCLUDE_LONG_EVENTS_AT_MAX_SIZE ) { + if ( len > MAX_SIZE_FOR_HISTOGRAM ) len = MAX_SIZE_FOR_HISTOGRAM; + if ( len < -MAX_SIZE_FOR_HISTOGRAM ) len = -MAX_SIZE_FOR_HISTOGRAM; + } + + if ( Math.abs(len) > MAX_SIZE_FOR_HISTOGRAM ) + return; + nIndels++; counts.put(len, counts.get(len) + 1); } 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 d85b9e625..d67fc61e2 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 @@ -488,7 +488,7 @@ public class VariantEvalIntegrationTest extends WalkerTest { "-o %s" ), 1, - Arrays.asList("7c01565531cf82c8c03cf042903b96cf") + Arrays.asList("41a37636868a838a632559949c5216cf") ); executeTest("testModernVCFWithLargeIndels", spec); }