Ejemplo n.º 1
0
Region *Region_create(gint query_start, gint target_start,
                      gint query_length, gint target_length) {
    register Region *region = g_new(Region, 1);
    region->ref_count = 1;
    region->query_start = query_start;
    region->target_start = target_start;
    region->query_length = query_length;
    region->target_length = target_length;
    g_assert(Region_is_valid(region));
    return region;
}
Ejemplo n.º 2
0
void Region_init_static(Region *region,
                        gint query_start, gint target_start,
                        gint query_length, gint target_length) {
    region->ref_count = -1;
    region->query_start = query_start;
    region->target_start = target_start;
    region->query_length = query_length;
    region->target_length = target_length;
    g_assert(Region_is_valid(region));
    return;
}
Ejemplo n.º 3
0
static Region *Optimal_find_region(Optimal *optimal, Region *region,
                         gpointer user_data, C4_Score threshold,
                         SubOpt *subopt, C4_Score *region_score){
    register Region *alignment_region;
    register Viterbi_Data *vd;
    register C4_Score score;
    g_assert(optimal->type & Optimal_Type_REDUCED_SPACE);
    if(!optimal->find_region) /* Must be a global model */
        return Region_share(region); /* Already know region */
    g_assert(optimal->find_region);
    vd = Viterbi_Data_create(optimal->find_region, region);
    score = Viterbi_calculate(optimal->find_region, region,
                              vd, user_data, subopt);
    if(score < threshold)
        return NULL;
    alignment_region = Region_share(vd->alignment_region);
    (*region_score) = score;
    g_assert(Region_is_valid(alignment_region));
    g_assert(Region_is_within(region, alignment_region));
    Viterbi_Data_destroy(vd);
    return alignment_region;
    }