Ejemplo n.º 1
0
  public ClusterLikelihoods(
      ClusterData d, Integer[] chs, int[] five, int[] three, double v, double l) {
    data = d;
    channels = chs.clone();

    gammas = new double[five.length][channels.length];
    for (int t = 0; t < gammas.length; t++) {
      for (int i = 0; i < gammas[t].length; i++) {
        gammas[t][i] = 1.0;
      }
    }

    transcripts = new TreeMap<Integer, Set<Integer>>();
    fiveprime = five;
    threeprime = three;

    if (fiveprime.length != threeprime.length) {
      String msg = String.format("%d != %d", fiveprime.length, threeprime.length);
      throw new IllegalArgumentException(msg);
    }

    variance = v;
    lambda = l;

    for (int t = 0; t < fiveprime.length; t++) {
      transcripts.put(t, new TreeSet<Integer>());
    }

    for (int i = 0; i < data.size(); i++) {
      int loc = data.location(i);
      for (int t = 0; t < fiveprime.length; t++) {
        if (fiveprime[t] <= loc && threeprime[t] >= loc) {
          transcripts.get(t).add(i);
        }
      }
    }
  }
Ejemplo n.º 2
0
 public double delta(int i, int t) {
   int diff = threeprime[t] - data.location(i);
   return diff >= 0 ? (double) diff : 0.0;
 }