From 3ad3e310ffff248b36d436ed37522c781a64950a Mon Sep 17 00:00:00 2001 From: Yossi Farjoun Date: Tue, 20 Dec 2016 11:10:23 -0500 Subject: [PATCH] - removed a O(maxCoverage * nLoci) sanity test which significantly increases run-time for CollectWgsMetrics when the maxCoverage is large, as it is by default for CollectRawWgsMetrics. --- src/main/java/picard/analysis/CollectWgsMetrics.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/picard/analysis/CollectWgsMetrics.java b/src/main/java/picard/analysis/CollectWgsMetrics.java index a03f65ac2..a52dc42ef 100644 --- a/src/main/java/picard/analysis/CollectWgsMetrics.java +++ b/src/main/java/picard/analysis/CollectWgsMetrics.java @@ -475,16 +475,17 @@ protected int doWork() { // add to the collector collector.addInfo(info); - // check that we added the same number of bases to the raw coverage histogram and the base quality histograms - if (Arrays.stream(collector.unfilteredBaseQHistogramArray).sum() != LongStream.rangeClosed(0, collector.coverageCap).map(i -> (i * collector.unfilteredDepthHistogramArray[(int)i])).sum()) { - throw new PicardException("updated coverage and baseQ distributions unequally"); - } - // Record progress and perhaps stop progress.record(info.getSequenceName(), info.getPosition()); if (usingStopAfter && ++counter > stopAfter) break; } + // check that we added the same number of bases to the raw coverage histogram and the base quality histograms + final long sumBaseQ= Arrays.stream(collector.unfilteredBaseQHistogramArray).sum(); + final long sumDepthHisto = LongStream.rangeClosed(0, collector.coverageCap).map(i -> (i * collector.unfilteredDepthHistogramArray[(int) i])).sum(); + if (sumBaseQ != sumDepthHisto) { + log.error("Coverage and baseQ distributions contain different amount of bases!"); + } final MetricsFile out = getMetricsFile(); collector.addToMetricsFile(out, INCLUDE_BQ_HISTOGRAM, dupeFilter, mapqFilter, pairFilter);