From a81a1bdbb47e9a4a7950ad4657da3e1749738596 Mon Sep 17 00:00:00 2001 From: depristo Date: Mon, 2 Mar 2009 22:19:39 +0000 Subject: [PATCH] Minor bug fixed to progress meter git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@22 348d0f76-0448-11de-a6fe-93d51630548a --- .../mit/broad/sting/utils/FileProgressTracker.java | 11 ++++++++--- java/src/edu/mit/broad/sting/utils/Utils.java | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/java/src/edu/mit/broad/sting/utils/FileProgressTracker.java b/java/src/edu/mit/broad/sting/utils/FileProgressTracker.java index 6d5e8a15a..76890ffe6 100644 --- a/java/src/edu/mit/broad/sting/utils/FileProgressTracker.java +++ b/java/src/edu/mit/broad/sting/utils/FileProgressTracker.java @@ -102,7 +102,7 @@ public class FileProgressTracker implements Iterator { } public int averageRecordSize() { - return Math.round((int)Utils.average(recordSizes(), Math.min(historyI - 1, history.size())) / samplingFrequency); + return Math.round((int)Utils.average(recordSizes(), Math.min(historyI - 1, historySize)) / samplingFrequency); } public double processingRate() { @@ -110,7 +110,7 @@ public class FileProgressTracker implements Iterator { } public long estRecordsInFile() { - return (long)(getFileSize() / averageRecordSize()); + return (long)(getFileSize() / Math.max(averageRecordSize(),1)); } public double estFractionProgressThroughFile() { @@ -128,6 +128,7 @@ public class FileProgressTracker implements Iterator { public void printStatus() { System.out.printf("FileProgressTracker:%n"); System.out.printf(" -> File size is: %d%n", getFileSize()); + System.out.printf(" -> Sampling depth: %d%n", historyI); System.out.printf(" -> File position: %d%n", getPosition()); System.out.printf(" -> Number of records processed: %d%n", nRecordsProcessed()); System.out.printf(" -> Average record size is %d%n", averageRecordSize()); @@ -140,6 +141,7 @@ public class FileProgressTracker implements Iterator { } public String progressMeter() { + //printStatus(); return String.format("Est. %.2f%% completed, time remaining (%.2f hrs / %.2f min) of (%.2f hrs / %.2f min) total", estFractionProgressThroughFile() * 100.0, estTimeTotal() / (60*60), estTimeTotal() / (60), @@ -149,7 +151,10 @@ public class FileProgressTracker implements Iterator { public ArrayList recordSizes() { ArrayList sizes = new ArrayList(history); for ( int i = 0; i < historySize; i++ ) { - sizes.set(i, history.get(historyIndex(i)) - history.get(historyIndex(i-1))); + long val = 0; + if ( history.get(historyIndex(i)) >= history.get(historyIndex(i-1) ) ) + val = history.get(historyIndex(i)) - history.get(historyIndex(i-1)); + sizes.set(i, val); } // for ( long size : sizes ) { diff --git a/java/src/edu/mit/broad/sting/utils/Utils.java b/java/src/edu/mit/broad/sting/utils/Utils.java index b85793cce..da378e8d2 100755 --- a/java/src/edu/mit/broad/sting/utils/Utils.java +++ b/java/src/edu/mit/broad/sting/utils/Utils.java @@ -81,9 +81,10 @@ public class Utils { break; sum += x; i++; + //System.out.printf(" %d/%d", sum, i); } - //System.out.printf("Sum = %d, n = %d, avg = %f%n", sum, i, (1.0 * sum) / i); + //System.out.printf("Sum = %d, n = %d, maxI = %d, avg = %f%n", sum, i, maxI, (1.0 * sum) / i); return (1.0 * sum) / i; }