Next version of JABA
[jabaws.git] / binaries / src / tcoffee / t_coffee_source / dp_lib_header.h
1 struct CL_node
2     {
3      
4       int copy_mode;
5       struct CL_node *c;
6       struct CL_node *p;
7       struct CL_node *l;
8       struct CL_node *r;
9       int seq;
10       int res;
11       int free;
12 };
13
14 typedef struct CL_node CL_node;
15 Alignment * add_constraint2aln ( Alignment *A, int s1, int r1, int s2, int r2);
16 Alignment * graph_aln (Alignment *A, Constraint_list *CL, Sequence *S);
17 Alignment* graph2aln (Alignment *A, CL_node *G, Sequence *S);
18 CL_node ***add_constraint2graph_aln (CL_node ***G, int s1, int r1, int s2, int r2);
19 CL_node * shift_segment ( CL_node *S, int segL, int shiftL);
20
21 int  is_graph_gap_column(CL_node *S);
22 CL_node * remove_graph_gap_column (CL_node *S);
23 CL_node * swap_gap_in_graph ( CL_node*S, CL_node *E);
24
25 CL_node * declare_cl_nodes ( int len, int seq);
26 CL_node * insert_gap_columns (CL_node *S, int d);
27 int get_node_distance ( CL_node *S, CL_node *E);
28 CL_node ***aln2graph (Alignment *A);
29 CL_node *vfree_graph (CL_node *S);
30 CL_node *vfree_cl_node ( CL_node *N);
31
32 int gotoh_pair_wise_lalign ( Alignment *A, int*ns, int **l_s,Constraint_list *CL);
33 Constraint_list * undefine_sw_aln ( Alignment *A, Constraint_list *CL);
34 Constraint_list * undefine_sw_pair ( Constraint_list *CL, int s1, int r1, int s2, int r2);
35 int sw_pair_is_defined ( Constraint_list *CL, int s1, int r1, int s2, int r2);
36
37
38 int gotoh_pair_wise_sw (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
39
40 Alignment * get_best_local_aln ( Alignment *IN,Constraint_list *CL,int gop, int gep, int sw_t, int sw_l, int sw_z, int greedy);
41 Alignment * get_best_nol_local_aln ( Alignment *IN, Constraint_list *CL, int gop, int gep,int sw_t,int sw_l, int sw_z, int mode);
42 double compute_penalty   (Constraint_list *CL, char *mode, int len);
43 double compute_scale ( Constraint_list *CL,char *mode, int len);
44 int evaluate_penalty (Alignment *A, Constraint_list *CL, int *scale,char *scale_mode, int *penalty, char *penalty_mode, int len_seq);
45 Alignment ** t_coffee_lalign   (Constraint_list *CL, int scale, int penalty,int maximise,Sequence *S, int sw_t, int sw_l, int sw_z,int *sw_n, int sw_io);
46 Alignment * add_seq2aln   (Constraint_list *CL, Alignment *IN,Sequence  *S);
47
48
49
50
51
52
53
54 struct Dp_Model
55 {
56   int *diag;
57
58   int TG_MODE;
59   int F_TG_MODE;
60   int gop;
61   int gep;
62   int f_gop;
63   int f_gep;
64   int nstate;
65   int START;
66   int END;
67   
68   char**model_comments;
69   int **model;
70   int **model_properties;
71   int **bounded_model;
72   int (***model_emission_function)(Alignment*, int **, int, int*, int, int **, int, int*, int, struct Constraint_list *);
73
74   int LEN_I;
75   int LEN_J;
76   int DELTA_I;
77   int DELTA_J;
78   int EMISSION;
79   int START_EMISSION;
80   int TERM_EMISSION;
81   
82   int ALN_TYPE;
83   Constraint_list *CL;
84   /*Associated Functions*/
85   
86   /*To Deprecate*/
87   int UM;
88   
89   int TYPE;
90   int F0;
91   int F1;
92   
93   
94   int NON_CODING;
95   int INSERTION;
96   int DELETION;
97   int CODING0;
98   int CODING1;
99   int CODING2;
100   
101
102 };
103 typedef struct Dp_Model Dp_Model;
104
105 struct Dp_Result
106 {
107   int *traceback;
108   int len;
109   int score;
110   Dp_Model *Dp_model;
111 };
112 typedef struct Dp_Result Dp_Result;
113
114 Dp_Result * make_fast_generic_dp_pair_wise (Alignment *A, int*ns, int **l_s,Dp_Model *M);
115
116 Constraint_list* free_dp_model  (Dp_Model *D);
117 Dp_Result * free_dp_result (Dp_Result *D );
118
119 typedef struct hseq* SeqHasch;
120
121 typedef struct hseq
122 {
123   SeqHasch hl[256];
124   int  n;
125   int  *l;
126 } hseq;
127
128 int ** ktup_dist_mat ( char **seq, int nseq, int ktup, char *type);
129 int ** evaluate_diagonals_for_two_sequences ( char *seq1, char *seq2,int maximise,Constraint_list *CL,int ktup);
130 int ** evaluate_diagonals ( Alignment *A, int *ns, int **l_s, Constraint_list *CL,int maximise,int n_groups, char **group_list,int ktup);
131 int ** evaluate_segments_with_ktup  ( Alignment *A, int *ns, int **l_s, Constraint_list *CL,int maximise,int n_groups, char **group_list,int ktup);
132 int ** evaluate_diagonals_with_ktup ( Alignment *A, int *ns, int **l_s, Constraint_list *CL,int maximise,int n_groups, char **group_list,int ktup);
133
134 int ** evaluate_diagonals_with_clist ( Alignment *A, int *ns, int **l_s, Constraint_list *CL,int maximise,int n_groups, char **group_list,int ktup);
135
136 int * flag_diagonals (int l1, int l2, int **sorted_diag,float T, int window);                
137 int * extract_N_diag (int l1, int l2, int **sorted_diag, int n_chosen_diag, int window);
138
139 int hasch_seq(char *seq1, int **hs, int **lu,int ktup, char *alph);
140 int fasta_gotoh_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
141 int cfasta_gotoh_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
142 int very_fast_gotoh_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
143
144 int make_fasta_gotoh_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL, int *diag);
145 /*********************************************************************/
146 /*                                                                   */
147 /*                         KTUP_DP                                   */
148 /*                                                                   */
149 /*                                                                   */
150 /*********************************************************************/
151
152 int precomputed_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
153 int ktup_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
154 int ktup_comparison ( char *seq1, char *seq2, int ktup);
155 HaschT* hasch_sequence ( char *seq1, int ktup);
156
157 SeqHasch * seq2hasch (int i,char *seq, int ktup, SeqHasch *H);
158 Constraint_list * hasch2constraint_list (Sequence*S, Constraint_list *CL);
159 SeqHasch *cleanhasch       (SeqHasch *H);
160 int hasch2sim        (SeqHasch *H, int nseq);
161 int cfasta_gotoh_pair_wise_sw (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
162 int fasta_gotoh_pair_wise_sw (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
163 int make_fasta_gotoh_pair_wise_sw (Alignment *A,int*ns, int **l_s,Constraint_list *CL, int *diag);
164
165 /*pair wise aln implementations*/
166
167 int idscore_pairseq (char *s1, char *s2, int gop, int gep, int **m, char *mode);
168 int idscore_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
169 int gotoh_pair_wise    (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
170 int glocal_pair_wise ( Alignment *A, int *ns, int **l_s, Constraint_list *CL);
171 int gotoh_pair_wise_lgp ( Alignment *A, int *ns, int **l_s, Constraint_list *CL);
172 int test_pair_wise (Alignment *A, int *ns, int **l_s, Constraint_list *CL);
173
174 int glocal2_pair_wise (Alignment *A,int*ns, int **ls,Constraint_list *CL);
175 int gotoh_pair_wise_lgp_sticky ( Alignment *A, int *ns, int **l_s, Constraint_list *CL);
176 int linked_pair_wise ( Alignment *A, int *ns, int **l_s, Constraint_list *CL);
177 int clinked_pair_wise ( Alignment *A, int *ns, int **l_s, Constraint_list *CL);
178 void free_proba_pair_wise();
179
180 int subop1_pair_wise ( Alignment *A, int *ns, int **ls, Constraint_list *CL);
181 int subop2_pair_wise ( Alignment *A, int *ns, int **ls, Constraint_list *CL);
182 int proba_pair_wise ( Alignment *A, int *ns, int **ls, Constraint_list *CL);
183 int viterbi_pair_wise ( Alignment *A, int *ns, int **ls, Constraint_list *CL);
184 int biphasic_pair_wise ( Alignment *A, int *ns, int **l_s, Constraint_list *CL);
185
186   
187
188   
189       
190   
191  
192
193 int cfasta_cdna_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
194 int fasta_cdna_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
195 Dp_Model* initialize_dna_dp_model (Constraint_list *CL);
196 Dp_Result * make_fast_dp_pair_wise (Alignment *A,int*ns, int **l_s, Constraint_list *CL,Dp_Model *M);
197 int make_fasta_cdna_pair_wise (Alignment *B,Alignment *A,int*ns, int **l_s,Constraint_list *CL, int *diag);
198
199
200
201 int ** evaluate_diagonals_cdna ( Alignment *A, int *ns, int **l_s, Constraint_list *CL,int maximise,int n_groups, char **group_list, int ktup);
202 int cfasta_cdna_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL);
203 Alignment *clean_maln ( Alignment *A, Alignment *I, int T, int n_it);
204 Alignment *realign_segment (int seq, int start, int len,Alignment *A, Alignment *C);
205 Dp_Model * initialize_seg2prf_model(int left_tg_mode, int right_tg_mode, Constraint_list *CL);
206
207 int get_gep_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
208 int get_start_gep_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
209 int get_term_gep_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
210
211 Dp_Model * initialize_sseq_model(int left_tg_mode, int right_tg_mode, Constraint_list *CL);
212 int ssec_pwaln_maln (Alignment *A, int *ns, int **ls, Constraint_list *CL);
213
214
215 int get_turn_gep_cost       (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
216 int get_turn_start_gep_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
217 int get_turn_term_gep_cost  (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
218
219 int get_alpha_gep_cost      (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
220 int get_alpha_start_gep_cost(Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
221 int get_alpha_term_gep_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
222
223 int get_beta_gep_cost       (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
224 int get_beta_start_gep_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
225 int get_beta_term_gep_cost  (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
226
227 int get_alpha_sub_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
228 int get_beta_sub_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
229 int get_turn_sub_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
230
231 int get_ssec_no_cost (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
232 int sim_pair_wise_lalign (Alignment *in_A, int *in_ns, int **in_l_s, Constraint_list *in_CL);
233
234 /*pair wise aln implementations*/
235 int myers_miller_pair_wise (Alignment *A, int *ns, int **l_s,Constraint_list *CL);
236 int diff (Alignment *A, int *ns, int **ls, int s1, int M,int s2, int N , int tb, int te, Constraint_list *CL, int **pos);
237 int evaluate_est_order (Sequence *S, char *concat, Constraint_list *CL, int ktuple);
238  
239 Constraint_list *prepare_cl_for_moca ( Constraint_list *CL);
240 Alignment ** moca_aln ( Constraint_list *CL);
241 Alignment * extract_domain ( Constraint_list *CL);
242 Alignment * interactive_domain_extraction ( Constraint_list *CL);
243 int print_moca_interactive_choices ();
244
245 Alignment * approximate_domain ( int min_start, int max_start, int step_start,int min_len, int max_len, int step_len, int *best_start, int *best_len, int *best_score, Constraint_list *CL);
246  
247 int measure_domain_length ( Constraint_list *CL,Alignment *IN, int start, int min_size, int max_size, int step);
248 Alignment *extract_domain_with_coordinates ( Alignment *RESULT,int start, int len, Constraint_list *CL);
249 int get_starting_point ( Constraint_list *CL);
250
251 Alignment * find_domain_coordinates (Constraint_list *CL, int *start, int *len);
252 Alignment * extend_domain ( Constraint_list *CL, int *start, int *len, int dstart, int dlen);
253 Alignment * modify_domain ( Constraint_list *CL, Alignment *IN, int *start, int *len, int dstart, int dlen);
254
255 int * analyse_sequence ( Constraint_list *CL);
256
257 /****************************************************************************/
258 /*                                                                          */  
259 /*                                                                          */  
260 /*            Alignment Methods                                             */
261 /*                                                                          */  
262 /*                                                                          */  
263 /****************************************************************************/
264 Alignment * sorted_aln (Alignment *A, Constraint_list *CL);
265 Alignment * sorted_aln_seq (int seq, Alignment *A, Constraint_list *CL);
266 Alignment * full_sorted_aln (Alignment *A, Constraint_list *CL);
267
268 /******************************************************************/
269 /*                   MAIN DRIVER                                  */
270 /*                                                                */
271 /*                                                                */
272 /******************************************************************/
273
274 Constraint_list *profile2list     ( Job_TC *job,int nprf);
275 Constraint_list *seq2list     (Job_TC *Job);
276 Constraint_list *method2pw_cl (TC_method *M, Constraint_list *CL);
277 int method_uses_structure(TC_method *M);
278 int method_uses_profile(TC_method *M);
279
280 /******************************************************************/
281 /*                   MULTIPLE ALIGNMENTS                          */
282 /*                                                                */
283 /*                                                                */
284 /******************************************************************/
285 Alignment * compute_prrp_aln (Alignment *A, Constraint_list *CL);
286 Alignment * compute_clustalw_aln (Alignment *A, Constraint_list *CL);
287 Alignment * compute_tcoffee_aln_quick (Alignment *A, Constraint_list *CL);
288 Alignment * seq2clustalw_aln (Sequence *S);
289 Alignment * aln2clustalw_aln (Alignment *A, Constraint_list *CL);
290 Alignment * realign_block ( Alignment *A, int col1, int col2, char *pg);
291 /******************************************************************/
292 /*                  DNA                                           */
293 /*                                                                */
294 /*                                                                */
295 /******************************************************************/
296 Constraint_list * align_coding_nucleotides (char *seq, char *method, char *weight, char *mem_mode, Constraint_list *CL);
297 /******************************************************************/
298 /*                   STRUCTURES                                   */
299 /*                                                                */
300 /*                                                                */
301 /******************************************************************/
302 Constraint_list * seq_msa (TC_method *M , char *in_seq, Constraint_list *CL);
303
304 Constraint_list *align_pdb_pair   (char *seq_in, char *dp_mode,char *evaluate_mode, char *file, Constraint_list *CL, Job_TC *job);
305 Constraint_list * align_pdb_pair_2 (char *seq, Constraint_list *CL);
306
307 Constraint_list * pdb_pair  ( TC_method*M,char *seq, Constraint_list *CL);
308 Constraint_list * pdbid_pair  ( TC_method*M,char *seq, Constraint_list *CL);
309 Constraint_list * profile_pair  ( TC_method*M,char *seq, Constraint_list *CL);
310 Constraint_list * thread_pair  ( TC_method*M,char *seq, Constraint_list *CL);
311 Constraint_list * thread_pair2 ( TC_method *M,int s1, int s2, Constraint_list *CL);
312 Constraint_list * sap_pair (char *seq, char *weight, Constraint_list *CL);
313 Constraint_list * lsqman_pair (char *seq, Constraint_list *CL);
314 Constraint_list * rna_pair (TC_method *M , char *in_seq, Constraint_list *CL);
315
316 /******************************************************************/
317 /*                   GENERIC PAIRWISE METHODS                     */
318 /*                                                                */
319 /*                                                                */
320 /******************************************************************/
321 Constraint_list *best_pair4prot (Job_TC *job);
322 Constraint_list *best_pair4rna (Job_TC *job);
323 Alignment * fast_pair      (Job_TC *job);
324                             
325 void toggle_case_in_align_two_sequences(int value);
326 Alignment * align_two_sequences ( char *seq1, char *seq2, char *matrix, int gop, int gep, char *align_mode);
327 Alignment * align_two_aln ( Alignment *A1, Alignment  *A2, char *in_matrix, int gop, int gep, char *in_align_mode);
328 NT_node make_root_tree ( Alignment *A,Constraint_list *CL,int gop, int gep,Sequence *S,  char *tree_file,int maximise);
329 NT_node ** make_tree ( Alignment *A,Constraint_list *CL,int gop, int gep,Sequence *S,  char *tree_file, int maximise);
330 int ** get_pw_distances ( Alignment *A,Constraint_list *CL,int gop, int gep, char **out_seq, char **out_seq_name, int out_nseq, char *tree_file, char *tree_mode, int maximise);
331 Alignment *stack_progressive_nol_aln_with_seq_coor(Constraint_list *CL,int gop, int gep,Sequence *S, int **seq_coor, int nseq);
332 Alignment *stack_progressive_aln_with_seq_coor (Constraint_list*CL,int gop, int gep, Sequence *S, int **coor, int nseq);
333 Alignment *stack_progressive_aln(Alignment *A, Constraint_list *CL, int gop, int gep);
334 Alignment *est_progressive_aln(Alignment *A, Constraint_list *CL, int gop, int gep);
335 void analyse_seq ( Alignment *A, int s);
336
337 char ** list_file2dpa_list_file (char **list_file, int *len,int maxnseq, Sequence *S);
338 Alignment * seq2aln_group (Alignment *A, int T, Constraint_list *CL);
339
340 Alignment *profile_aln (Alignment *A, Constraint_list *CL);
341 Alignment * iterative_tree_aln (Alignment *A,int n, Constraint_list *CL);
342 Alignment * iterative_aln ( Alignment*A, int nseq, Constraint_list *CL);
343 Alignment * seq_aln ( Alignment*A, int nseq, Constraint_list *CL);
344 Alignment *tsp_aln (Alignment *A, Constraint_list *iCL, Sequence *S);
345 Alignment *iterate_aln ( Alignment*A, int nit, Constraint_list *CL);
346 Alignment *realign_aln ( Alignment*A, Constraint_list *CL);
347 Alignment *very_fast_aln (Alignment*A, int nseq, Constraint_list *CL);
348 Alignment *simple_progressive_aln (Sequence *S, NT_node **T, Constraint_list *CL, char *mat);
349 Alignment *frame_aln (Alignment *A, int n,Constraint_list *CL);
350 Alignment *dpa_aln (Alignment *A, Constraint_list *CL);
351 Alignment *new_dpa_aln (Alignment *A, Constraint_list *CL);
352 Alignment * make_delayed_tree_aln (Alignment *A,int n, Constraint_list *CL);
353
354 NT_node* delayed_tree_aln ( NT_node LT, NT_node RT, Alignment*A, int nseq, Constraint_list *CL);
355 int  node2seq_list (NT_node P, int *ns, int *ls);
356 Alignment* delayed_tree_aln1 ( NT_node P,Alignment*A,Constraint_list *CL, int threshold);
357 Alignment* delayed_tree_aln2 ( NT_node P,Alignment*A,Constraint_list *CL, int threshold);
358
359 NT_node* tree2ao (NT_node LT, NT_node RT,Alignment *A, int nseq,Constraint_list *CL);//tree2align_order
360 NT_node* tree_aln ( NT_node LT, NT_node RT, Alignment*A, int nseq, Constraint_list *CL);
361 NT_node* local_tree_aln ( NT_node LT, NT_node RT, Alignment*A, int nseq, Constraint_list *CL);
362 NT_node* seqan_tree_aln ( NT_node LT, NT_node RT, Alignment*A, int nseq, Constraint_list *CL);
363
364
365 NT_node* tree_realn ( NT_node LT, NT_node RT, Alignment*A, int nseq, Constraint_list *CL);
366
367 int split_condition (int nseq, int score, Constraint_list *CL);
368
369 int profile_pair_wise (Alignment *A, int n1, int *l1, int n2, int *l2, Constraint_list *CL);
370 int pair_wise (Alignment *A, int*ns, int **l_s,Constraint_list *CL );
371
372 int empty_pair_wise ( Alignment *A, int *ns, int **l_s, Constraint_list *CL, int glocal);
373
374
375 Pwfunc get_pair_wise_function (Pwfunc func, char *dp_mode, int *glocal);
376
377
378
379 char *build_consensus ( char *seq1, char *seq2, char *dp_mode);
380 int fastal (int argv, char **arg);
381
382 int domain_pair_wise (Alignment *A,int*ns, int **l_s,Constraint_list *CL );
383 Alignment *domain_match_list2aln ( Alignment *A,int *ns,int **l_s,int **ml, int nseq, int len);
384 Alignment * domain_seq2domain (Constraint_list *CL,int scale,int gop,int gep,Alignment *SEQ_DOMAIN, Alignment *TARGET);
385
386
387 int custom_pair_score_function1  (Constraint_list *CL, int s1, int r1, int s2, int r2);
388 int custom_pair_score_function2  (Constraint_list *CL, int s1, int r1, int s2, int r2);
389 int custom_pair_score_function3  (Constraint_list *CL, int s1, int r1, int s2, int r2);
390 int custom_pair_score_function4  (Constraint_list *CL, int s1, int r1, int s2, int r2);
391 int custom_pair_score_function5  (Constraint_list *CL, int s1, int r1, int s2, int r2);
392 int custom_pair_score_function6  (Constraint_list *CL, int s1, int r1, int s2, int r2);
393 int custom_pair_score_function7  (Constraint_list *CL, int s1, int r1, int s2, int r2);
394 int custom_pair_score_function8  (Constraint_list *CL, int s1, int r1, int s2, int r2);
395 int custom_pair_score_function9  (Constraint_list *CL, int s1, int r1, int s2, int r2);
396 int custom_pair_score_function10 (Constraint_list *CL, int s1, int r1, int s2, int r2);
397 int apdb (int argc, char *argv[]);
398
399 Constraint_list * set_constraint_list4align_pdb (Constraint_list *inCL,int seq, char *dp_mode, char *hasch_mode, char *param_file);
400 int evaluate_ca_trace_sap2_bubble (Constraint_list *CL, int s1, int r1, int s2, int r2);
401 int evaluate_ca_trace_nb (Constraint_list *CL, int s1, int s2, int r1, int r2);
402 int evaluate_ca_trace_bubble (Constraint_list *CL, int s1, int s2, int r1, int r2);
403 int evaluate_ca_trace_sap1_bubble (Constraint_list *CL, int s1, int s2, int r1, int r2);
404 int evaluate_ca_trace_3D_bubble (Constraint_list *CL, int s1, int s2, int r1, int r2);
405 int evaluate_ca_trace_transversal (Constraint_list *CL, int s1, int s2, int r1, int r2);
406 int evaluate_ca_trace_bubble_2 (Constraint_list *CL, int s1, int s2, int r1, int r2);
407 int evaluate_ca_trace_bubble_3 (Constraint_list *CL, int s1, int s2, int r1, int r2);
408
409
410 /*********************************************************************************************/
411 /*                                                                                           */
412 /*         FUNCTIONS FOR COMPARING TWO NEIGHBORHOODS:START                                   */
413 /*                                                                                           */
414 /*********************************************************************************************/
415 float matrix_match (Constraint_list *CL, int s1, int s2, int r1, int r2, Struct_nb *nbs1, Struct_nb *nbs2);
416 float transversal_match (Constraint_list *CL, int s1, int s2, int r1, int r2, Struct_nb *nbs1, Struct_nb *nbs2);
417 float neighborhood_match (Constraint_list *CL, int s1, int s2, int r1, int r2,Struct_nb *nbs1, Struct_nb *nbs2);
418 float sap1_neighborhood_match (Constraint_list *CL, int s1, int s2, int r1, int r2, Struct_nb *nbs1, Struct_nb *nbs2);
419 float sap2_neighborhood_match (Constraint_list *CL, int s1, int s2, int r1, int r2, Struct_nb *nbs1, Struct_nb *nbs2);
420
421
422 /*********************************************************************************************/
423 /*                                                                                           */
424 /*         FUNCTIONS FOR COMPARING TWO NEIGHBORHOODS:END                                     */
425 /*                                                                                           */
426 /*********************************************************************************************/
427 Alignment * analyse_pdb ( Alignment *A, Alignment *ST, char *filename);
428 Alignment * msa2struc_dist ( Alignment *A, Alignment *ST, char *filename);
429 float **** analyse_pdb_residues ( Alignment *A, Constraint_list *CL, Pdb_param *pdb_param);
430
431 float square_atom ( Atom *X);
432 Atom* reframe_atom ( Atom *X, Atom*Y, Atom *Z, Atom *IN, Atom *R);
433 Atom* add_atom ( Atom *A, Atom*B, Atom *R);
434 Atom* diff_atom ( Atom *A, Atom*B, Atom *R);
435 Atom * copy_atom ( Atom *A, Atom*R);
436 /************************************************************************/
437 /*                                                                      */
438 /*                            NUSSINOV                                  */
439 /*                                                                      */
440 /************************************************************************/
441 char *nussinov (char *S, int min_dist);
442 char * rna_struc2rna_lib ( char *seq_name, char *seq, char *name);
443 int display_rna_ss ( int pos, char *seq, char *struc, FILE *fp);
444 int evaluate_aln_gibbs   ( Alignment *A, Constraint_list *CL);
445 int evaluate_moca_domain ( Alignment *A, Constraint_list *CL);
446 int moca_residue_pair_extended_list ( Constraint_list *CL, int s1, int r1, int s2, int r2);
447 int moca_evaluate_matrix_score      ( Constraint_list *CL, int s1, int r1, int s2, int r2);
448 int moca_slow_get_dp_cost ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
449
450 int **cache_cl_with_moca_domain (Alignment *A, Constraint_list *CL);
451 Alignment *make_moca_nol_aln ( Alignment *A, Constraint_list *CL);
452 /*********************************************************************************************/
453 /*                                                                                           */
454 /*         DOMAIN Z SCORE EVALUATION                                                         */
455 /*                                                                                           */
456 /*********************************************************************************************/
457
458 int evaluate_domain_aln_z_score (Alignment *A, int start, int end,Constraint_list *CL, char *alphabet);
459 int evaluate_domain_aln  ( Alignment *A, int start, int end,Constraint_list *CL);
460
461
462
463 int unpack_seq_residues ( int *s1, int *r1, int *s2, int *r2, int **packed_seq_lu);
464 Alignment * unpack_seq_aln ( Alignment *A,Constraint_list *C);
465 typedef struct 
466 {
467   int N_COMPONENT;
468   double *double_logB_alpha;
469   double *exponant_list;
470   double **ALPHA;
471   double *DM_Q;
472   double *alpha_tot;
473   int n_aa;
474   int tot_n;
475 }
476 Mixture;
477
478 double int_logB (int *i, int n);
479 double float_logB (float *i, int n);
480 double double_logB (double *x, int n);
481 double *** make_lup_table ( Mixture *D);
482 double  double_logB2(int j, double *n,Mixture *D);
483 double compute_exponant ( double *n, int j, Mixture *D);
484
485 double *compute_matrix_p ( double *n,int Nseq);
486 double* compute_dirichlet_p ( double *n,int Nseq);
487 void precompute_log_B ( double *table,Mixture *D);
488 double compute_X (double *n,int i,Mixture *D);
489 Mixture *read_dirichlet ( char *name);
490 int dirichlet_code( char aa);
491
492 double lgamma2 ( double x);
493 double lgamma_r(double x, int *signgamp);
494 /*********************************************************************************************/
495 /*                                                                                           */
496 /*         FUNCTIONS FOR EVALUATING THE CONSISTENCY BETWEEN ALN AND CL                       */
497 /*                                                                                           */
498 /*********************************************************************************************/
499 Alignment * overlay_alignment_evaluation     ( Alignment *I, Alignment *O);
500 Alignment * main_coffee_evaluate_output          ( Alignment *IN,Constraint_list *CL, const char *mode );
501 int aln2ecl_raw_score (Alignment *A, Constraint_list *C);
502 int sub_aln2ecl_raw_score (Alignment *A, Constraint_list *CL, int ns, int *ls);
503 int sub_aln2sub_aln_raw_score ( Alignment *IN,Constraint_list *CL, const char *mode, int *ns, int **ls);
504 int node2sub_aln_score(Alignment *A,Constraint_list *CL, char *mode, NT_node T);
505 int sub_aln2sub_aln_score ( Alignment *IN,Constraint_list *CL, const char *mode, int *ns, int **ls);
506 Alignment *  main_coffee_evaluate_output_sub_aln ( Alignment *IN,Constraint_list *CL, const char *mode, int *ns, int **ls);
507
508 Alignment * categories_evaluate_output               ( Alignment *IN,Constraint_list *CL);
509 Alignment * matrix_evaluate_output               ( Alignment *IN,Constraint_list *CL);
510 Alignment * sar_evaluate_output ( Alignment *IN,Constraint_list *CL);
511 Alignment * boxshade_evaluate_output ( Alignment *IN,Constraint_list *CL, int T);
512
513 Alignment * fast_coffee_evaluate_output          ( Alignment *IN,Constraint_list *CL);
514
515 int slow_coffee_evaluate_sub_aln         ( Alignment *IN,int *ns, int **ls, Constraint_list *CL);
516 Alignment * slow_coffee_evaluate_output          ( Alignment *IN,Constraint_list *CL);
517 Alignment * non_extended_t_coffee_evaluate_output( Alignment *IN,Constraint_list *CL);
518 Alignment * heuristic_coffee_evaluate_output     ( Alignment *IN,Constraint_list *CL);
519 /*Old Function: To deprecate*/
520 Alignment * coffee_evaluate_output ( Alignment *IN,Constraint_list *CL);
521
522 /*********************************************************************************************/
523 /*                                                                                           */
524 /*        PROFILE/PRofile Functions                                                          */
525 /*                                                                                           */
526 /*********************************************************************************************/
527 Profile_cost_func get_profile_mode_function (char *name, Profile_cost_func func);
528 int generic_evaluate_profile_score     (Constraint_list *CL,Alignment *Prf1, int s1, int r1, Alignment *Prf2, int s2, int r2, Profile_cost_func prf_prf);
529 int cw_profile_profile     (int *prf1, int *prf2, Constraint_list *CL);
530 int muscle_profile_profile     (int *prf1, int *prf2, Constraint_list *CL);
531
532 /*********************************************************************************************/
533 /*                                                                                           */
534 /*         FUNCTIONS FOR GETING THE COST : (Sequences) ->evaluate_residue_pair               */
535 /*                                                                                           */
536 /*********************************************************************************************/
537 int evaluate_blast_profile_score (Constraint_list *CL, int s1, int r1, int s2, int r2);
538 int evaluate_aln_profile_score   (Constraint_list *CL, int s1, int r1, int s2, int r2);
539
540 int evaluate_profile_score                         ( Constraint_list *CL,Alignment *Prf1, int s1, int r1, Alignment *Prf2, int s2, int r2);
541 int evaluate_cdna_matrix_score                     ( Constraint_list *CL, int s1, int r1, int s2, int r2);
542 int evaluate_diaa_matrix_score                     ( Constraint_list *CL, int s1, int r1, int s2, int r2);
543 int evaluate_monoaa_matrix_score                   ( Constraint_list *CL, int s1, int r1, int s2, int r2);
544 int evaluate_matrix_score                          ( Constraint_list *CL, int s1, int r1, int s2, int r2);
545 int evaluate_tm_matrix_score                          ( Constraint_list *CL, int s1, int r1, int s2, int r2);
546 int evaluate_ssp_matrix_score                          ( Constraint_list *CL, int s1, int r1, int s2, int r2);
547 int evaluate_curvature_score                          ( Constraint_list *CL, int s1, int r1, int s2, int r2);
548
549 int evaluate_combined_matrix_score                 ( Constraint_list *CL, int s1, int r1, int s2, int r2);
550 int evaluate_physico_score                         ( Constraint_list *CL, int s1, int r1, int s2, int r2);
551 int residue_pair_non_extended_list                 ( Constraint_list *CL, int s1, int r1, int s2, int r2);
552
553 int residue_pair_extended_list4rna1                 ( Constraint_list *CL, int s1, int r1, int s2, int r2);
554 int residue_pair_extended_list4rna2                 ( Constraint_list *CL, int s1, int r1, int s2, int r2);
555 int residue_pair_extended_list4rna3                 ( Constraint_list *CL, int s1, int r1, int s2, int r2);
556 int residue_pair_extended_list4rna4                 ( Constraint_list *CL, int s1, int r1, int s2, int r2);
557 int residue_pair_extended_list4rna                  ( Constraint_list *CL, Constraint_list *R, int s1, int r1, int s2, int r2);
558
559 int residue_pair_extended_list_raw                     ( Constraint_list *CL, int s1, int r1, int s2, int r2);
560 int residue_pair_extended_list_pc                     ( Constraint_list *CL, int s1, int r1, int s2, int r2);
561 int residue_pair_extended_list                     ( Constraint_list *CL, int s1, int r1, int s2, int r2);
562
563
564
565
566 int residue_pair_extended_list_g_coffee_quadruplet ( Constraint_list *CL, int s1, int r1, int s2, int r2);
567 int residue_pair_extended_list_g_coffee            ( Constraint_list *CL, int s1, int r1, int s2, int r2);
568 int residue_pair_extended_list_quadruplet          ( Constraint_list *CL, int s1, int r1, int s2, int r2);
569 int residue_pair_extended_list_mixt                ( Constraint_list *CL, int s1, int r1, int s2, int r2);
570 int residue_pair_test_function                     ( Constraint_list *CL, int s1, int r1, int s2, int r2);
571 int extend_residue_pair                            ( Constraint_list *CL, int s1, int r1, int s2, int r2);
572
573 int residue_pair_relative_extended_list ( Constraint_list *CL, int s1, int r1, int s2, int r2 );
574 /*********************************************************************************************/
575 /*                                                                                           */
576 /*         FUNCTIONS FOR GETTING THE PW COST :  CL->get_dp_cost                                     */
577 /*                                                                                           */
578 /*********************************************************************************************/
579 int get_dp_cost_blosum_matrix (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
580 int get_dp_cost_pam_matrix (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
581 int get_dp_cost_pw_matrix (Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
582
583 int get_cdna_best_frame_dp_cost ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
584 int get_dp_cost                 ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
585 int get_dp_cost_quadruplet      ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
586       
587
588 int very_fast_get_dp_cost       ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
589
590 int cw_profile_get_dp_cost ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
591 int cw_profile_get_dp_cost_window ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
592
593 int consensus_get_dp_cost ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
594
595 int fast_get_dp_cost            ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
596 int fast_get_dp_cost_2          ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
597 int fast_get_dp_cost_3          ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
598
599 int fast_get_dp_cost_quadruplet ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
600
601 int check_fast_profile_mode    (Alignment *A, int ns1,int *list1,int ns2, int *list2, Constraint_list *CL);
602 int check_fast_mode    (Alignment *A, int ns1,int *list1,int ns2, int *list2, Constraint_list *CL);
603
604
605 int slow_get_dp_cost            ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
606 int slow_get_dp_cost_pc         ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
607 int slow_get_dp_cost_test       ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
608
609 int sw_get_dp_cost              ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2, Constraint_list *CL);
610 int get_domain_dp_cost          ( Alignment *A, int**pos1, int ns1, int*list1, int col1, int**pos2, int ns2, int*list2, int col2,Constraint_list *CL , int scale , int gop, int gep);
611
612 /*********************************************************************************************/
613 /*                                                                                           */
614 /*         FUNCTIONS FOR ANALYSING AL OR MATRIX                                              */
615 /*                                                                                           */
616 /*********************************************************************************************/
617 float ** initialise_aa_physico_chemical_property_table (int *n);
618 int aln2n_res ( Alignment *A, int start, int end);
619 float get_gop_scaling_factor ( int **matrix,float id, int l1, int l2);
620 float get_avg_matrix_mm ( int **matrix, char *alphabet);
621 float get_avg_matrix_match ( int **matrix, char *alphabet);
622 float get_avg_matrix_diff ( int **matrix1,int **matrix2, char *alphabet);
623 float measure_matrix_enthropy (int **matrix,char *alphabet);
624 float measure_matrix_pos_avg (int **matrix,char *alphabet);
625 float evaluate_random_match (char *matrix, int n, int len,char *alp);
626 float compare_two_mat (char  *mat1,char*mat2, int n, int len,char *alp);
627 float compare_two_mat_array (int  **matrix1,int **matrix2, int n, int len,char *alp);
628 int ** rescale_two_mat (char  *mat1,char*mat2, int n, int len,char *alp);
629 int ** rescale_matrix ( int **mat, float lambda, char *alp);
630 int **mat2inverted_mat (int **matrix, char *alp);
631 void output_matrix_header ( char *name, int **matrix, char *alp);
632 float evaluate_random_match2 (int **matrix, int n, int len,char *alp);
633 float measure_lambda2(char  *mat1,char*mat2, int n, int len,char *alp);
634 float measure_lambda(char  *mat1,char*mat2, int n, int len,char *alp);
635 Constraint_list * choose_extension_mode ( char *extend_mode, Constraint_list *CL);
636 int ** combine_two_matrices ( int **mat1, int **mat2);
637 /*********************************************************************************************/
638 /*                                                                                           */
639 /*         OFF THE SHELVES EVALUATION                                              */
640 /*                                                                                           */
641 /*********************************************************************************************/
642 float  sum_pair ( Alignment*A,char *mat_name, int gap_op, int gap_ext);
643 int lat_sum_pair (Alignment *A, char *mat);
644 int ** show_pair(int istart, int iend, int jstart, int jend, int *seqlen_array, char **seq_array, int dna_ktup, int dna_window, int dna_wind_gap, int dna_signif,int prot_ktup, int prot_window,int prot_wind_gap,int prot_signif, int nseqs,int dnaflag, int max_aa, int max_aln_length  );
645 /*By convention, 0: START, 1: END*/
646
647 struct Hmm
648 {
649   
650   double freeT;           /*Free transition*/
651   double forbiden;        /*Forbiden transition*/
652   int start;              /*start, by convention: 0*/
653   int end;                /*end, by convention: 1*/
654
655   int nS;                 /*Number of states*/
656   int order;
657   struct HmmState  **S;   /*State List*/
658
659   /*Bounded HMM*/
660   double **T;             /*Transition matrix*/
661   int **fromM;            /*For any sate s, fromM[0]->number of states leading to s*/
662   int **toM;              /*For any sate s, toM[0]->number of s can go to*/
663                           /*End and Start are NOT included in toM and FromM*/
664   
665   
666 };
667 typedef struct Hmm Hmm;
668
669 struct HmmAln
670 {
671   Hmm *H;
672   int *state_list;
673 };
674 typedef struct HmmAln HmmAln;
675
676 typedef double (*Generic_em_func)(struct Hmm*, struct HmmState*, int);
677
678 struct HmmState
679 {
680 char name[100];
681 int state;
682 int DJ;
683 int DI;
684
685   /*Pair HMM*/
686 double em;
687 Col_cost_func em_func;
688
689   /*Linear HMM*/
690 double *em2;
691 Generic_em_func em_func2;
692 int nT;
693 struct StateTrans **T;
694 };
695 typedef struct HmmState HmmState;
696
697 struct StateTrans
698 {
699   char name[101];
700   double tr;
701 };
702 typedef struct StateTrans StateTrans;
703
704 struct MatState
705 {
706   int i;
707   int j;
708   int st;
709   int pst;
710   double sc;
711   struct MatState *n;
712   struct MatState *p;
713   struct MatState *m; /*memory*/
714   struct MatState *s; /*memory of the start point*/
715   /*Heap Mamagement: Never copy*/
716   struct MatState *Hn;/*Heap Next*/ 
717   struct MatState *Hp;/*Heap Previous*/ 
718   
719   struct MatState *Mn;/*Marked Heap section*/ 
720   struct MatState *Mp;/*Marked Heap Section*/ 
721   int free;
722 };
723 typedef struct MatState MatState;
724
725
726 /*********************************************************************************/
727 /*                                                                               */
728 /*                                                                               */
729 /*                     simple HMM: Viterbi                                       */
730 /*                                                                               */
731 /*                                                                               */
732 /*********************************************************************************/
733 int seq_viterbi_pair_wise (Alignment *A,int*ns, int **ls,Constraint_list *CL);
734
735 /*********************************************************************************/
736 /*                                                                               */
737 /*                                                                               */
738 /*                     HMM: Viterbi                                              */
739 /*                                                                               */
740 /*                                                                               */
741 /*********************************************************************************/
742
743 int viterbi_pair_wise_OLD (Alignment *A,int*ns, int **ls,Constraint_list *CL);
744 Alignment * viterbipath2aln (Alignment *A, int *ns,int **ls,int *tb, Hmm *H);
745 double*** viterbi_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL);
746 int * viterbi2path (int l1,int l2, Hmm *H, double ***M);
747 /*********************************************************************************/
748 /*                                                                               */
749 /*                                                                               */
750 /*                      HMM modeling                                             */
751 /*                                                                               */
752 /*                                                                               */
753 /*********************************************************************************/
754 int viterbiL_pair_wise (Alignment *A,int*ns, int **ls,Constraint_list *CL);
755 MatState* RviterbiL_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL,MatState *S, MatState *E);
756 MatState* viterbiL_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL, MatState *S, MatState *E);
757
758 int viterbiD_pair_wise (Alignment *A,int*ns, int **ls,Constraint_list *CL);
759 double lu_RviterbiD_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL,MatState *S, MatState *E, int **seg_list);
760 MatState* RviterbiD_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL,MatState *S, MatState *E, int **seg_list);
761 MatState* viterbiD_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL, MatState *S, MatState *E, int **seg_list);
762 int **seglist2table ( int **seglist,int l1, int l2);
763 int *seglist2line ( int **seglist, int line, int start, int end);
764 int * traceback (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL,MatState *S, MatState *E, int **seg_list);
765
766 int viterbiDGL_pair_wise (Alignment *A,int*ns, int **ls,Constraint_list *CL);
767 double lu_RviterbiDGL_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL,MatState *S, MatState *E, int **seg_list);
768 MatState* RviterbiDGL_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL,MatState *S, MatState *E, int **seg_list);
769 MatState* viterbiDGL_hmm (Alignment *A,int *ns, int **ls, Hmm *H, Constraint_list *CL,MatState *S, MatState *E, int **seg_list);
770
771
772 /*********************************************************************************/
773 /*                                                                               */
774 /*                                                                               */
775 /*                      HMM modeling                                             */
776 /*                                                                               */
777 /*                                                                               */
778 /*********************************************************************************/
779 int MatStateAreIdentical (MatState*I, MatState*O);
780 int MaxDeltaMatState (MatState*I, MatState*O);
781 int MinDeltaMatState (MatState*I, MatState*O);
782
783 MatState * ManageMatState(int Mode, MatState *C);
784 MatState* CopyMatState ( MatState*I, MatState*O);
785
786 Hmm* read_hmm(char *file);
787 Hmm* declare_hmm(int n);
788 Hmm* free_Hmm(Hmm*H);
789 void DisplayHmm ( Hmm *H);
790
791 /*********************************************************************************/
792 /*                                                                               */
793 /*                                                                               */
794 /*                      HMM Models                                               */
795 /*                                                                               */
796 /*                                                                               */
797 /*********************************************************************************/
798 Hmm* define_two_mat_model(Constraint_list *CL);
799 Hmm* define_probcons_model(Constraint_list *CL);
800 Hmm* define_simple_model(Constraint_list *CL);
801
802 Hmm * bound_hmm ( Hmm *H);
803 Sequence *pavie_seq2random_seq (Sequence *S, char *subst); 
804 double **pavie_seq2pavie_aln(Sequence *S,char *mat, char *mode);
805 Alignment *pavie_seq2pavie_sort ( Sequence *S, char *mat, char *mode);
806 Alignment* pavie_seq2pavie_msa  ( Sequence *S, char *mat, char *mode);
807 NT_node pavie_seq2pavie_tree ( Sequence *S, char *mat, char *mode);
808 int **pavie_seq2trained_pavie_mat(Sequence *S, char *param);
809 int pavie_pair_wise (Alignment *A,int *ns, int **l_s,Constraint_list *CL );
810 Sequence *pavie_seq2noisy_seq (Sequence *S, int val,char *subst); 
811 /*********************************COPYRIGHT NOTICE**********************************/
812 /*© Centro de Regulacio Genomica */
813 /*and */
814 /*Cedric Notredame */
815 /*Tue Oct 27 10:12:26 WEST 2009. */
816 /*All rights reserved.*/
817 /*This file is part of T-COFFEE.*/
818 /**/
819 /*    T-COFFEE is free software; you can redistribute it and/or modify*/
820 /*    it under the terms of the GNU General Public License as published by*/
821 /*    the Free Software Foundation; either version 2 of the License, or*/
822 /*    (at your option) any later version.*/
823 /**/
824 /*    T-COFFEE is distributed in the hope that it will be useful,*/
825 /*    but WITHOUT ANY WARRANTY; without even the implied warranty of*/
826 /*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*/
827 /*    GNU General Public License for more details.*/
828 /**/
829 /*    You should have received a copy of the GNU General Public License*/
830 /*    along with Foobar; if not, write to the Free Software*/
831 /*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/
832 /*...............................................                                                                                      |*/
833 /*  If you need some more information*/
834 /*  cedric.notredame@europe.com*/
835 /*...............................................                                                                                                                                     |*/
836 /**/
837 /**/
838 /*      */
839 /*********************************COPYRIGHT NOTICE**********************************/