11 #ifndef ALI_PREALIGNER_HXX
12 #define ALI_PREALIGNER_HXX
14 #ifndef ALI_PATHMAP_HXX
17 #ifndef ALI_TSTACK_HXX
20 #ifndef ALI_SOLUTION_HXX
24 #define ALI_PREALIGNER_INS 1
25 #define ALI_PREALIGNER_SUB 2
26 #define ALI_PREALIGNER_DEL 3
27 #define ALI_PREALIGNER_MULTI_FLAG 4
74 last_new = last_joins = 0;
82 last_new = last_joins = 0;
106 printf(
"map = %p, ins_marker = %p\n", map, ins_marker);
108 printf(
"<%20s>\n", ins_marker);
118 cost_of_binding = 0.0;
135 if (costs < cost_of_binding || approx_list->is_empty()) {
136 cost_of_binding = costs;
140 if (costs == cost_of_binding) {
149 delete in_insert_marker;
154 delete in_insert_marker;
166 delete approx_list->
first();
168 delete approx_list->
next();
175 printf(
"\nList of Approximations\n");
176 printf(
"cost_of_binding = %f\n", cost_of_binding);
179 approx_elem = approx_list->
first();
180 approx_elem->
print();
182 approx_elem = approx_list->
next();
183 approx_elem->
print();
187 printf(
"List is empty\n");
191 printf(
"List not existent\n");
205 unsigned long result_mask_counter;
206 unsigned long start_x, end_x, start_y, end_y;
209 float minimum2(
float a,
float b);
210 float minimum3(
float a,
float b,
float c);
215 unsigned long pos_y);
220 unsigned long pos_x);
224 unsigned long pos_x,
unsigned long pos_y);
227 unsigned long pos_x);
231 unsigned long pos_x);
232 void calculate_last_column_cell(
235 unsigned long pos_x,
unsigned long pos_y);
238 unsigned long pos_x);
240 void calculate_matrix();
242 void generate_solution(
ALI_MAP *map);
245 unsigned long pos_x,
unsigned long pos_y);
247 unsigned long pos_x,
unsigned long pos_y);
249 unsigned long pos_x,
unsigned long pos_y);
251 unsigned long pos_x,
unsigned long pos_y);
253 unsigned long pos_x,
unsigned long pos_y);
257 void mapper_approximation(
unsigned long area_number,
262 unsigned long number_of_solutions();
267 unsigned long start_x,
unsigned long end_x,
268 unsigned long start_y,
unsigned long end_y);
286 return result_approx.
list();
291 #error ali_prealigner.hxx included twice
292 #endif // ALI_PREALIGNER_HXX
void insert(ALI_MAP *in_map, float costs)
void ali_out_of_memory_if(bool cond)
ALI_PREALIGNER(ALI_PREALIGNER_CONTEXT *context, ALI_PROFILE *profile, unsigned long start_x, unsigned long end_x, unsigned long start_y, unsigned long end_y)
ALI_SEQUENCE * sequence()
unsigned long column_length
~ali_prealigner_approximation()
~ali_prealigner_approx_element()
void delete_expensive(ALI_PREALIGNER_CONTEXT *context, ALI_PROFILE *profile)
void insert(ALI_MAP *in_map, char *in_insert_marker, float costs)
ali_prealigner_approximation()
ALI_TLIST< ali_prealigner_approx_element * > * approx_list
ALI_NORM_SEQUENCE * sequence()
ALI_SEQUENCE * sequence_without_inserts(ALI_NORM_SEQUENCE *ref_seq)
ALI_TLIST< ali_prealigner_approx_element * > * approximation()
ALI_TLIST< ali_prealigner_approx_element * > * list()
unsigned long error_count
ali_prealigner_approx_element(ALI_MAP *m=NULp, char *im=NULp)
long max_number_of_maps_aligner
ALI_SUB_SOLUTION * solution()
ALI_SEQUENCE * sequence_without_inserts()
ali_prealigner_cell ** cells
float max_cost_of_sub_percent
ALI_SEQUENCE * sequence(ALI_NORM_SEQUENCE *ref_seq)
ali_prealigner_column(unsigned long length)