Search in sources :

Example 1 with BBFileReader

use of org.broad.igv.bbfile.BBFileReader in project ASCIIGenome by dariober.

the class Utils method initRegionFromBigWig.

private static String initRegionFromBigWig(String bigWigFile) throws IOException {
    BBFileReader reader = new BBFileReader(bigWigFile);
    if (!reader.isBigWigFile()) {
        System.err.println("File " + bigWigFile + " is not bigWig.");
        throw new RuntimeException();
    }
    // Just get chrom to start with
    String region = reader.getChromosomeNames().get(0);
    for (String chrom : reader.getChromosomeNames()) {
        BigWigIterator iter = reader.getBigWigIterator(chrom, 0, chrom, Integer.MAX_VALUE, false);
        if (iter.hasNext()) {
            WigItem x = iter.next();
            region = x.getChromosome() + ":" + (x.getStartBase() + 1);
            reader.close();
            return region;
        }
    }
    reader.close();
    return region;
}
Also used : WigItem(org.broad.igv.bbfile.WigItem) BBFileReader(org.broad.igv.bbfile.BBFileReader) BigWigIterator(org.broad.igv.bbfile.BigWigIterator)

Example 2 with BBFileReader

use of org.broad.igv.bbfile.BBFileReader in project jvarkit by lindenb.

the class VcfEnsemblReg method annotate.

private void annotate(Track track, File inf, File outf) throws IOException {
    boolean contained = false;
    LOG.info("Processing " + track.id + " (" + track.shortLabel + ") " + track.url);
    VcfIterator in = VCFUtils.createVcfIteratorFromFile(inf);
    VCFHeader header = in.getHeader();
    VCFInfoHeaderLine info = null;
    SeekableStream sstream = SeekableStreamFactory.getInstance().getStreamFor(track.url);
    BBFileReader bigFile = new BBFileReader(track.url.toString(), new SeekableStreamAdaptor(sstream));
    VariantContextWriter w1 = VCFUtils.createVariantContextWriter(outf);
    if (bigFile.isBigWigFile()) {
        info = new VCFInfoHeaderLine(track.id, 1, VCFHeaderLineType.Float, String.valueOf(track.longLabel) + " " + track.url);
    } else {
        info = new VCFInfoHeaderLine(track.id, 1, VCFHeaderLineType.String, String.valueOf(track.longLabel) + " " + track.url);
    }
    header.addMetaDataLine(info);
    w1.writeHeader(in.getHeader());
    while (in.hasNext()) {
        VariantContext ctx = in.next();
        String chrom = ctx.getContig();
        if (!chrom.startsWith("chr"))
            chrom = "chr" + chrom;
        if (!chrom.matches("(chrX|chrY|chr[0-9]|chr1[0-9]|chr2[12])")) {
            w1.add(ctx);
        } else if (bigFile.isBigWigFile()) {
            BigWigIterator iter = bigFile.getBigWigIterator(chrom, ctx.getStart() - 1, chrom, ctx.getStart(), contained);
            Float wigValue = null;
            while (iter != null && iter.hasNext() && wigValue == null) {
                WigItem item = iter.next();
                wigValue = item.getWigValue();
            }
            if (wigValue == null) {
                w1.add(ctx);
                continue;
            }
            VariantContextBuilder vcb = new VariantContextBuilder(ctx);
            vcb.attribute(track.id, wigValue);
            w1.add(vcb.make());
        } else {
            BigBedIterator iter = bigFile.getBigBedIterator(chrom, ctx.getStart() - 1, chrom, ctx.getStart(), contained);
            Set<String> bedValues = new HashSet<String>();
            while (iter != null && iter.hasNext()) {
                BedFeature item = iter.next();
                String[] rest = item.getRestOfFields();
                if (rest == null || rest.length != 6) {
                    System.err.println(track.id + " " + Arrays.toString(item.getRestOfFields()));
                    continue;
                }
                String color = null;
                if (track.parent != null) {
                    if (track.parent.startsWith("Segway_17SegmentationSummaries")) {
                        color = segway_17SegmentationSummaries(rest[5]);
                    } else if (track.parent.startsWith("ProjectedSegments")) {
                        color = projectedSegments(rest[5]);
                    } else if (track.parent.startsWith("RegBuildOverview")) {
                        color = regBuildOverview(rest[5]);
                    } else if (track.parent.startsWith("Segway_17CellSegments")) {
                        color = segway_17CellSegments(rest[5]);
                    } else {
                        System.err.println("Unknown parent:" + track.parent);
                    }
                }
                if (color == null)
                    continue;
                bedValues.add(rest[0] + "|" + color);
            }
            if (bedValues.isEmpty()) {
                w1.add(ctx);
                continue;
            }
            StringBuilder sb = new StringBuilder();
            for (String s : bedValues) {
                if (sb.length() != 0)
                    sb.append(",");
                sb.append(s);
            }
            VariantContextBuilder vcb = new VariantContextBuilder(ctx);
            vcb.attribute(track.id, sb.toString());
            w1.add(vcb.make());
        }
    }
    sstream.close();
    in.close();
    w1.close();
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) SeekableStream(htsjdk.samtools.seekablestream.SeekableStream) VariantContext(htsjdk.variant.variantcontext.VariantContext) BigBedIterator(org.broad.igv.bbfile.BigBedIterator) BedFeature(org.broad.igv.bbfile.BedFeature) VCFInfoHeaderLine(htsjdk.variant.vcf.VCFInfoHeaderLine) WigItem(org.broad.igv.bbfile.WigItem) VcfIterator(com.github.lindenb.jvarkit.util.vcf.VcfIterator) SeekableStreamAdaptor(com.github.lindenb.jvarkit.util.igv.SeekableStreamAdaptor) VariantContextBuilder(htsjdk.variant.variantcontext.VariantContextBuilder) BBFileReader(org.broad.igv.bbfile.BBFileReader) VariantContextWriter(htsjdk.variant.variantcontext.writer.VariantContextWriter) VCFHeader(htsjdk.variant.vcf.VCFHeader) BigWigIterator(org.broad.igv.bbfile.BigWigIterator)

Example 3 with BBFileReader

use of org.broad.igv.bbfile.BBFileReader in project ASCIIGenome by dariober.

the class Utils method initRegionFromBigBed.

private static String initRegionFromBigBed(String bigBedFile) throws IOException {
    BBFileReader reader = new BBFileReader(bigBedFile);
    if (!reader.isBigBedFile()) {
        System.err.println("File " + bigBedFile + " is not bigBed.");
        throw new RuntimeException();
    }
    // Just get chrom to start with
    String region = reader.getChromosomeNames().get(0);
    for (String chrom : reader.getChromosomeNames()) {
        BigBedIterator iter = reader.getBigBedIterator(chrom, 0, chrom, Integer.MAX_VALUE, false);
        if (iter.hasNext()) {
            BedFeature x = (BedFeature) iter.next();
            region = x.getChromosome() + ":" + (x.getStartBase() + 1);
            reader.close();
            return region;
        }
    }
    reader.close();
    return region;
}
Also used : BBFileReader(org.broad.igv.bbfile.BBFileReader) BigBedIterator(org.broad.igv.bbfile.BigBedIterator) BedFeature(org.broad.igv.bbfile.BedFeature)

Example 4 with BBFileReader

use of org.broad.igv.bbfile.BBFileReader in project ASCIIGenome by dariober.

the class TrackWigglesTest method canReadBigWigFromRemote.

@Test
public void canReadBigWigFromRemote() throws IOException {
    // String urlStr= "http://hgdownload.cse.ucsc.edu/goldenPath/hg19/encodeDCC/wgEncodeHaibTfbs/wgEncodeHaibTfbsA549Atf3V0422111Etoh02RawRep1.bigWig";
    String urlStr = "http://hgdownload.cse.ucsc.edu/goldenPath/hg19/encodeDCC/wgEncodeHaibTfbs/wgEncodeHaibTfbsA549Cebpbsc150V0422111RawRep1.bigWig";
    BBFileReader reader = new BBFileReader(urlStr);
    System.out.println(reader.getChromosomeNames());
    BigWigIterator iter = reader.getBigWigIterator("chr1", 1000000, "chr1", 2000000, true);
    while (iter.hasNext()) {
        System.out.println(iter.next().getStartBase());
    }
    System.out.println("NEW");
    iter = reader.getBigWigIterator("chr10", 1000000, "chr10", 2000000, true);
    while (iter.hasNext()) {
        System.out.println(iter.next().getStartBase());
    }
    reader.close();
}
Also used : BBFileReader(org.broad.igv.bbfile.BBFileReader) BigWigIterator(org.broad.igv.bbfile.BigWigIterator) Test(org.junit.Test)

Example 5 with BBFileReader

use of org.broad.igv.bbfile.BBFileReader in project jvarkit by lindenb.

the class Biostar105754Test method test01.

@Test
public void test01() throws IOException {
    final String bwf = SRC_TEST_RESOURCE + "/Uniqueness35bp.bigWig";
    BBFileReader bbf = new BBFileReader(bwf);
    final File datain = createTmpFile(".txt");
    final PrintWriter pw = new PrintWriter(datain);
    for (final String contig : bbf.getChromosomeNames()) {
        for (int i = 0; i < 100; i++) {
            int n = random.nextInt(100);
            int l = random.nextInt(200);
            pw.println(contig + "\t" + n + "\t" + (n + l));
        }
    }
    pw.flush();
    pw.close();
    CloserUtil.close(bbf.getBBFis());
    final File tsvout = createTmpFile(".txt");
    Assert.assertEquals(new Biostar105754().instanceMain(new String[] { "-o", tsvout.getPath(), "-B", bwf, datain.getPath() }), 0);
    assertTsvTableIsConsitent(tsvout, null);
}
Also used : BBFileReader(org.broad.igv.bbfile.BBFileReader) File(java.io.File) PrintWriter(java.io.PrintWriter) Test(org.testng.annotations.Test)

Aggregations

BBFileReader (org.broad.igv.bbfile.BBFileReader)6 BigWigIterator (org.broad.igv.bbfile.BigWigIterator)3 BedFeature (org.broad.igv.bbfile.BedFeature)2 BigBedIterator (org.broad.igv.bbfile.BigBedIterator)2 WigItem (org.broad.igv.bbfile.WigItem)2 SeekableStreamAdaptor (com.github.lindenb.jvarkit.util.igv.SeekableStreamAdaptor)1 VcfIterator (com.github.lindenb.jvarkit.util.vcf.VcfIterator)1 SeekableStream (htsjdk.samtools.seekablestream.SeekableStream)1 VariantContext (htsjdk.variant.variantcontext.VariantContext)1 VariantContextBuilder (htsjdk.variant.variantcontext.VariantContextBuilder)1 VariantContextWriter (htsjdk.variant.variantcontext.writer.VariantContextWriter)1 VCFHeader (htsjdk.variant.vcf.VCFHeader)1 VCFInfoHeaderLine (htsjdk.variant.vcf.VCFInfoHeaderLine)1 BufferedReader (java.io.BufferedReader)1 File (java.io.File)1 IOException (java.io.IOException)1 PrintWriter (java.io.PrintWriter)1 HashSet (java.util.HashSet)1 Set (java.util.Set)1 Test (org.junit.Test)1