Delete unneeded directory
[jabaws.git] / website / archive / binaries / mac / src / tcoffee / t_coffee_source / util_dp_generic_fasta_nw.c
diff --git a/website/archive/binaries/mac/src/tcoffee/t_coffee_source/util_dp_generic_fasta_nw.c b/website/archive/binaries/mac/src/tcoffee/t_coffee_source/util_dp_generic_fasta_nw.c
deleted file mode 100644 (file)
index 8df5c9b..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <stdarg.h>
-#include <string.h>
-
-
-#include "io_lib_header.h"
-#include "util_lib_header.h"
-#include "define_header.h"
-#include "dp_lib_header.h"
-
-
-
-/*********************************************************************************/
-/*                                                                               */
-/*                                                                               */
-/*                       Generic DP                                              */
-/*                                                                               */
-/*                                                                               */
-/*********************************************************************************/
-
-
-Dp_Result * make_fast_generic_dp_pair_wise (Alignment *A, int*ns, int **l_s,Dp_Model *M)
-       {
-         
-         /*SIZE VARIABLES*/ 
-         
-         int ndiag;
-         int l0, l1, len_al,len_diag;
-         static int max_len_al, max_len_diag;
-         static int mI, mJ;
-         /*Evaluation*/
-         int **pos0;
-         
-         
-                 
-         /*DP VARIABLES*/
-         static int *Mat, *LMat, *trace;
-         int a, i, j,l;
-         int state, cur_state, prev_state;
-         int pos_i=0,  pos_j=0;
-         int last_i=0, last_j=0;
-         int prev_i, prev_j;
-         int len_i, len_j, len;
-         int t, e, em;
-         
-         int prev_score; 
-         int pc, best_pc;
-         
-         int *prev;
-         int model_index;
-         /*TRACEBACK*/
-         Dp_Result *DPR;
-         int k=0, next_k;
-         int new_i, new_j;
-         
-         
-         /*Cleqanning CALL*/
-         if ( A==NULL)
-           {
-             max_len_al=0; max_len_diag=0;mI=0;mJ=0;
-             vfree (Mat); vfree(LMat);vfree(trace);
-             Mat=trace=LMat=NULL;
-             return NULL;
-           }
-         
-         ndiag=M->diag[0];
-
-         l0=strlen (A->seq_al[l_s[0][0]]);
-         l1=strlen (A->seq_al[l_s[1][0]]);
-         len_al =l0+l1+1;      
-         len_diag=ndiag+4;
-         
-        
-
-         if ( (len_al>max_len_al || len_diag>max_len_diag))
-           {
-             
-             vfree (Mat);
-             vfree (LMat);
-             vfree(trace);         
-             max_len_diag=max_len_al=0;           
-           }
-         
-         if (max_len_al==0)
-           {
-             max_len_al=len_al;
-             max_len_diag=len_diag;
-             mI=max_len_al*max_len_diag;
-             mJ=max_len_diag;
-             
-             
-             Mat  =vcalloc ( M->nstate*max_len_al*max_len_diag, sizeof (int));
-             LMat =vcalloc ( M->nstate*max_len_al*max_len_diag, sizeof (int));
-             trace=vcalloc ( M->nstate*max_len_al*max_len_diag, sizeof (int));
-             
-           }
-         
-         prev=vcalloc ( M->nstate, sizeof (int));
-         DPR=vcalloc ( 1, sizeof ( Dp_Result));
-         DPR->traceback=vcalloc (max_len_al, sizeof (int));
-         
-/*PREPARE THE EVALUATION*/      
-         
-         
-         pos0=aln2pos_simple ( A,-1, ns, l_s);
-         
-/*INITIALIZATION OF THE DP MATRICES*/
-
-       for (i=0; i<=l0;i++)
-         {                                             
-           for (j=0; j<=ndiag+1;j++)
-             {
-               for ( state=0; state<M->nstate; state++)
-                 {
-                   Mat   [state*mI+i*mJ+j]=UNDEFINED;
-                   LMat  [state*mI+i*mJ+j]=UNDEFINED;
-                   trace [state*mI+i*mJ+j]=M->START;
-                 }
-             }
-         }     
-
-       M->diag[0]=1;
-       M->diag[ndiag+1]=M->diag[ndiag];
-
-       for (i=0; i<=l0; i++)
-         for ( j=0; j<=ndiag+1; j++)
-           {
-             pos_j=M->diag[j]-l0+i;
-             pos_i=i;
-             if (!(pos_j==0 || pos_i==0))continue;
-             if ( pos_j<0 || pos_i<0)continue;
-             if ( pos_i==0 && pos_j==0)
-                 {
-                 for ( a=0; a< M->nstate; a++)
-                   {
-                    Mat  [a*mI+i*mJ+j]=0;
-                    LMat [a*mI+i*mJ+j]=0;
-                    trace[a*mI+i*mJ+j]=M->START;
-                   }
-               }
-             else
-               {       
-                 l=MAX(pos_i,pos_j);
-                 for ( state=0; state<M->START; state++)
-                   {                
-                     if (pos_j==0 && M->model_properties[state][M->LEN_J])continue;
-                     if (pos_i==0 && M->model_properties[state][M->LEN_I])continue;
-                    
-                    
-                    t=M->model[M->START][state];
-                    e=((M->model_emission_function)[state][M->START_EMISSION])(A, pos0, ns[0], l_s[0], pos_i-1, pos0, ns[1], l_s[1],pos_j-1,M->CL);
-                    /*e=((M->get_dp_cost_list)[M->model_properties[state][M->START_EMISSION]])(A, pos0, ns[0], l_s[0], pos_i-1, pos0, ns[1], l_s[1],pos_j-1,M->CL);*/
-                            
-                    Mat   [state*mI+i*mJ+j]=t+e*l;
-                    LMat  [state*mI+i*mJ+j]=l;
-                    trace [state*mI+i*mJ+j]=M->START;
-                   }
-               }
-           }
-
-/*DYNAMIC PROGRAMMING: Forward Pass*/
-
-       /*Diagonals: 
-         M->diag[0]=Number of diagonals being considered
-         M->diag[1]=First diagonal being considered
-                    Diagonals are numbered 1...L0+l1-1
-                    1 is the bottom-left diag
-       */
-
-       for (i=1; i<=l0;i++)
-         {                                             
-           for (j=1; j<=ndiag;j++)
-             {
-               pos_j=M->diag[j]-l0+i;
-               pos_i=i;
-               
-               if (pos_j<=0 || pos_j>l1 )continue;
-               last_i=i;
-               last_j=j;
-               
-               for (cur_state=0; cur_state<M->START; cur_state++)
-                 {
-                   if (M->model_properties[cur_state][M->DELTA_J])
-                     {
-                       prev_j=j+M->model_properties[cur_state][M->DELTA_J];
-                       prev_i=i+M->model_properties[cur_state][M->DELTA_I]*FABS((M->diag[j]-M->diag[prev_j]));                 
-                       
-                     }
-                   else
-                     {
-                       prev_j=j;
-                       prev_i=i+M->model_properties[cur_state][M->DELTA_I];
-                     }
-                   
-                   
-                   len_i=FABS((i-prev_i));
-                   len_j=FABS((M->diag[prev_j]-M->diag[j]));
-                   len=MAX(len_i, len_j);
-       
-                   em=((M->model_emission_function[cur_state][M->EMISSION]))(A, pos0, ns[0], l_s[0], pos_i-1, pos0, ns[1], l_s[1],pos_j-1,M->CL);
-                   /*em=((M->get_dp_cost_list)[M->model_properties[cur_state][M->EMISSION]])(A, pos0, ns[0], l_s[0], pos_i-1, pos0, ns[1], l_s[1],pos_j-1,M->CL);*/
-                                   
-                   for (pc=best_pc=UNDEFINED, model_index=1; model_index<=M->bounded_model[cur_state][0]; model_index++)
-                     {
-                       prev_state=M->bounded_model[cur_state][model_index];
-                       
-                       if(prev_i<0 || prev_j<0 ||prev_i>l0 || prev_j>ndiag || len==UNDEFINED)prev_score=UNDEFINED;
-                       else prev_score=Mat[prev_state*mI+prev_i*mJ+prev_j];
-                       t=M->model[prev_state][cur_state];                      
-                       e=em;
-               
-                       if   (prev_score==UNDEFINED || len==UNDEFINED)e=UNDEFINED;                      
-                       else if (len==0|| e==UNDEFINED)e=UNDEFINED;
-                       else e=e*len;
-                       
-                       if (is_defined_int(3,prev_score,e, t))
-                         {
-                           pc=prev_score+t+e;
-                         }
-                       else  pc=UNDEFINED;
-                       
-                       /*Identify the best previous score*/
-                       if (best_pc==UNDEFINED || (pc>best_pc && pc!=UNDEFINED))
-                         {
-                           prev[cur_state]=prev_state;
-                           best_pc=pc;
-                          
-                         }
-                     }
-                   
-                   Mat[cur_state*mI+i*mJ+j]=best_pc;
-                  
-
-
-                   if ( Mat[cur_state*mI+i*mJ+j]==UNDEFINED)
-                     {
-                       LMat[cur_state*mI+i*mJ+j]=UNDEFINED;
-                       trace[cur_state*mI+i*mJ+j]=UNDEFINED;
-                       continue;
-                     }
-                   
-                   else if ( prev[cur_state]==cur_state)
-                     {
-                       LMat [cur_state*mI+i*mJ+j]=     LMat [cur_state*mI+prev_i*mJ+prev_j]+len;
-                       trace[cur_state*mI+i*mJ+j]=     trace[cur_state*mI+prev_i*mJ+prev_j];
-                     }
-                   else
-                     {
-                       LMat[cur_state*mI+i*mJ+j]=len;
-                       trace[cur_state*mI+i*mJ+j]=prev[cur_state];
-                     }
-                 }
-             }
-         }
-       
-       
-        i=last_i;
-       j=last_j;
-       for (pc=best_pc=UNDEFINED, state=0; state<M->START; state++)
-         {
-           t=M->model[state][M->END];
-           e=( M->model_emission_function[state][M->TERM_EMISSION])(A, pos0, ns[0], l_s[0], pos_i-1, pos0, ns[1], l_s[1],pos_j-1,M->CL);
-
-           /*e=((M->get_dp_cost_list)[M->model_properties[state][M->TERM_EMISSION]])(A, pos0, ns[0], l_s[0], pos_i-1, pos0, ns[1], l_s[1],pos_j-1,M->CL);*/
-
-           l=LMat[state*mI+i*mJ+j];
-           
-          
-           if (!is_defined_int(4,t,e,Mat[state*mI+i*mJ+j],l))Mat[state*mI+i*mJ+j]=UNDEFINED;
-           else Mat[state*mI+i*mJ+j]+=t+e*(l);
-           pc=Mat[state*mI+i*mJ+j];
-           
-          
-           if (best_pc==UNDEFINED || (pc>best_pc && pc!=UNDEFINED))
-             {
-               k=state;
-               best_pc=pc;
-             }
-         }
-        DPR->score=best_pc;
-       
-/*TRACEBACK*/ 
-
-
-       e=0;
-       len=0;    
-       
-       
-       while (k!=M->START)
-         {
-           next_k=trace[k*mI+i*mJ+j];
-           
-           new_i=i;
-           new_j=j;
-           l=LMat[k*mI+i*mJ+j];
-           for (a=0; a< l; a++)
-             {
-               DPR->traceback[len++]=k;
-             }
-          new_i+=M->model_properties[k][M->DELTA_I]*l;
-          
-
-          if ( M->model_properties[k][M->DELTA_J])
-            {
-              while ( next_k!=M->START && FABS((M->diag[j]-M->diag[new_j]))!=l)new_j+=M->model_properties[k][M->DELTA_J];
-            }
-
-          i=new_i;
-          j=new_j;
-          k=next_k;
-         }
-       DPR->len=len;
-       DPR->traceback[DPR->len++]=M->START;
-       invert_list_int  (DPR->traceback,DPR->len);
-       DPR->traceback[DPR->len]=M->END;
-       
-       vfree (prev);
-       free_int (pos0, -1);
-       return DPR;
-       
-
-       }
-
-
-Constraint_list* free_dp_model  (Dp_Model *D)
-       {
-        Constraint_list *CL;
-        
-        if ( !D)return NULL;
-        CL=D->CL;
-        vfree (D->diag);
-        free_int (D->model, -1);
-        free_int (D->model_properties, -1);
-        free_int (D->bounded_model, -1);
-        
-        vfree (D);
-        return CL;
-       }
-  
-Dp_Result * free_dp_result (Dp_Result *D )
-        {
-         if (!D) return NULL;
-         vfree ( D->traceback);
-         vfree (D);
-         return NULL;
-       }
-
-/******************************COPYRIGHT NOTICE*******************************/
-/*© Centro de Regulacio Genomica */
-/*and */
-/*Cedric Notredame */
-/*Fri Feb 18 08:27:45 CET 2011 - Revision 596. */
-/*All rights reserved.*/
-/*This file is part of T-COFFEE.*/
-/**/
-/*    T-COFFEE is free software; you can redistribute it and/or modify*/
-/*    it under the terms of the GNU General Public License as published by*/
-/*    the Free Software Foundation; either version 2 of the License, or*/
-/*    (at your option) any later version.*/
-/**/
-/*    T-COFFEE is distributed in the hope that it will be useful,*/
-/*    but WITHOUT ANY WARRANTY; without even the implied warranty of*/
-/*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*/
-/*    GNU General Public License for more details.*/
-/**/
-/*    You should have received a copy of the GNU General Public License*/
-/*    along with Foobar; if not, write to the Free Software*/
-/*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/
-/*...............................................                                                                                      |*/
-/*  If you need some more information*/
-/*  cedric.notredame@europe.com*/
-/*...............................................                                                                                                                                     |*/
-/**/
-/**/
-/*     */
-/******************************COPYRIGHT NOTICE*******************************/