diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/phasing/CountHetPhasingInIntervalWalker.java b/java/src/org/broadinstitute/sting/oneoffprojects/phasing/CountHetPhasingInIntervalWalker.java index 3f85b7ffd..106817fb8 100755 --- a/java/src/org/broadinstitute/sting/oneoffprojects/phasing/CountHetPhasingInIntervalWalker.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/phasing/CountHetPhasingInIntervalWalker.java @@ -173,7 +173,7 @@ public class CountHetPhasingInIntervalWalker extends RodWalker SingleSampleIntervalStats stats = sampleStatEntry.getValue(); if (perIntervalOut != null && stats.numHetsInCurrentInterval > 0) { String sample = sampleStatEntry.getKey(); - perIntervalOut.println(sample + "\t" + curInterval + "\t" + stats.numPhasedInCurrentInterval + "\t" + stats.numHetsInCurrentInterval + "\t" + stats.firstHetIsPhased); + perIntervalOut.println(sample + "\t" + curInterval + "\t" + stats.numPhasedInCurrentInterval + "\t" + stats.numHetsInCurrentInterval + "\t" + stats.firstHetIsPhasedInCurrentInterval); } stats.finalizeStats(); // now, can reset the counters [after print-out] } @@ -191,17 +191,23 @@ public class CountHetPhasingInIntervalWalker extends RodWalker private class SingleSampleIntervalStats { public Map hetStatInIntervalToCount; - public int firstHetIsPhased; + public int firstHetIsPhasedCount; private int numHetsInCurrentInterval; private int numPhasedInCurrentInterval; + private boolean firstHetIsPhasedInCurrentInterval; public SingleSampleIntervalStats() { this.hetStatInIntervalToCount = new TreeMap(); // implemented PhasedHetsStat.compareTo() - this.firstHetIsPhased = 0; + this.firstHetIsPhasedCount = 0; + resetCurrentIntervalCounters(); + } + + private void resetCurrentIntervalCounters() { this.numHetsInCurrentInterval = 0; this.numPhasedInCurrentInterval = 0; + this.firstHetIsPhasedInCurrentInterval = false; } public void updateHetStats(boolean isHet, boolean isPhased) { @@ -212,7 +218,7 @@ public class CountHetPhasingInIntervalWalker extends RodWalker numPhasedInCurrentInterval++; if (numHetsInCurrentInterval == 1) - firstHetIsPhased++; + firstHetIsPhasedInCurrentInterval = true; } } } @@ -227,15 +233,17 @@ public class CountHetPhasingInIntervalWalker extends RodWalker cnt = 0; hetStatInIntervalToCount.put(hetsAndPhased, cnt + 1); - numHetsInCurrentInterval = 0; - numPhasedInCurrentInterval = 0; + if (firstHetIsPhasedInCurrentInterval) + firstHetIsPhasedCount++; + + resetCurrentIntervalCounters(); } public String toString() { StringBuilder sb = new StringBuilder(); sb.append("# of intervals: " + numIntervals + "\n"); - sb.append("First het is phased: " + firstHetIsPhased + "\n"); + sb.append("First het is phased: " + firstHetIsPhasedCount + "\n"); sb.append("Distribution of number of phased / hets per interval:" + "\n"); for (Map.Entry hetStatEntry : hetStatInIntervalToCount.entrySet())