Raw(String chr, int chrLength, int tileWidth) { this.tileWidth = tileWidth; int nTiles = (int) (chrLength / tileWidth) + 1; dsName = "/" + chr + "/raw"; dataset = writer.createDataset(dsName, TDFDataset.DataType.FLOAT, tileWidth, nTiles); }
/** * Write out the group and dataset index and close the underlying file. */ public void closeFile() { try { writeDatasets(); writeGroups(); long indexPosition = bytesWritten; writeIndex(); int nbytes = (int) (bytesWritten - indexPosition); fos.close(); writeIndexPosition(indexPosition, nbytes); } catch (IOException ex) { log.error("Error closing file"); } }
TDFWriter writer = new TDFWriter(testFile, "hg18", type, trackLine, trackNames, wfs, gzipped); TDFDataset dataset = writer.createDataset(dsName, TDFDataset.DataType.FLOAT, 1000, 1); dataset.setAttribute("attr1", "value1"); dataset.setAttribute("attr2", "value2"); writer.writeTile(dsName, tileNumber, tile); writer.closeFile();
writer.getRootGroup().setAttribute("chromosomes", chrString.toString()); writer.getRootGroup().setAttribute(entry.getKey(), entry.getValue()); TDFGroup group = writer.getGroup("/"); group.setAttribute(TDFGroup.USE_PERCENTILE_AUTOSCALING, "true"); for (WindowFunction wf : allDataFunctions) { group.setAttribute(wf.getDisplayName(), String.valueOf(allDataStats.getValue(wf))); writer.closeFile();
/** * Test of createGroup method, of class IBFWriter. */ @Test public void testCreateGroup() { File testFile = new File("test1.tdf"); testFile.deleteOnExit(); String groupName = "/chr1"; TDFWriter writer = new TDFWriter(testFile, "hg18", type, trackLine, trackNames, wfs, false); TDFGroup group = writer.createGroup(groupName); group.setAttribute("attKey", "attValue"); group.setAttribute("attKey2", "attValue2"); writer.closeFile(); TDFReader reader = TDFReader.getReader(testFile.getAbsolutePath()); group = reader.getGroup(groupName); assertEquals(groupName, group.getName()); assertEquals(2, group.attributes.size()); assertEquals("attValue", group.attributes.get("attKey")); assertEquals("attValue2", group.attributes.get("attKey2")); reader.close(); }
buffer.putLong(0l); buffer.putInt(0); write(buffer.getBytes()); byte[] trackLineBuffer = bufferString(trackLine, 1024); buffer.put(trackLineBuffer); writeInt(bytes.length); write(buffer.getBytes());
/** * Test of createDataset method, of class IBFWriter. */ @Test public void testCreateFile() { File testFile = new File("test2.tdf"); testFile.deleteOnExit(); TDFWriter writer = new TDFWriter(testFile, "hg18", type, trackLine, trackNames, wfs, false); writer.closeFile(); TDFReader reader = TDFReader.getReader(testFile.getAbsolutePath()); String[] tn = reader.getTrackNames(); assertEquals(trackNames.length, tn.length); for (int i = 0; i < tn.length; i++) { assertEquals(trackNames[i], tn[i]); } assertEquals(type, reader.getTrackType()); assertEquals(trackLine, reader.getTrackLine()); reader.close(); }
/** * Called to set inital parameters. It is required that this be called * prior to writing the file */ @Override public void setTrackParameters(TrackType trackType, String trackLine, String[] trackNames) throws IOException { if (trackLine != null) { System.out.println(trackLine); } if (outputFile != null && writer == null) { writer = new TDFWriter(outputFile, genome.getId(), trackType, trackLine, trackNames, windowFunctions, compressed); nTracks = trackNames.length; // Convert genome coordinates from bp to kbp int genomeLength = (int) (genome.getLength() / 1000); genomeZoom = new Zoom(Globals.CHR_ALL, 0, genomeLength); TDFGroup rootGroup = writer.getRootGroup(); rootGroup.setAttribute("genome", genome.getId()); rootGroup.setAttribute("maxZoom", String.valueOf(nZoom)); } }
void close() { try { if (startArray.size() > 0) { int[] s = startArray.toArray(); int[] e = endArray.toArray(); float[][] d = new float[dataArray.length][dataArray[0].size()]; for (int i = 0; i < dataArray.length; i++) { d[i] = dataArray[i].toArray(); } String[] n = nameList == null ? null : nameList.toArray(new String[]{}); TDFBedTile tile = new TDFBedTile(tileStart, s, e, d, n); writer.writeTile(dsName, tileNumber, tile); startArray.clear(); endArray.clear(); for (int i = 0; i < dataArray.length; i++) { dataArray[i].clear(); } } } catch (IOException ex) { log.error(ex.getMessage(), ex); } } }
private void writeDatasets() throws IOException { for (TDFDataset dataset : datasetCache.values()) { long position = bytesWritten; BufferedByteWriter buffer = new BufferedByteWriter(); dataset.write(buffer); write(buffer.getBytes()); int nBytes = (int) (bytesWritten - position); datasetIndex.put(dataset.getName(), new IndexEntry(position, nBytes)); } }
writer.getRootGroup().setAttribute(TDFWriter.CHROMOSOMES, chrString.toString()); writer.getRootGroup().setAttribute(entry.getKey(), entry.getValue()); TDFGroup group = writer.getGroup("/"); group.setAttribute(TDFGroup.USE_PERCENTILE_AUTOSCALING, "true"); for (WindowFunction wf : allDataFunctions) { group.setAttribute(wf.getValue(), String.valueOf(allDataStats.getValue(wf))); writer.closeFile();
buffer.putLong(0l); buffer.putInt(0); write(buffer.getBytes()); byte[] trackLineBuffer = bufferString(trackLine, 1024); buffer.put(trackLineBuffer); writeInt(bytes.length); write(buffer.getBytes());
/** * Called to set initial parameters. It is required that this be called * prior to writing the file */ public void setTrackParameters(TrackType trackType, String trackLine, String[] trackNames, boolean computeWholeGenome) { if (trackLine != null) { log.info(trackLine); } if (outputFile != null && writer == null) { writer = new TDFWriter(outputFile, genome.getId(), trackType, trackLine, trackNames, windowFunctions, compressed); nTracks = trackNames.length; // Convert genome coordinates from bp to kbp if (computeWholeGenome) { int genomeLength = (int) (genome.getNominalLength() / 1000); genomeZoom = new Zoom(Globals.CHR_ALL, 0, genomeLength); } TDFGroup rootGroup = writer.getRootGroup(); rootGroup.setAttribute("genome", genome.getId()); rootGroup.setAttribute("maxZoom", String.valueOf(nZoom)); } }
writer.writeTile(dsName, tileNumber, tile); } catch (IOException exc) { log.error("Error writing tile: " + dsName + " [" + tileNumber + "]", exc);
private void writeGroups() throws IOException { for (TDFGroup group : groupCache.values()) { long position = bytesWritten; BufferedByteWriter buffer = new BufferedByteWriter(); group.write(buffer); write(buffer.getBytes()); int nBytes = (int) (bytesWritten - position); groupIndex.put(group.getName(), new IndexEntry(position, nBytes)); } }
/** * Write out the group and dataset index and close the underlying file. */ public void closeFile() { try { writeDatasets(); writeGroups(); long indexPosition = bytesWritten; writeIndex(); int nbytes = (int) (bytesWritten - indexPosition); fos.close(); writeIndexPosition(indexPosition, nbytes); } catch (IOException ex) { log.error("Error closing file", ex); } }
Raw(String chr, int chrLength, int tileWidth) { this.tileWidth = tileWidth; int nTiles = (int) (chrLength / tileWidth) + 1; dsName = "/" + chr + "/raw"; dataset = writer.createDataset(dsName, TDFDataset.DataType.FLOAT, tileWidth, nTiles); }
writer.writeTile(dsName, tileNumber, tile); } catch (IOException iOException) { log.error("Error writing tile: " + dsName + " [" + tileNumber + "]", iOException);
private void writeGroups() throws IOException { for (TDFGroup group : groupCache.values()) { long position = bytesWritten; BufferedByteWriter buffer = new BufferedByteWriter(); group.write(buffer); write(buffer.getBytes()); int nBytes = (int) (bytesWritten - position); groupIndex.put(group.getName(), new IndexEntry(position, nBytes)); } }
Zoom(String chr, int level, int chrLength) { int nTiles = (int) Math.pow(2, level); tileWidth = chrLength / nTiles + 1; this.level = level; // Create datasets -- one for each window function for (WindowFunction wf : windowFunctions) { String dsName = "/" + chr + "/z" + level + "/" + wf.toString(); datasets.put(wf, writer.createDataset(dsName, TDFDataset.DataType.FLOAT, tileWidth, nTiles)); } }