public void print() { log.debug("Zoom Level " + zoomLevel + "data for leaf item :"); for (int index = 0; index <= zoomDataList.size(); ++index) { // zoom data records print themselves zoomDataList.get(index).print(); } }
private float getValue(ZoomDataRecord rec) { if (rec == null) { System.out.println(); } float v; switch (windowFunction) { case min: v = rec.getMinVal(); break; case max: v = rec.getMaxVal(); break; default: v = rec.getMeanVal(); } return v; }
@Test public void testBigBed() throws IOException { String path = TestUtils.DATA_DIR + "bb/chr21.refseq.bb"; BBFileReader bbReader = new BBFileReader(path); BBFileHeader bbFileHdr = bbReader.getBBFileHeader(); assertTrue(bbFileHdr.isBigBed()); String chr = "chr21"; int start = 26490012; int end = 42182827; for (BBZoomLevelHeader header : bbReader.getZoomLevels().getZoomLevelHeaders()) { assertNotNull(header); ZoomLevelIterator zlIter = bbReader.getZoomLevelIterator(header.getZoomLevel(), chr, start, chr, end, false); while (zlIter.hasNext()) { ZoomDataRecord rec = zlIter.next(); int n = rec.getBasesCovered(); if (n > 0) { assertEquals(chr, rec.getChromName()); assertTrue(rec.getChromEnd() >= start && rec.getChromStart() <= end); } } } }
String chr = genome.getCanonicalChrName(rec.getChromName()); int genomeStart = genome.getGenomeCoordinate(chr, rec.getChromStart()); int genomeEnd = genome.getGenomeCoordinate(chr, rec.getChromEnd()); scores.add(new BasicScore(genomeStart, genomeEnd, value));
while (zoomIterator.hasNext()) { wItem = zoomIterator.next(); chunkStart = (Math.max(region.getStart(), wItem.getChromStart()) - region.getStart()) / windowSize; chunkEnd = (Math.min(region.getEnd(), wItem.getChromEnd()) - region.getStart() - 1) / windowSize; for (int chunk = chunkStart; chunk <= chunkEnd; chunk++) { length = Math.min(wItem.getChromEnd() - region.getStart(), chunk * windowSize + windowSize) - Math.max(wItem.getChromStart() - region.getStart(), chunk * windowSize); chunks[chunk] += (wItem.getMeanVal() * length);
protected List<LocusScore> getZoomSummaryScores(String chr, int start, int end, int zoom) { Chromosome c = genome.getChromosome(chr); if (c == null) return null; double nBins = Math.pow(2, zoom); double scale = c.getLength() / (nBins * 700); BBZoomLevelHeader zlHeader = getZoomLevelForScale(scale); if (zlHeader == null) return null; int bbLevel = zlHeader.getZoomLevel(); int reductionLevel = zlHeader.getReductionLevel(); // If we are at the highest precomputed resolution compare to the requested resolution. If they differ // by more than a factor of 2 compute "on the fly" String tmp = chrNameMap.get(chr); String querySeq = tmp == null ? chr : tmp; if (reader.isBigBedFile() || bbLevel > 1 || (bbLevel == 1 && (reductionLevel / scale) < 2)) { ArrayList<LocusScore> scores = new ArrayList(1000); ZoomLevelIterator zlIter = reader.getZoomLevelIterator(bbLevel, querySeq, start, querySeq, end, false); while (zlIter.hasNext()) { ZoomDataRecord rec = zlIter.next(); float v = getValue(rec); BasicScore bs = new BasicScore(rec.getChromStart(), rec.getChromEnd(), v); scores.add(bs); } return scores; } else { // No precomputed scores for this resolution level return null; } }
ZoomDataRecord zoomRecord = new ZoomDataRecord(zoomLevel, recordNumber, chromName, chromID, chromStart, chromEnd, validCount, minVal, maxVal, sumData, sumSquares); zoomDataList.add(zoomRecord); ZoomDataRecord zoomRecord = new ZoomDataRecord(zoomLevel, recordNumber, chromName, chromID, chromStart, chromEnd, validCount, minVal, maxVal, sumData, sumSquares); zoomDataList.add(zoomRecord);
while (zlIter.hasNext()) { ZoomDataRecord rec = zlIter.next(); values[nValues++] = (rec.getMeanVal()); if (nValues >= 10000) { break;
ZoomDataRecord zoomRecord = new ZoomDataRecord(zoomLevel, recordNumber, chromName, chromID, chromStart, chromEnd, validCount, minVal, maxVal, sumData, sumSquares); zoomDataList.add(zoomRecord); ZoomDataRecord zoomRecord = new ZoomDataRecord(zoomLevel, recordNumber, chromName, chromID, chromStart, chromEnd, validCount, minVal, maxVal, sumData, sumSquares); zoomDataList.add(zoomRecord);
public void print() { log.debug("Zoom Level " + zoomLevel + "data for leaf item :"); for (int index = 0; index <= zoomDataList.size(); ++index) { // zoom data records print themselves zoomDataList.get(index).print(); } }
ZoomDataRecord zoomRecord = new ZoomDataRecord(zoomLevel, recordNumber, chromName, chromID, chromStart, chromEnd, validCount, minVal, maxVal, sumData, sumSquares); zoomDataList.add(zoomRecord); ZoomDataRecord zoomRecord = new ZoomDataRecord(zoomLevel, recordNumber, chromName, chromID, chromStart, chromEnd, validCount, minVal, maxVal, sumData, sumSquares); zoomDataList.add(zoomRecord);
public void print() { log.debug("Zoom Level " + zoomLevel + "data for leaf item :"); for (int index = 0; index <= zoomDataList.size(); ++index) { // zoom data records print themselves zoomDataList.get(index).print(); } }