public Feature next() { BedFeature feat = bedIterator.next(); String[] restOfFields = feat.getRestOfFields(); String[] tokens = new String[restOfFields.length + 3]; tokens[0] = feat.getChromosome(); tokens[1] = String.valueOf(feat.getStartBase()); tokens[2] = String.valueOf(feat.getEndBase()); System.arraycopy(restOfFields, 0, tokens, 3, restOfFields.length); BasicFeature feature = bedCodec.decode(tokens); return feature; }
public void print() { log.debug("BigBed data for " + bedFeatureList.size() + " items"); for (int index = 0; index <= bedFeatureList.size(); ++index) { // BigBed data items print themselves bedFeatureList.get(index).print(); } } }
private MethylScore createUSCScore(BedFeature feat, String[] restOfFields) { //String name = restOfFields[0]; //int score = Integer.parseInt(restOfFields[1]); char strandChar = restOfFields[2].charAt(0); Strand strand = strandChar == '+' ? Strand.POSITIVE : (strandChar == '-' ? Strand.NEGATIVE : Strand.NONE); float percentMethyl = Float.parseFloat(restOfFields[3]); int count = Integer.parseInt(restOfFields[4]); return new MethylScore(feat.getChromosome(), feat.getStartBase(), feat.getEndBase(), strand, percentMethyl, count); }
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(); } String region= reader.getChromosomeNames().get(0); // Just get chrom to start with 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; }
remDataSize -= (minItemSize + restOfFields.length()); String chromosome = chromosomeMap.get(chromID); BedFeature bbItem = new BedFeature(itemNumber, chromosome, chromStart, chromEnd, restOfFields); bedFeatureList.add(bbItem);
public MethylScore next() { BedFeature feat = null; while (feat == null && bedIterator.hasNext()) { feat = bedIterator.next(); String[] restOfFields = feat.getRestOfFields(); MethylScore score = type == Type.ZILLER ? createZillerScore(feat, restOfFields) : createUSCScore(feat, restOfFields); return score; } return null; }
private MethylScore createZillerScore(BedFeature feat, String[] restOfFields) { float percent; float count; String name = restOfFields[0]; if (name.contains("%")) { //'92%[51]' String[] tokens = percentPattern.split(name.replace("'", "").replace("[", "").replace("]", "")); percent = Float.parseFloat(tokens[0]); count = Float.parseFloat(tokens[1]); } else { // methylatedReads/totalreads String[] tokens = Globals.forwardSlashPattern.split(name.replace("'", "")); float methylatedReads = Float.parseFloat(tokens[0]); count = Float.parseFloat(tokens[1]); percent = (methylatedReads / count) * 100; } return new MethylScore(feat.getChromosome(), feat.getStartBase(), feat.getEndBase(), Strand.NONE, percent, (int) count); }
BedFeature bbItem = new BedFeature(itemNumber, chromosome, chromStart, chromEnd, restOfFields); bedFeatureList.add(bbItem); BedFeature bbItem = new BedFeature(itemNumber, chromosome, chromStart, chromEnd, restOfFields); bedFeatureList.add(bbItem);
@Override protected Variant readNext() { // Get next item BedFeature f = iterator.next(); if (f == null) return null; // Create an ID String id = label + ":" + (f.getStartBase() + 1) + "_" + f.getEndBase(); // Show as one-based coordinates // Get score String restOfFields[] = f.getRestOfFields(); double score = Gpr.parseDoubleSafe(restOfFields[1]); // Create variant Variant variant = new VariantWithScore(getChromosome(f.getChromosome()), f.getStartBase(), f.getEndBase() - 1, id, score); return variant; }
public void print() { log.debug("BigBed data for " + bedFeatureList.size() + " items"); for(int index = 0; index <= bedFeatureList.size(); ++index) { // BigBed data items print themselves bedFeatureList.get(index).print(); } } }
BedFeature bbItem = new BedFeature(itemNumber, chromosome, chromStart, chromEnd, restOfFields); bedFeatureList.add(bbItem); BedFeature bbItem = new BedFeature(itemNumber, chromosome, chromStart, chromEnd, restOfFields); bedFeatureList.add(bbItem);
protected String next() throws IOException{ if(this.tabixIterator != null){ return this.tabixIterator.next(); } else if(this.bigBedIterator != null) { if( ! this.bigBedIterator.hasNext()){ return null; } BedFeature x= this.bigBedIterator.next(); if(x == null){ return null; } StringBuilder sb= new StringBuilder(); sb.append(x.getChromosome()); sb.append("\t"); sb.append(x.getStartBase()); sb.append("\t"); sb.append(x.getEndBase()); for(String field : x.getRestOfFields()){ sb.append("\t"); sb.append(field); } return sb.toString(); } else { throw new RuntimeException(); } }
public void print() { log.debug("BigBed data for " + bedFeatureList.size() + " items"); for(int index = 0; index <= bedFeatureList.size(); ++index) { // BigBed data items print themselves bedFeatureList.get(index).print(); } } }