/** * Print index entries (for debugging) */ public void dumpIndex() { for (Map.Entry<String, IndexEntry> entry : datasetIndex.entrySet()) { String dsName = entry.getKey(); TDFDataset ds = getDataset(dsName); int size = 0; for (int sz : ds.tileSizes) { size += sz; } System.out.println(dsName + "\t" + size); datasetCache.clear(); } }
public static void dumpDatasets(String ibfFile) { TDFReader reader = TDFReader.getReader(ibfFile); System.out.println("DATASETS"); for (String dsName : reader.getDatasetNames()) { System.out.println(dsName); TDFDataset ds = reader.getDataset(dsName); System.out.println("Attributes"); for (Map.Entry<String, String> entry : ds.attributes.entrySet()) { System.out.println("\t" + entry.getKey() + " = " + entry.getValue()); } System.out.println(); System.out.println("Tile Positions"); for (int i = 0; i < ds.nTiles; i++) { System.out.print("\t" + ds.tilePositions[i]); } System.out.println(); } }
public static void dumpAllTiles(String ibfFile) { TDFReader reader = TDFReader.getReader(ibfFile); System.out.println("DATASETS"); for (String dsName : reader.getDatasetNames()) { System.out.println(dsName); TDFDataset ds = reader.getDataset(dsName); for (int i = 0; i < ds.nTiles; i++) { TDFTile tile = ds.getTile(i); if (tile != null) { System.out.println("Tile: " + i); dumpTileData(reader, "", tile, System.out); } } } }
public TDFDataset getDataset(String chr, int zoom, WindowFunction windowFunction) { // Version 1 only had mean String wf = getVersion() < 2 ? "" : "/" + windowFunction.toString(); String zoomString = chr.equals(Globals.CHR_ALL) ? "0" : String.valueOf(zoom); String dsName = "/" + chr + "/z" + zoomString + wf; TDFDataset ds = getDataset(dsName); return ds; }
public static void tdfToBedgraph(String tdfFile, String bedGraphFile) throws FileNotFoundException { TDFReader reader = null; PrintStream ps = null; try { reader = TDFReader.getReader(tdfFile); ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(bedGraphFile))); String trackLine = reader.getTrackLine(); if (trackLine != null && trackLine.length() > 0) { ps.println(trackLine); } for (String dsName : reader.getDatasetNames()) { String[] tokens = dsName.split("/"); String chrName = tokens[1]; if (!chrName.equals(Globals.CHR_ALL) && dsName.contains("raw")) { TDFDataset ds = reader.getDataset(dsName); for (int i = 0; i < ds.nTiles; i++) { TDFTile tile = ds.getTile(i); if (tile != null) { dumpTileData(reader, chrName, tile, ps); } } } } } finally { if (reader != null) reader.close(); if (ps != null) ps.close(); } }
public TDFDataset getDataset(String chr, int zoom, WindowFunction windowFunction) { // Version 1 only had mean String wf = getVersion() < 2 ? "" : "/" + windowFunction.toString(); String dsName = "/" + chr + "/z" + zoom + wf; TDFDataset ds = getDataset(dsName); return ds; }
if (zoom <= maxZoom) { LOG.info("Using zoomed dataset " + zoom); result = tdf.getDataset(ref, zoom, WindowFunction.mean); if (result == null) { result = tdf.getDataset("chr" + ref, zoom, WindowFunction.mean); result = tdf.getDataset(rawUnhomogenised);
public static void dumpTile(String ibfFile, String dsName, int tileNumber) { TDFReader reader = TDFReader.getReader(ibfFile); TDFDataset ds = reader.getDataset(dsName); TDFTile tile = reader.readTile(ds, tileNumber); if (tile == null) { System.out.println("Null tile: " + dsName + " [" + tileNumber + "]"); } else { dumpTileData(reader, "", tile, System.out); } }
for (String dsName : reader.getDatasetNames()) { System.out.println(dsName); TDFDataset ds = reader.getDataset(dsName);
public static void dumpRange(String ibfFile, String dsName, int startLocation, int endLocation) { TDFReader reader = TDFReader.getReader(ibfFile); TDFDataset ds = reader.getDataset(dsName);
TDFDataset ds = reader.getDataset(dsName);
tiles = Arrays.asList(wgTile); } else { TDFDataset ds = reader.getDataset(querySeq, zoom, windowFunction); if (ds != null) { tiles = ds.getTiles(startLocation, endLocation);
if (query) { for (String name : reader.getDatasetNames()) { TDFDataset ds = reader.getDataset(name); List<TDFTile> tiles = ds.getTiles(); for (TDFTile tile : tiles) {
private List<LocusScore> getWGRawScores() { List<LocusScore> scores = new ArrayList(10000); for (String chr : genome.getAllChromosomeNames()) { Chromosome c = genome.getChromosome(chr); String dsName = "/" + chr + "/raw"; TDFDataset rawDataset = reader.getDataset(dsName); if (rawDataset != null) { List<TDFTile> rawTiles = rawDataset.getTiles(0, c.getLength()); if (rawTiles.size() > 0) { for (TDFTile rawTile : rawTiles) { // Tile of raw data if (rawTile != null && rawTile.getSize() > 0) { for (int i = 0; i < rawTile.getSize(); i++) { int s = genome.getGenomeCoordinate(chr, rawTile.getStartPosition(i)); int e = genome.getGenomeCoordinate(chr, Math.max(s, rawTile.getEndPosition(i) - 1)); float v = rawTile.getValue(trackNumber, i); if (!Float.isNaN(v)) { v *= normalizationFactor; } scores.add(new BasicScore(s, e, v)); } } } } } } return scores; }
private float getCount(String filename, String chr, int zoom, int pos, Genome genome) { TDFReader reader = TDFReader.getReader(filename); TDFDataset ds = reader.getDataset(chr, zoom, WindowFunction.mean); TDFDataSource dataSource = new TDFDataSource(reader, 0, "test", genome); List<LocusScore> scores = dataSource.getSummaryScoresForRange(chr, pos - 1, pos + 1, zoom); return scores.get(0).getScore(); }
private void tstCountWindowFunctions(String inputFile, String chr, Iterable<WindowFunction> windowFunctions) throws Exception { String outputFile = TestUtils.TMP_OUTPUT_DIR + "testCountWindowFunctions.tdf"; String wfs = ""; for (WindowFunction wf : windowFunctions) { wfs += wf.name() + ","; } wfs = wfs.substring(0, wfs.lastIndexOf(",")); String[] cmd = {"count", "--windowFunctions", wfs, inputFile, outputFile, hg18id}; igvTools.run(cmd); TDFReader reader = new TDFReader(new ResourceLocator(outputFile)); for (WindowFunction wf : windowFunctions) { TDFDataset ds = reader.getDataset(chr, 0, wf); assertNotNull(ds); } }
@Test public void testReader() throws Exception { String url = "http://data.broadinstitute.org/igvdata/encode/hg18/broadHistone/SignalK562H3k4me3.tdf"; TDFReader reader = new TDFReader(new ResourceLocator(url)); int version = reader.getVersion(); assertEquals(3, version); assertTrue(reader.compressed); String [] trackNames = reader.getTrackNames(); int nTracks = trackNames.length; assertEquals(1, nTracks); String trackName = trackNames[0]; assertEquals(trackName, "SignalK562H3k4me3.wig.gz"); Set<String> chrNames = reader.getChromosomeNames(); int nChromosomes = chrNames.size(); assertEquals(24, nChromosomes); String datasetName = "/chr1/z0/mean"; TDFDataset dataset = reader.getDataset(datasetName); assertEquals(datasetName, dataset.getName()); TDFTile tile = reader.readTile(dataset, 0); assertNotNull(tile); } }
private void testTile(String inputFile, int start, int end) throws IOException { String file1 = TestUtils.TMP_OUTPUT_DIR + "file1.tdf"; String file2 = TestUtils.TMP_OUTPUT_DIR + "file2.tdf"; //todo Compare 2 outputs more meaningfully String[] args = {"toTDF", "-z", "1", "--windowFunctions", "min", inputFile, file1, hg18id}; igvTools.run(args); FeatureDB.clearFeatures(); Runtime.getRuntime().gc(); args = new String[]{"toTDF", "-z", "1", "--windowFunctions", "max", inputFile, file2, hg18id}; igvTools.run(args); String dsName = "/chr1/raw"; TDFDataset ds1 = TDFReader.getReader(file1).getDataset(dsName); TDFDataset ds2 = TDFReader.getReader(file2).getDataset(dsName); TDFTile t1 = ds1.getTiles(start, end).get(0); TDFTile t2 = ds2.getTiles(start, end).get(0); int nPts = t1.getSize(); assertEquals(nPts, t2.getSize()); for (int i = 0; i < nPts; i++) { assertTrue(t1.getStartPosition(i) < t1.getEndPosition(i)); assertEquals(t1.getStartPosition(i), t2.getStartPosition(i)); assertTrue(t1.getValue(0, i) <= t2.getValue(0, i)); if (i < nPts - 1) { assertTrue(t1.getStartPosition(i) < t1.getStartPosition(i + 1)); } } (new File(file1)).delete(); (new File(file2)).delete(); }
TDFDataset chrDataset = getDataset(chrName, 0, wf); if(chrDataset == null) continue;
TDFDataset ds = reader.getDataset(dsName);