public boolean isBigBedFile() { return fileHeader.isBigBed(); }
public boolean isBigWigFile() { return fileHeader.isBigWig(); }
fileHeader = new BBFileHeader(path, fis, fileOffset); if (!fileHeader.isHeaderOK()) { log.error("BBFile header is unrecognized type, header magic = " + fileHeader.getMagic()); throw new RuntimeException("Error reading BBFile header for: " + path); isLowToHigh = fileHeader.isLowToHigh(); uncompressBufSize = fileHeader.getUncompressBuffSize(); zoomLevelCount = fileHeader.getZoomLevels(); autoSqlOffset = fileHeader.getAutoSqlOffset(); if (autoSqlOffset != 0) { fileOffset = fileHeader.getTotalSummaryOffset(); if (fileHeader.getVersion() >= 2 && fileOffset > 0) { totalSummaryBlock = new BBTotalSummaryBlock(fis, fileOffset, isLowToHigh); fileOffset += BBTotalSummaryBlock.TOTAL_SUMMARY_BLOCK_SIZE; chromIDTreeOffset = fileHeader.getChromosomeTreeOffset(); if (chromIDTreeOffset != 0) { fileOffset = chromIDTreeOffset; chromDataTreeOffset = fileHeader.getFullIndexOffset(); if (chromDataTreeOffset != 0) { fileOffset = chromDataTreeOffset; fileOffset = fileHeader.getFullDataOffset();
public void print() { if (isHeaderOK) { if (isBigWig()) System.out.println("BigWig file " + path + ", file header at location " + fileHeaderOffset); else if (isBigBed()) System.out.println("BigBed file " + path + ", file header at location " + fileHeaderOffset); } else { System.out.println("BBFile " + path + " with bad magic = " + magic + " from file header location " + fileHeaderOffset); return; // bad read - remaining header items not interpreted } // header fields System.out.println("BBFile header magic = " + magic); System.out.println("Version = " + version); System.out.println("Zoom Levels = " + nZoomLevels); System.out.println("Chromosome Info B+ tree offset = " + chromTreeOffset); System.out.println("Data Block offset = " + fullDataOffset); System.out.println("Chromosome Data R+ tree offset = " + fullIndexOffset); System.out.println("Bed fields count = " + fieldCount); System.out.println("Bed defined fields count = " + definedFieldCount); System.out.println("AutoSql Offset = " + autoSqlOffset); System.out.println("Total Summary offset = " + totalSummaryOffset); System.out.println("Maximum uncompressed buffer size = " + uncompressBuffSize); System.out.println("m_reserved = " + reserved); }
/** * Open file * @param fileName */ void open(String fileName) { try { label = Gpr.removeExt(Gpr.baseName(fileName)); // Open file BBFileReader readerBb = new BBFileReader(fileName); BBFileHeader bbFileHdr = readerBb.getBBFileHeader(); // Get header if (!bbFileHdr.isHeaderOK()) throw new IOException("Bad header for file '" + fileName + "'"); // Sanity check if (!bbFileHdr.isBigBed()) throw new RuntimeException("Unrecognized header type for file '" + fileName + "' (expecting BigBed)"); // Get file type iterator = readerBb.getBigBedIterator(); } catch (Exception e) { throw new RuntimeException("Error loading file '" + fileName + "'.", e); } }
fileHeader = new BBFileHeader(path, fis, fileOffset); if (!fileHeader.isHeaderOK()) { log.error("BBFile header is unrecognized type, header magic = " + fileHeader.getMagic()); throw new RuntimeException("Error reading BBFile header for: " + path); isLowToHigh = fileHeader.isLowToHigh(); uncompressBufSize = fileHeader.getUncompressBuffSize(); zoomLevelCount = fileHeader.getZoomLevels(); autoSqlOffset = fileHeader.getAutoSqlOffset(); if (autoSqlOffset != 0) { fileOffset = fileHeader.getTotalSummaryOffset(); if (fileHeader.getVersion() >= 2 && fileOffset > 0) { totalSummaryBlock = new BBTotalSummaryBlock(fis, fileOffset, isLowToHigh); fileOffset += BBTotalSummaryBlock.TOTAL_SUMMARY_BLOCK_SIZE; chromIDTreeOffset = fileHeader.getChromosomeTreeOffset(); if (chromIDTreeOffset != 0) { fileOffset = chromIDTreeOffset; chromDataTreeOffset = fileHeader.getFullIndexOffset(); if (chromDataTreeOffset != 0) { fileOffset = chromDataTreeOffset; fileOffset = fileHeader.getFullDataOffset();
public void print() { if (isHeaderOK) { if (isBigWig()) System.out.println("BigWig file " + path + ", file header at location " + fileHeaderOffset); else if (isBigBed()) System.out.println("BigBed file " + path + ", file header at location " + fileHeaderOffset); } else { System.out.println("BBFile " + path + " with bad magic = " + magic + " from file header location " + fileHeaderOffset); return; // bad read - remaining header items not interpreted } // header fields System.out.println("BBFile header magic = " + magic); System.out.println("Version = " + version); System.out.println("Zoom Levels = " + nZoomLevels); System.out.println("Chromosome Info B+ tree offset = " + chromTreeOffset); System.out.println("Data Block offset = " + fullDataOffset); System.out.println("Chromosome Data R+ tree offset = " + fullIndexOffset); System.out.println("Bed fields count = " + fieldCount); System.out.println("Bed defined fields count = " + definedFieldCount); System.out.println("AutoSql Offset = " + autoSqlOffset); System.out.println("Total Summary offset = " + totalSummaryOffset); System.out.println("Maximum uncompressed buffer size = " + uncompressBuffSize); System.out.println("m_reserved = " + reserved); }
fileHeader = new BBFileHeader(path, fis, fileOffset); if (!fileHeader.isHeaderOK()) { log.error("BBFile header is unrecognized type, header magic = " + fileHeader.getMagic()); throw new RuntimeException("Error reading BBFile header for: " + path); isLowToHigh = fileHeader.isLowToHigh(); uncompressBufSize = fileHeader.getUncompressBuffSize(); zoomLevelCount = fileHeader.getZoomLevels(); long autoSqlOffset = fileHeader.getAutoSqlOffset(); if (autoSqlOffset != 0) { fis.seek(autoSqlOffset); fileOffset = fileHeader.getTotalSummaryOffset(); if (fileHeader.getVersion() >= 2 && fileOffset > 0) { totalSummaryBlock = new BBTotalSummaryBlock(fis, fileOffset, isLowToHigh); fileOffset += BBTotalSummaryBlock.TOTAL_SUMMARY_BLOCK_SIZE; chromIDTreeOffset = fileHeader.getChromosomeTreeOffset(); if (chromIDTreeOffset != 0) { fileOffset = chromIDTreeOffset; chromDataTreeOffset = fileHeader.getFullIndexOffset(); if (chromDataTreeOffset != 0) { fileOffset = chromDataTreeOffset; fileOffset = fileHeader.getFullDataOffset();
public void print() { if (isHeaderOK) { if (isBigWig()) System.out.println("BigWig file " + path + ", file header at location " + fileHeaderOffset); else if (isBigBed()) System.out.println("BigBed file " + path + ", file header at location " + fileHeaderOffset); } else { System.out.println("BBFile " + path + " with bad magic = " + magic + " from file header location " + fileHeaderOffset); return; // bad read - remaining header items not interpreted } // header fields System.out.println("BBFile header magic = " + magic); System.out.println("Version = " + version); System.out.println("Zoom Levels = " + nZoomLevels); System.out.println("Chromosome Info B+ tree offset = " + chromTreeOffset); System.out.println("Data Block offset = " + fullDataOffset); System.out.println("Chromosome Data R+ tree offset = " + fullIndexOffset); System.out.println("Bed fields count = " + fieldCount); System.out.println("Bed defined fields count = " + definedFieldCount); System.out.println("AutoSql Offset = " + autoSqlOffset); System.out.println("Total Summary offset = " + totalSummaryOffset); System.out.println("Maximum uncompressed buffer size = " + uncompressBuffSize); System.out.println("m_reserved = " + reserved); }
public boolean isBigBedFile() { return fileHeader.isBigBed(); }
public boolean isBigWigFile() { return fileHeader.isBigWig(); }
public boolean isBigBedFile() { return fileHeader.isBigBed(); }
public boolean isBigWigFile() { return fileHeader.isBigWig(); }
if(!this.bigBedReader.getBBFileHeader().isBigBed()){ throw new RuntimeException("File " + filename + " is not bigBed.");
/** * Read bigWig from local file or remote URL. * @param filename Filename or URL to access * @param gc Query coordinates and size of printable window * @throws IOException * @throws InvalidRecordException * @throws InvalidGenomicCoordsException * @throws SQLException * @throws ClassNotFoundException */ public TrackWiggles(String filename, GenomicCoords gc, int bdgDataColIdx) throws IOException, InvalidRecordException, InvalidGenomicCoordsException, ClassNotFoundException, SQLException{ this.setFilename(filename); this.setWorkFilename(filename); this.bdgDataColIdx= bdgDataColIdx; this.setTrackFormat(Utils.getFileTypeFromName(this.getWorkFilename())); if(this.getTrackFormat().equals(TrackFormat.BIGWIG)){ this.setTrackFormat(TrackFormat.BIGWIG); this.bigWigReader=new BBFileReader(this.getWorkFilename()); // or url for remote access. if(!this.bigWigReader.getBBFileHeader().isBigWig()){ throw new RuntimeException("Invalid file type " + this.getWorkFilename()); } } else if(this.getTrackFormat().equals(TrackFormat.BEDGRAPH) && ! Utils.hasTabixIndex(filename)){ String tabixBdg= this.tabixBedgraphToTmpFile(filename); this.setWorkFilename(tabixBdg); } this.setGc(gc); };
@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); } } } }