void CrossHypotheses::FillInPrediction(PersistingThreadObjects &thread_objects, const Alignment& my_read, const InputStructures &global_context) {


    // allocate everything here
    CleanAllocate(instance_of_read_by_state.size(), global_context.treePhaserFlowOrder.num_flows());
    int flow_upper_bound = splice_end_flow + 4*min_delta_for_flow;
    max_last_flow = CalculateHypPredictions(thread_objects, my_read, global_context,
                                            instance_of_read_by_state, predictions, normalized, flow_upper_bound);
    SetModPredictions();
    if (my_read.is_reverse_strand)
        strand_key = 1;
    else
        strand_key = 0;
}
Exemplo n.º 2
0
void CrossHypotheses::FillInPrediction(PersistingThreadObjects &thread_objects, const Alignment& my_read, const InputStructures &global_context) {
  // allocate everything here
  CleanAllocate(instance_of_read_by_state.size(), global_context.flow_order_vector.at(my_read.flow_order_index).num_flows());
  // We search for test flows in the flow interval [(splice_start_flow-3*max_flows_to_test), (splice_end_flow+4*max_flows_to_test)]
  // We need to simulate further than the end of the search interval to get good predicted values within
  int flow_upper_bound = splice_end_flow + 4*max_flows_to_test + 20;
  max_last_flow = CalculateHypPredictions(thread_objects, my_read, global_context, instance_of_read_by_state,
                                          same_as_null_hypothesis, predictions_all_flows, normalized_all_flows, flow_upper_bound);
  SetModPredictions();
  if (my_read.is_reverse_strand)
    strand_key = 1;
  else
    strand_key = 0;
}