Correct accounting for cases where first het in interval is phased

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5075 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
fromer 2011-01-25 19:48:54 +00:00
parent af79fa629f
commit 6ac888d26a
1 changed files with 15 additions and 7 deletions

View File

@ -173,7 +173,7 @@ public class CountHetPhasingInIntervalWalker extends RodWalker<Integer, Integer>
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<Integer, Integer>
private class SingleSampleIntervalStats {
public Map<PhasedHetsStat, Integer> hetStatInIntervalToCount;
public int firstHetIsPhased;
public int firstHetIsPhasedCount;
private int numHetsInCurrentInterval;
private int numPhasedInCurrentInterval;
private boolean firstHetIsPhasedInCurrentInterval;
public SingleSampleIntervalStats() {
this.hetStatInIntervalToCount = new TreeMap<PhasedHetsStat, Integer>(); // 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<Integer, Integer>
numPhasedInCurrentInterval++;
if (numHetsInCurrentInterval == 1)
firstHetIsPhased++;
firstHetIsPhasedInCurrentInterval = true;
}
}
}
@ -227,15 +233,17 @@ public class CountHetPhasingInIntervalWalker extends RodWalker<Integer, Integer>
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<PhasedHetsStat, Integer> hetStatEntry : hetStatInIntervalToCount.entrySet())