Ejemplo n.º 1
0
  public Collection<NamedRegion> parseProbes() throws IOException {
    double ethreshold = 1.0e-3;
    Parser<BlastTabEntry> parser =
        new Parser<BlastTabEntry>(blasttab, new BlastTabEntry.ParsingMapper());
    Iterator<BlastTabEntry> itr =
        new FilterIterator<BlastTabEntry, BlastTabEntry>(
            new BlastTabEntry.ExpectedScoreFilter(ethreshold), parser);

    Map<String, Set<Region>> primerHits = new TreeMap<String, Set<Region>>();
    Set<String> primerNames = new TreeSet<String>();

    while (itr.hasNext()) {
      BlastTabEntry entry = itr.next();
      NamedRegion r = createNamedRegion(entry);
      if (!primerHits.containsKey(entry.getQuery())) {
        primerHits.put(entry.getQuery(), new HashSet<Region>());
      }
      primerHits.get(entry.getQuery()).add(r);
      primerNames.add(removePrimerLR(entry.getQuery()));
    }

    LinkedList<NamedRegion> probes = new LinkedList<NamedRegion>();

    for (String primerName : primerNames) {
      Pair<Region, Region> hits = findProbePair(primerName, primerHits);
      if (hits != null) {
        Region left = hits.getFirst(), right = hits.getLast();
        int start = Math.min(left.getStart(), right.getStart());
        int end = Math.max(left.getEnd(), right.getEnd());

        NamedRegion probe = new NamedRegion(genome, left.getChrom(), start, end, primerName);
        probes.addLast(probe);
      }
    }

    return probes;
  }
 @Override
 public void extractFeatures(List regions) throws FeatureExtractorException {
   for (Region r : (List<Region>) regions) {
     if (r.hasAttribute(f1) && r.hasAttribute(f2)) {
       Contour c1, c2;
       try {
         c1 = ContourUtils.getSubContour((Contour) r.getAttribute(f1), r.getStart(), r.getEnd());
         c2 = ContourUtils.getSubContour((Contour) r.getAttribute(f2), r.getStart(), r.getEnd());
       } catch (AuToBIException e) {
         throw new FeatureExtractorException(e.getMessage());
       }
       r.setAttribute("rmse[" + f1 + "," + f2 + "]", contourRMSE(c1, c2));
       r.setAttribute("meanError[" + f1 + "," + f2 + "]", contourError(c1, c2));
     }
   }
 }
Ejemplo n.º 3
0
 @Override
 public void write(JsonWriter out, Region value) throws IOException {
   out.beginObject()
       .name("start")
       .value(value.getStart() + 1)
       .name("count")
       .value(value.getCount())
       .name("path")
       .value(value.getSourcePath())
       .name("commit")
       .value(ObjectId.toString(value.getSourceCommit()))
       .name("author")
       .beginObject()
       // TODO(dborowitz): Use an adapter from CommitJsonData instead.
       .name("name")
       .value(value.getSourceAuthor().getName())
       .name("email")
       .value(value.getSourceAuthor().getEmailAddress())
       .name("time")
       .value(df.format(value.getSourceAuthor()))
       .endObject()
       .endObject();
 }