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); }
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); }
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; }
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(); } }
@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; }