/** * Mark the previous genomic location as having been completely summarized * @param chr * @param dataPoints Map sample -> accumulator, which stored data temporarily being accumulated at a given genome location */ private void finishLastLocation(String chr, Map<String, Accumulator> dataPoints) { nDataPts++; for (String s : dataMap.get(chr).keySet()) { Accumulator dp = dataPoints.get(s); dp.finish(); dataMap.get(chr).get(s).add(dp.getValue()); } dataPoints.clear(); }
private LocusScore getCompositeScore(Accumulator accumulator, int accumulatedStart, int accumulatedEnd) { LocusScore ls; if (accumulator.getNpts() == 1) { ls = new NamedScore(accumulatedStart, accumulatedEnd, accumulator.getRepData()[0], accumulator.getRepProbes()[0]); } else { float value = accumulator.getValue(); ls = new CompositeScore(accumulatedStart, accumulatedEnd, value, accumulator.getRepData(), accumulator.getRepProbes(), windowFunction); } return ls; }
acc = new Accumulator(WindowFunction.mean); accumulators[n][b] = acc; acc.add(basesCovered, t.getData(n)[p], null); Accumulator acc = accArray[p]; if (acc != null) { acc.finish(); data[n][p] = acc.getValue();
double scale = (double) (endLocation - startLocation) / nBins; Accumulator accumulator = new Accumulator(windowFunction, 5); int accumulatedStart = -1; int accumulatedEnd = -1; if (accumulator.hasData()) { scores.add(getCompositeScore(accumulator, accumulatedStart, accumulatedEnd)); accumulator = new Accumulator(windowFunction, 5); scores.add(new NamedScore(s, e, v, probeName)); } else { if (!accumulator.hasData()) accumulatedStart = s; accumulatedEnd = e; accumulator.add(e - s, v, probeName); if (accumulator.hasData()) { scores.add(getCompositeScore(accumulator, accumulatedStart, accumulatedEnd));
Accumulator dp = dataPoints.get(s); if (dp == null) { dp = new Accumulator(WindowFunction.mean); dataPoints.put(s, dp); dp.add(1, data[i], null); } catch (Exception e) { log.error("Error adding to GenomeSummaryData", e);
public float getValue() { if (!isFinished) finish(); return value; }
public void finish() { if (isFinished) { return; } if (windowFunction == WindowFunction.mean) { value = Float.isNaN(sum) ? Float.NaN : sum / basesCovered; } else if (valueList != null) { if (valueList.size() == 0) { value = Float.NaN; } else if (valueList.size() == 1) { value = (float) valueList.get(0); } else { double[] valueArray = valueList.toArray(); double p = this.getPercentile(windowFunction); if (p > 0) { value = (float) StatUtils.percentile(valueArray, p); } else { value = Float.NaN; } } } valueList = null; isFinished = true; }
Accumulator accumulator = new Accumulator(windowFunction, 5); int accumulatedStart = -1; int accumulatedEnd = -1; if (accumulator.hasData()) { scores.add(getCompositeScore(accumulator, accumulatedStart, accumulatedEnd)); accumulator = new Accumulator(windowFunction, 5); scores.add(new NamedScore(s, e, v, probeName)); } else { if (!accumulator.hasData()) { accumulatedStart = s; accumulatedEnd = e; accumulator.add(e - s, v, probeName); if (accumulator.hasData()) { scores.add(getCompositeScore(accumulator, accumulatedStart, accumulatedEnd));
private LocusScore getCompositeScore(Accumulator accumulator, int accumulatedStart, int accumulatedEnd) { LocusScore ls; if (accumulator.getNpts() == 1) { ls = new NamedScore(accumulatedStart, accumulatedEnd, accumulator.getRepData()[0], accumulator.getRepProbes()[0]); } else { float value = accumulator.getValue(); ls = new CompositeScore(accumulatedStart, accumulatedEnd, value, accumulator.getRepData(), accumulator.getRepProbes(), windowFunction); } return ls; }