1 #ifndef DYNAMITEsywise20HEADERFILE 2 #define DYNAMITEsywise20HEADERFILE 3 #ifdef _cplusplus 4 extern "C" { 5 #endif 6 #include "dyna.h" 7 #include "pairbaseseq.h" 8 #include "pairbase.h" 9 #include "syexonmodel.h" 10 11 12 struct Wise2_SyWise20 { 13 int dynamite_hard_link; 14 #ifdef PTHREAD 15 pthread_mutex_t dynamite_mutex; 16 #endif 17 BaseMatrix * basematrix; 18 ShatterMatrix * shatter; 19 int leni; 20 int lenj; 21 SyExonScore* exonmodel; 22 ComplexSequence* seq; 23 PairBaseCodonModelScore* codon; 24 PairBaseModelScore* nonc; 25 PairBaseCodonModelScore* start; 26 PairBaseCodonModelScore* stop; 27 Score intron_open; 28 Score gene_open; 29 Score nonc_cost; 30 } ; 31 /* SyWise20 defined */ 32 #ifndef DYNAMITE_DEFINED_SyWise20 33 typedef struct Wise2_SyWise20 Wise2_SyWise20; 34 #define SyWise20 Wise2_SyWise20 35 #define DYNAMITE_DEFINED_SyWise20 36 #endif 37 38 39 #ifdef PTHREAD 40 struct thread_pool_holder_SyWise20 { 41 SyExonScore* exonmodel; /* Static query data: never free'd */ 42 ComplexSequence* seq; /* Static target data: never free'd */ 43 PairBaseCodonModelScore* codon; 44 PairBaseModelScore* nonc; 45 PairBaseCodonModelScore* start; 46 PairBaseCodonModelScore* stop; 47 Score intron_open; 48 Score gene_open; 49 Score nonc_cost; 50 pthread_mutex_t input_lock; 51 pthread_mutex_t output_lock; 52 Hscore * out; 53 pthread_t * pool; 54 int number_of_threads; 55 boolean search_has_ended; 56 DBSearchImpl * dbsi; 57 } ; 58 #endif /* PTHREAD */ 59 struct Wise2_SyWise20_access_func_holder { 60 int dynamite_hard_link; 61 #ifdef PTHREAD 62 pthread_mutex_t dynamite_mutex; 63 #endif 64 int (*access_main)(SyWise20*,int,int,int); 65 int (*access_special)(SyWise20*,int,int,int); 66 } ; 67 /* SyWise20_access_func_holder defined */ 68 #ifndef DYNAMITE_DEFINED_SyWise20_access_func_holder 69 typedef struct Wise2_SyWise20_access_func_holder Wise2_SyWise20_access_func_holder; 70 #define SyWise20_access_func_holder Wise2_SyWise20_access_func_holder 71 #define DYNAMITE_DEFINED_SyWise20_access_func_holder 72 #endif 73 74 75 76 77 /***************************************************/ 78 /* Callable functions */ 79 /* These are the functions you are expected to use */ 80 /***************************************************/ 81 82 83 84 /* Function: PackAln_read_Shatter_SyWise20(mat) 85 * 86 * Descrip: Reads off PackAln from shatter matrix structure 87 * 88 * 89 * Arg: mat [UNKN ] Undocumented argument [SyWise20 *] 90 * 91 * Return [UNKN ] Undocumented return value [PackAln *] 92 * 93 */ 94 PackAln * Wise2_PackAln_read_Shatter_SyWise20(SyWise20 * mat); 95 #define PackAln_read_Shatter_SyWise20 Wise2_PackAln_read_Shatter_SyWise20 96 97 98 /* Function: calculate_shatter_SyWise20(mat,dpenv) 99 * 100 * Descrip: This function calculates the SyWise20 matrix when in shatter mode 101 * 102 * 103 * Arg: mat [UNKN ] (null) [SyWise20 *] 104 * Arg: dpenv [UNKN ] Undocumented argument [DPEnvelope *] 105 * 106 * Return [UNKN ] Undocumented return value [boolean] 107 * 108 */ 109 boolean Wise2_calculate_shatter_SyWise20(SyWise20 * mat,DPEnvelope * dpenv); 110 #define calculate_shatter_SyWise20 Wise2_calculate_shatter_SyWise20 111 112 113 /* Function: search_SyWise20(dbsi,out,exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost) 114 * 115 * Descrip: This function makes a database search of SyWise20 116 * It uses the dbsi structure to choose which implementation 117 * to use of the database searching. This way at run time you 118 * can switch between single threaded/multi-threaded or hardware 119 * 120 * 121 * Arg: dbsi [UNKN ] Undocumented argument [DBSearchImpl *] 122 * Arg: out [UNKN ] Undocumented argument [Hscore *] 123 * Arg: exonmodel [UNKN ] Undocumented argument [SyExonScore*] 124 * Arg: seq [UNKN ] Undocumented argument [ComplexSequence*] 125 * Arg: codon [UNKN ] Undocumented argument [PairBaseCodonModelScore*] 126 * Arg: nonc [UNKN ] Undocumented argument [PairBaseModelScore*] 127 * Arg: start [UNKN ] Undocumented argument [PairBaseCodonModelScore*] 128 * Arg: stop [UNKN ] Undocumented argument [PairBaseCodonModelScore*] 129 * Arg: intron_open [UNKN ] Undocumented argument [Score] 130 * Arg: gene_open [UNKN ] Undocumented argument [Score] 131 * Arg: nonc_cost [UNKN ] Undocumented argument [Score] 132 * 133 * Return [UNKN ] Undocumented return value [Search_Return_Type] 134 * 135 */ 136 Search_Return_Type Wise2_search_SyWise20(DBSearchImpl * dbsi,Hscore * out,SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost); 137 #define search_SyWise20 Wise2_search_SyWise20 138 139 140 /* Function: serial_search_SyWise20(out,exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost) 141 * 142 * Descrip: This function makes a database search of SyWise20 143 * It is a single processor implementation 144 * 145 * 146 * Arg: out [UNKN ] Undocumented argument [Hscore *] 147 * Arg: exonmodel [UNKN ] Undocumented argument [SyExonScore*] 148 * Arg: seq [UNKN ] Undocumented argument [ComplexSequence*] 149 * Arg: codon [UNKN ] Undocumented argument [PairBaseCodonModelScore*] 150 * Arg: nonc [UNKN ] Undocumented argument [PairBaseModelScore*] 151 * Arg: start [UNKN ] Undocumented argument [PairBaseCodonModelScore*] 152 * Arg: stop [UNKN ] Undocumented argument [PairBaseCodonModelScore*] 153 * Arg: intron_open [UNKN ] Undocumented argument [Score] 154 * Arg: gene_open [UNKN ] Undocumented argument [Score] 155 * Arg: nonc_cost [UNKN ] Undocumented argument [Score] 156 * 157 * Return [UNKN ] Undocumented return value [Search_Return_Type] 158 * 159 */ 160 Search_Return_Type Wise2_serial_search_SyWise20(Hscore * out,SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost); 161 #define serial_search_SyWise20 Wise2_serial_search_SyWise20 162 163 164 /* Function: PackAln_bestmemory_SyWise20(exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost,dpenv,dpri) 165 * 166 * Descrip: This function chooses the best memory set-up for the alignment 167 * using calls to basematrix, and then implements either a large 168 * or small memory model. 169 * 170 * It is the best function to use if you just want an alignment 171 * 172 * If you want a label alignment, you will need 173 * /convert_PackAln_to_AlnBlock_SyWise20 174 * 175 * 176 * Arg: exonmodel [UNKN ] query data structure [SyExonScore*] 177 * Arg: seq [UNKN ] target data structure [ComplexSequence*] 178 * Arg: codon [UNKN ] Resource [PairBaseCodonModelScore*] 179 * Arg: nonc [UNKN ] Resource [PairBaseModelScore*] 180 * Arg: start [UNKN ] Resource [PairBaseCodonModelScore*] 181 * Arg: stop [UNKN ] Resource [PairBaseCodonModelScore*] 182 * Arg: intron_open [UNKN ] Resource [Score] 183 * Arg: gene_open [UNKN ] Resource [Score] 184 * Arg: nonc_cost [UNKN ] Resource [Score] 185 * Arg: dpenv [UNKN ] Undocumented argument [DPEnvelope *] 186 * Arg: dpri [UNKN ] Undocumented argument [DPRunImpl *] 187 * 188 * Return [UNKN ] Undocumented return value [PackAln *] 189 * 190 */ 191 PackAln * Wise2_PackAln_bestmemory_SyWise20(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost,DPEnvelope * dpenv,DPRunImpl * dpri); 192 #define PackAln_bestmemory_SyWise20 Wise2_PackAln_bestmemory_SyWise20 193 194 195 /* Function: allocate_Expl_SyWise20(exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost,dpri) 196 * 197 * Descrip: This function allocates the SyWise20 structure 198 * and the basematrix area for explicit memory implementations 199 * It calls /allocate_SyWise20_only 200 * 201 * 202 * Arg: exonmodel [UNKN ] query data structure [SyExonScore*] 203 * Arg: seq [UNKN ] target data structure [ComplexSequence*] 204 * Arg: codon [UNKN ] Resource [PairBaseCodonModelScore*] 205 * Arg: nonc [UNKN ] Resource [PairBaseModelScore*] 206 * Arg: start [UNKN ] Resource [PairBaseCodonModelScore*] 207 * Arg: stop [UNKN ] Resource [PairBaseCodonModelScore*] 208 * Arg: intron_open [UNKN ] Resource [Score] 209 * Arg: gene_open [UNKN ] Resource [Score] 210 * Arg: nonc_cost [UNKN ] Resource [Score] 211 * Arg: dpri [UNKN ] Undocumented argument [DPRunImpl *] 212 * 213 * Return [UNKN ] Undocumented return value [SyWise20 *] 214 * 215 */ 216 SyWise20 * Wise2_allocate_Expl_SyWise20(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost,DPRunImpl * dpri); 217 #define allocate_Expl_SyWise20 Wise2_allocate_Expl_SyWise20 218 219 220 /* Function: recalculate_PackAln_SyWise20(pal,mat) 221 * 222 * Descrip: This function recalculates the PackAln structure produced by SyWise20 223 * For example, in linear space methods this is used to score them 224 * 225 * 226 * Arg: pal [UNKN ] Undocumented argument [PackAln *] 227 * Arg: mat [UNKN ] Undocumented argument [SyWise20 *] 228 * 229 */ 230 void Wise2_recalculate_PackAln_SyWise20(PackAln * pal,SyWise20 * mat); 231 #define recalculate_PackAln_SyWise20 Wise2_recalculate_PackAln_SyWise20 232 233 234 /* Function: allocate_Small_SyWise20(exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost) 235 * 236 * Descrip: This function allocates the SyWise20 structure 237 * and the basematrix area for a small memory implementations 238 * It calls /allocate_SyWise20_only 239 * 240 * 241 * Arg: exonmodel [UNKN ] query data structure [SyExonScore*] 242 * Arg: seq [UNKN ] target data structure [ComplexSequence*] 243 * Arg: codon [UNKN ] Resource [PairBaseCodonModelScore*] 244 * Arg: nonc [UNKN ] Resource [PairBaseModelScore*] 245 * Arg: start [UNKN ] Resource [PairBaseCodonModelScore*] 246 * Arg: stop [UNKN ] Resource [PairBaseCodonModelScore*] 247 * Arg: intron_open [UNKN ] Resource [Score] 248 * Arg: gene_open [UNKN ] Resource [Score] 249 * Arg: nonc_cost [UNKN ] Resource [Score] 250 * 251 * Return [UNKN ] Undocumented return value [SyWise20 *] 252 * 253 */ 254 SyWise20 * Wise2_allocate_Small_SyWise20(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost); 255 #define allocate_Small_SyWise20 Wise2_allocate_Small_SyWise20 256 257 258 /* Function: PackAln_calculate_Small_SyWise20(mat,dpenv) 259 * 260 * Descrip: This function calculates an alignment for SyWise20 structure in linear space 261 * If you want only the start/end points 262 * use /AlnRangeSet_calculate_Small_SyWise20 263 * 264 * The function basically 265 * finds start/end points 266 * foreach start/end point 267 * calls /full_dc_SyWise20 268 * 269 * 270 * Arg: mat [UNKN ] Undocumented argument [SyWise20 *] 271 * Arg: dpenv [UNKN ] Undocumented argument [DPEnvelope *] 272 * 273 * Return [UNKN ] Undocumented return value [PackAln *] 274 * 275 */ 276 PackAln * Wise2_PackAln_calculate_Small_SyWise20(SyWise20 * mat,DPEnvelope * dpenv); 277 #define PackAln_calculate_Small_SyWise20 Wise2_PackAln_calculate_Small_SyWise20 278 279 280 /* Function: AlnRangeSet_calculate_Small_SyWise20(mat) 281 * 282 * Descrip: This function calculates an alignment for SyWise20 structure in linear space 283 * If you want the full alignment, use /PackAln_calculate_Small_SyWise20 284 * If you have already got the full alignment, but want the range set, use /AlnRangeSet_from_PackAln_SyWise20 285 * If you have got the small matrix but not the alignment, use /AlnRangeSet_from_SyWise20 286 * 287 * 288 * Arg: mat [UNKN ] Undocumented argument [SyWise20 *] 289 * 290 * Return [UNKN ] Undocumented return value [AlnRangeSet *] 291 * 292 */ 293 AlnRangeSet * Wise2_AlnRangeSet_calculate_Small_SyWise20(SyWise20 * mat); 294 #define AlnRangeSet_calculate_Small_SyWise20 Wise2_AlnRangeSet_calculate_Small_SyWise20 295 296 297 /* Function: AlnRangeSet_from_SyWise20(mat) 298 * 299 * Descrip: This function reads off a start/end structure 300 * for SyWise20 structure in linear space 301 * If you want the full alignment use 302 * /PackAln_calculate_Small_SyWise20 303 * If you have not calculated the matrix use 304 * /AlnRange_calculate_Small_SyWise20 305 * 306 * 307 * Arg: mat [UNKN ] Undocumented argument [SyWise20 *] 308 * 309 * Return [UNKN ] Undocumented return value [AlnRangeSet *] 310 * 311 */ 312 AlnRangeSet * Wise2_AlnRangeSet_from_SyWise20(SyWise20 * mat); 313 #define AlnRangeSet_from_SyWise20 Wise2_AlnRangeSet_from_SyWise20 314 315 316 /* Function: convert_PackAln_to_AlnBlock_SyWise20(pal) 317 * 318 * Descrip: Converts a path alignment to a label alignment 319 * The label alignment is probably much more useful than the path 320 * 321 * 322 * Arg: pal [UNKN ] Undocumented argument [PackAln *] 323 * 324 * Return [UNKN ] Undocumented return value [AlnBlock *] 325 * 326 */ 327 AlnBlock * Wise2_convert_PackAln_to_AlnBlock_SyWise20(PackAln * pal); 328 #define convert_PackAln_to_AlnBlock_SyWise20 Wise2_convert_PackAln_to_AlnBlock_SyWise20 329 330 331 /* Function: PackAln_read_Expl_SyWise20(mat) 332 * 333 * Descrip: Reads off PackAln from explicit matrix structure 334 * 335 * 336 * Arg: mat [UNKN ] Undocumented argument [SyWise20 *] 337 * 338 * Return [UNKN ] Undocumented return value [PackAln *] 339 * 340 */ 341 PackAln * Wise2_PackAln_read_Expl_SyWise20(SyWise20 * mat); 342 #define PackAln_read_Expl_SyWise20 Wise2_PackAln_read_Expl_SyWise20 343 344 345 /* Function: PackAln_read_generic_SyWise20(mat,h) 346 * 347 * Descrip: Reads off PackAln from explicit matrix structure 348 * 349 * 350 * Arg: mat [UNKN ] Undocumented argument [SyWise20 *] 351 * Arg: h [UNKN ] Undocumented argument [SyWise20_access_func_holder] 352 * 353 * Return [UNKN ] Undocumented return value [PackAln *] 354 * 355 */ 356 PackAln * Wise2_PackAln_read_generic_SyWise20(SyWise20 * mat,SyWise20_access_func_holder h); 357 #define PackAln_read_generic_SyWise20 Wise2_PackAln_read_generic_SyWise20 358 359 360 /* Function: calculate_SyWise20(mat) 361 * 362 * Descrip: This function calculates the SyWise20 matrix when in explicit mode 363 * To allocate the matrix use /allocate_Expl_SyWise20 364 * 365 * 366 * Arg: mat [UNKN ] SyWise20 which contains explicit basematrix memory [SyWise20 *] 367 * 368 * Return [UNKN ] Undocumented return value [boolean] 369 * 370 */ 371 boolean Wise2_calculate_SyWise20(SyWise20 * mat); 372 #define calculate_SyWise20 Wise2_calculate_SyWise20 373 374 375 /* Function: calculate_dpenv_SyWise20(mat,dpenv) 376 * 377 * Descrip: This function calculates the SyWise20 matrix when in explicit mode, subject to the envelope 378 * 379 * 380 * Arg: mat [UNKN ] SyWise20 which contains explicit basematrix memory [SyWise20 *] 381 * Arg: dpenv [UNKN ] Undocumented argument [DPEnvelope *] 382 * 383 * Return [UNKN ] Undocumented return value [boolean] 384 * 385 */ 386 boolean Wise2_calculate_dpenv_SyWise20(SyWise20 * mat,DPEnvelope * dpenv); 387 #define calculate_dpenv_SyWise20 Wise2_calculate_dpenv_SyWise20 388 389 390 /* Function: SyWise20_alloc(void) 391 * 392 * Descrip: Allocates structure: assigns defaults if given 393 * 394 * 395 * 396 * Return [UNKN ] Undocumented return value [SyWise20 *] 397 * 398 */ 399 SyWise20 * Wise2_SyWise20_alloc(void); 400 #define SyWise20_alloc Wise2_SyWise20_alloc 401 402 403 /* Function: free_SyWise20(obj) 404 * 405 * Descrip: Free Function: removes the memory held by obj 406 * Will chain up to owned members and clear all lists 407 * 408 * 409 * Arg: obj [UNKN ] Object that is free'd [SyWise20 *] 410 * 411 * Return [UNKN ] Undocumented return value [SyWise20 *] 412 * 413 */ 414 SyWise20 * Wise2_free_SyWise20(SyWise20 * obj); 415 #define free_SyWise20 Wise2_free_SyWise20 416 417 418 /* Unplaced functions */ 419 /* There has been no indication of the use of these functions */ 420 421 422 /***************************************************/ 423 /* Internal functions */ 424 /* you are not expected to have to call these */ 425 /***************************************************/ 426 int Wise2_SyWise20_shatter_access_main(SyWise20 * mat,int i,int j,int state); 427 #define SyWise20_shatter_access_main Wise2_SyWise20_shatter_access_main 428 int Wise2_SyWise20_shatter_access_special(SyWise20 * mat,int i,int j,int state); 429 #define SyWise20_shatter_access_special Wise2_SyWise20_shatter_access_special 430 void * Wise2_thread_loop_SyWise20(void * ptr); 431 #define thread_loop_SyWise20 Wise2_thread_loop_SyWise20 432 int Wise2_score_only_SyWise20(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost); 433 #define score_only_SyWise20 Wise2_score_only_SyWise20 434 SyWise20 * Wise2_allocate_SyWise20_only(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost); 435 #define allocate_SyWise20_only Wise2_allocate_SyWise20_only 436 void Wise2_init_SyWise20(SyWise20 * mat); 437 #define init_SyWise20 Wise2_init_SyWise20 438 AlnRange * Wise2_AlnRange_build_SyWise20(SyWise20 * mat,int stopj,int stopspecstate,int * startj,int * startspecstate); 439 #define AlnRange_build_SyWise20 Wise2_AlnRange_build_SyWise20 440 boolean Wise2_read_hidden_SyWise20(SyWise20 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,PackAln * out); 441 #define read_hidden_SyWise20 Wise2_read_hidden_SyWise20 442 int Wise2_max_hidden_SyWise20(SyWise20 * mat,int hiddenj,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore); 443 #define max_hidden_SyWise20 Wise2_max_hidden_SyWise20 444 boolean Wise2_read_special_strip_SyWise20(SyWise20 * mat,int stopi,int stopj,int stopstate,int * startj,int * startstate,PackAln * out); 445 #define read_special_strip_SyWise20 Wise2_read_special_strip_SyWise20 446 int Wise2_max_special_strip_SyWise20(SyWise20 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore); 447 #define max_special_strip_SyWise20 Wise2_max_special_strip_SyWise20 448 int Wise2_max_matrix_to_special_SyWise20(SyWise20 * mat,int i,int j,int state,int cscore,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore); 449 #define max_matrix_to_special_SyWise20 Wise2_max_matrix_to_special_SyWise20 450 void Wise2_calculate_hidden_SyWise20(SyWise20 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,DPEnvelope * dpenv); 451 #define calculate_hidden_SyWise20 Wise2_calculate_hidden_SyWise20 452 void Wise2_init_hidden_SyWise20(SyWise20 * mat,int starti,int startj,int stopi,int stopj); 453 #define init_hidden_SyWise20 Wise2_init_hidden_SyWise20 454 boolean Wise2_full_dc_SyWise20(SyWise20 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,PackAln * out,int * donej,int totalj,DPEnvelope * dpenv); 455 #define full_dc_SyWise20 Wise2_full_dc_SyWise20 456 boolean Wise2_do_dc_single_pass_SyWise20(SyWise20 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,DPEnvelope * dpenv,int perc_done); 457 #define do_dc_single_pass_SyWise20 Wise2_do_dc_single_pass_SyWise20 458 void Wise2_push_dc_at_merge_SyWise20(SyWise20 * mat,int starti,int stopi,int startj,int * stopj,DPEnvelope * dpenv); 459 #define push_dc_at_merge_SyWise20 Wise2_push_dc_at_merge_SyWise20 460 void Wise2_follow_on_dc_SyWise20(SyWise20 * mat,int starti,int stopi,int startj,int stopj,DPEnvelope * dpenv,int perc_done); 461 #define follow_on_dc_SyWise20 Wise2_follow_on_dc_SyWise20 462 void Wise2_run_up_dc_SyWise20(SyWise20 * mat,int starti,int stopi,int startj,int stopj,DPEnvelope * dpenv,int perc_done); 463 #define run_up_dc_SyWise20 Wise2_run_up_dc_SyWise20 464 void Wise2_init_dc_SyWise20(SyWise20 * mat); 465 #define init_dc_SyWise20 Wise2_init_dc_SyWise20 466 int Wise2_start_end_find_end_SyWise20(SyWise20 * mat,int * endj); 467 #define start_end_find_end_SyWise20 Wise2_start_end_find_end_SyWise20 468 boolean Wise2_dc_optimised_start_end_calc_SyWise20(SyWise20 *mat,DPEnvelope * dpenv); 469 #define dc_optimised_start_end_calc_SyWise20 Wise2_dc_optimised_start_end_calc_SyWise20 470 void Wise2_init_start_end_linear_SyWise20(SyWise20 * mat); 471 #define init_start_end_linear_SyWise20 Wise2_init_start_end_linear_SyWise20 472 AlnConvertSet * Wise2_AlnConvertSet_SyWise20(void); 473 #define AlnConvertSet_SyWise20 Wise2_AlnConvertSet_SyWise20 474 int Wise2_SyWise20_explicit_access_main(SyWise20 * mat,int i,int j,int state); 475 #define SyWise20_explicit_access_main Wise2_SyWise20_explicit_access_main 476 int Wise2_SyWise20_explicit_access_special(SyWise20 * mat,int i,int j,int state); 477 #define SyWise20_explicit_access_special Wise2_SyWise20_explicit_access_special 478 int Wise2_find_end_SyWise20(SyWise20 * mat,int * ri,int * rj,int * state,boolean * isspecial,SyWise20_access_func_holder h); 479 #define find_end_SyWise20 Wise2_find_end_SyWise20 480 void Wise2_SyWise20_debug_show_matrix(SyWise20 * mat,int starti,int stopi,int startj,int stopj,FILE * ofp); 481 #define SyWise20_debug_show_matrix Wise2_SyWise20_debug_show_matrix 482 int Wise2_max_calc_SyWise20(SyWise20 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore,SyWise20_access_func_holder h); 483 #define max_calc_SyWise20 Wise2_max_calc_SyWise20 484 int Wise2_max_calc_special_SyWise20(SyWise20 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore,SyWise20_access_func_holder h); 485 #define max_calc_special_SyWise20 Wise2_max_calc_special_SyWise20 486 487 #ifdef _cplusplus 488 } 489 #endif 490 491 #endif 492