X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=binaries%2Fsrc%2Fmafft%2Fcore%2FMSalignmm.c.algLargeA;fp=binaries%2Fsrc%2Fmafft%2Fcore%2FMSalignmm.c.algLargeA;h=0000000000000000000000000000000000000000;hb=6e0ce943f09b5ac30f3eb8dc0f20bc75114669ce;hp=fd773559d1a0a01577370d66cd434ca6f3a386f6;hpb=48f0451143441afce738d887b0cde1fb5cdbc02e;p=jabaws.git diff --git a/binaries/src/mafft/core/MSalignmm.c.algLargeA b/binaries/src/mafft/core/MSalignmm.c.algLargeA deleted file mode 100644 index fd77355..0000000 --- a/binaries/src/mafft/core/MSalignmm.c.algLargeA +++ /dev/null @@ -1,1461 +0,0 @@ -#include "mltaln.h" -#include "dp.h" - -#define DEBUG 0 -#define XXXXXXX 0 -#define USE_PENALTY_EX 0 -#define STOREWM 0 - -#define DPTANNI 1000 - - -static reccycle = 0; - -static void OpeningGapCount( float *ogcp, int clus, char **seq, double *eff, int len ) -{ - int i, j, gc, gb; - float feff; - - for( i=0; i -1 ) - *fpt2 += scarr[*ipt++] * *fpt++; - fpt2++,iptpt++,fptpt++; - } - } -#else - for( j=0; j-1; k++ ) - match[j] += scarr[cpmxpdn[j][k]] * cpmxpd[j][k]; - } -#endif -} - -static float Atracking( - char **seq1, char **seq2, - char **mseq1, char **mseq2, - short **ijp, int icyc, int jcyc, - int ist, int ien, int jst, int jen ) -{ - int i, j, l, iin, jin, ifi, jfi, lgth1, lgth2, k, klim; - char gap[] = "-"; - float wm; - lgth1 = ien-ist+1; - lgth2 = jen-jst+1; - -#if 0 - for( i=0; i 0 ) - { - ifi = iin-ijp[iin][jin]; jfi = jin-1; - } - else - { - ifi = iin-1; jfi = jin-1; - } - l = iin - ifi; - while( --l ) - { - for( i=0; i", wm ); -#endif - g = mi + fpenalty * fgcp2[j-1]; -#if 0 - fprintf( stderr, "%5.0f?", g ); -#endif - if( g > wm ) - { - wm = g; - *ijppt = -( j - mpi ); - } - g = *prept + fpenalty * ogcp2[j]; - if( g >= mi ) - { - mi = g; - mpi = j-1; - } -#if USE_PENALTY_EX - mi += fpenalty_ex; -#endif - - g = *mjpt + fpenalty * fgcp1[i-1]; -#if 0 - fprintf( stderr, "%5.0f?", g ); -#endif - if( g > wm ) - { - wm = g; - *ijppt = +( i - *mpjpt ); - } - g = *prept + fpenalty * ogcp1[i]; - if( g >= *mjpt ) - { - *mjpt = g; - *mpjpt = i-1; - } -#if USE_PENALTY_EX - m[j] += fpenalty_ex; -#endif - -#if 0 - fprintf( stderr, "%5.0f ", wm ); -#endif - *curpt += wm; - - - ijppt++; - mjpt++; - prept++; - mpjpt++; - curpt++; - } - lastverticalw[i] = currentw[lgth2-1]; - } - -// fprintf( stderr, "wm = %f\n", wm ); - - Atracking( seq1, seq2, aseq1, aseq2, ijp, icyc, jcyc, ist, ien, jst, jen ); - - for( i=0; i", wm ); -#endif - g = mi + fpenalty * fgcp2[j-1]; -// g = mi + fpenalty; -#if 0 - fprintf( stderr, "%5.0f?", g ); -#endif - if( g > wm ) - { - wm = g; -// *ijppt = -( j - mpi ); - } - g = *prept + fpenalty * ogcp2[j]; -// g = *prept; - if( g >= mi ) - { - mi = g; - mpi = j-1; - } -#if USE_PENALTY_EX - mi += fpenalty_ex; -#endif - - g = *mjpt + fpenalty * fgcp1[i-1]; -// g = *mjpt + fpenalty; -#if 0 - fprintf( stderr, "%5.0f?", g ); -#endif - if( g > wm ) - { - wm = g; -// *ijppt = +( i - *mpjpt ); - } - - - g = *prept + fpenalty * ogcp1[i]; -// g = *prept; - if( g >= *mjpt ) - { - *mjpt = g; - *mpjpt = i-1; - } -#if USE_PENALTY_EX - m[j] += fpenalty_ex; -#endif - -#if 0 - fprintf( stderr, "%5.0f ", wm ); -#endif - *curpt += wm; - -#if STOREWM - WMMTX[i][j] = *curpt; - WMMTX2[i][j] = *mjpt; -#endif - - if( i == imid ) //muda - { - jumpbackj[j] = *mpjpt; // muda atode matomeru - jumpbacki[j] = mpi; // muda atode matomeru -// fprintf( stderr, "jumpbackj[%d] in forward dp is %d\n", j, *mpjpt ); -// fprintf( stderr, "jumpbacki[%d] in forward dp is %d\n", j, mpi ); - midw[j] = *curpt; - midm[j] = *mjpt; - midn[j] = mi; - } - -// fprintf( stderr, "m[%d] = %f\n", j, m[j] ); - mjpt++; - prept++; - mpjpt++; - curpt++; - - } - lastverticalw[i] = currentw[lgth2-1]; - -#if STOREWM - WMMTX2[i][lgth2] = m[lgth2-1]; -#endif - -#if 0 // ue - if( i == imid ) - { - for( j=0; j0; --j ) - { - m[j-1] = currentw[j] + fpenalty * fgcp2[lgth2-2]; -// m[j-1] = currentw[j]; - mp[j] = lgth1-1; - } - -// for( j=0; j=imid; i-- ) - firstm = -9999999.9; - firstmp = lgth1-1; - for( i=lgth1-2; i>-1; i-- ) - { - wtmp = previousw; - previousw = currentw; - currentw = wtmp; - previousw[lgth2-1] = initverticalw[i+1]; -// match_calc( currentw, seq1, seq2, i, lgth2 ); - match_calc( currentw, cpmx1+ist, cpmx2+jst, i, lgth2, floatwork, intwork, 0 ); - - currentw[lgth2-1] = initverticalw[i]; - -// m[lgth2] = fpenalty * fgcp1[i]; -// WMMTX2[i][lgth2] += m[lgth2]; -// fprintf( stderr, "m[] = %f\n", m[lgth2] ); - - mi = previousw[lgth2-1] + fpenalty * fgcp2[lgth2-2]; -// mi = previousw[lgth2-1]; - mpi = lgth2 - 1; - - mjpt = m + lgth2 - 2; - prept = previousw + lgth2 - 1; - curpt = currentw + lgth2 - 2; - mpjpt = mp + lgth2 - 2; - - - for( j=lgth2-2; j>-1; j-- ) - { - wm = *prept; - ijpi = i+1; - ijpj = j+1; - - g = mi + fpenalty * ogcp2[j+1]; -// g = mi + fpenalty; - if( g > wm ) - { - wm = g; - ijpj = mpi; - ijpi = i+1; - } - - g = *prept + fpenalty * fgcp2[j]; -// g = *prept; - if( g >= mi ) - { -// fprintf( stderr, "i,j=%d,%d - renewed! mpi = %d\n", i, j, j+1 ); - mi = g; - mpi = j + 1; - } - -#if USE_PENALTY_EX - mi += fpenalty_ex; -#endif - -// fprintf( stderr, "i,j=%d,%d *mpjpt = %d\n", i, j, *mpjpt ); - g = *mjpt + fpenalty * ogcp1[i+1]; -// g = *mjpt + fpenalty; - if( g > wm ) - { - wm = g; - ijpi = *mpjpt; - ijpj = j+1; - } - -// if( i == imid )fprintf( stderr, "i,j=%d,%d \n", i, j ); - g = *prept + fpenalty * fgcp1[i]; -// g = *prept; - if( g >= *mjpt ) - { - *mjpt = g; - *mpjpt = i + 1; - } - -#if USE_PENALTY_EX - m[j] += fpenalty_ex; -#endif - - if( i == jumpi || i == imid - 1 ) - { - jumpforwi[j] = ijpi; //muda - jumpforwj[j] = ijpj; //muda -// fprintf( stderr, "jumpfori[%d] = %d\n", j, ijpi ); -// fprintf( stderr, "jumpforj[%d] = %d\n", j, ijpj ); - } - if( i == imid ) // muda - { - midw[j] += wm; -// midm[j+1] += *mjpt + fpenalty; //?????? - midm[j+1] += *mjpt; //?????? - } - if( i == imid - 1 ) - { -// midn[j] += mi + fpenalty; //???? - midn[j] += mi; //???? - } -#if STOREWM - WMMTX[i][j] += wm; -// WMMTX2[i][j+1] += *mjpt + fpenalty; - WMMTX2[i][j+1] += *mjpt; -#endif - *curpt += wm; - - mjpt--; - prept--; - mpjpt--; - curpt--; - } -// fprintf( stderr, "adding *mjpt (=%f) to WMMTX2[%d][%d]\n", *mjpt, i, j+1 ); - g = *prept + fpenalty * fgcp1[i]; - if( firstm < g ) - { - firstm = g; - firstmp = i + 1; - } -#if STOREWM - WMMTX2[i][j+1] += firstm; -#endif - if( i == imid ) midm[j+1] += firstm; - - if( i == imid - 1 ) - { - maxwm = midw[1]; - jmid = 0; -// if( depth == 1 ) fprintf( stderr, "maxwm!! = %f\n", maxwm ); - for( j=2; j maxwm ) - { - jmid = j; - maxwm = wm; - } -// if( depth == 1 ) fprintf( stderr, "maxwm!! = %f\n", maxwm ); - } - for( j=0; j maxwm ) - { - jmid = j; - maxwm = wm; - } -// if( depth == 1 ) fprintf( stderr, "maxwm!! = %f\n", maxwm ); - } - -// if( depth == 1 ) fprintf( stderr, "maxwm!! = %f\n", maxwm ); - - -// fprintf( stderr, "### imid=%d, jmid=%d\n", imid, jmid ); - wm = midw[jmid]; - jumpi = imid-1; - jumpj = jmid-1; - if( midn[jmid-1] > wm ) - { - jumpi = imid-1; - jumpj = jumpbacki[jmid]; - wm = midn[jmid-1]; -// fprintf( stderr, "rejump (n)\n" ); - } - if( midm[jmid] > wm ) - { - jumpi = jumpbackj[jmid]; - jumpj = jmid-1; - wm = midm[jmid]; -// fprintf( stderr, "rejump (m) jumpi=%d\n", jumpi ); - } - - -// fprintf( stderr, "--> imid=%d, jmid=%d\n", imid, jmid ); -// fprintf( stderr, "--> jumpi=%d, jumpj=%d\n", jumpi, jumpj ); -#if STOREWM - fprintf( stderr, "imid = %d\n", imid ); - fprintf( stderr, "midn = \n" ); - for( j=0; j %d\n", jumpi ); - fprintf( stderr, "jumpj -> %d\n", jumpj ); - fprintf( stderr, "imid -> %d\n", imid ); - fprintf( stderr, "jmid -> %d\n", jmid ); -#endif - -#if STOREWM - break; -#else - break; -#endif - } - } -#if 0 - jumpi=0; jumpj=0; - imid=lgth1-1; jmid=lgth2-1; - } -#endif - -// fprintf( stderr, "imid = %d, but jumpi = %d\n", imid, jumpi ); -// fprintf( stderr, "jmid = %d, but jumpj = %d\n", jmid, jumpj ); - -// for( j=0; j N ) - { - fprintf( stderr, "alloclen=%d, resultlen=%d, N=%d\n", alloclen, resultlen, N ); - ErrorExit( "LENGTH OVER!\n" ); - } -#endif - - - -#if 0 - fprintf( stderr, "jumpi = %d, imid = %d\n", jumpi, imid ); - fprintf( stderr, "jumpj = %d, jmid = %d\n", jumpj, jmid ); - - fprintf( stderr, "imid = %d\n", imid ); - fprintf( stderr, "jmid = %d\n", jmid ); -#endif - - - FreeFloatVec( w1 ); - FreeFloatVec( w2 ); - FreeFloatVec( initverticalw ); - FreeFloatVec( lastverticalw ); - FreeFloatVec( midw ); - FreeFloatVec( midm ); - FreeFloatVec( midn ); - - FreeIntVec( jumpbacki ); - FreeIntVec( jumpbackj ); - FreeIntVec( jumpforwi ); - FreeIntVec( jumpforwj ); - FreeIntVec( jumpdummi ); - FreeIntVec( jumpdummj ); - - FreeFloatVec( m ); - FreeIntVec( mp ); - - FreeFloatMtx( floatwork ); - FreeIntMtx( intwork ); - -#if STOREWM - FreeFloatMtx( WMMTX ); - FreeFloatMtx( WMMTX2 ); -#endif - -// fprintf( stderr, "==== calling myself (first)\n" ); - -// fprintf( stderr, "jumpi = %d\n", jumpi ); - value = MSalignmm_rec( icyc, jcyc, eff1, eff2, seq1, seq2, cpmx1, cpmx2, ist, ist+jumpi, jst, jst+jumpj, alloclen, aseq1, aseq2, depth, gapinfo ); - for( i=0; i 0 ) - { - for( i=0; i 0 ) - { - for( i=0; i 1 || maxwm - value > 1 ) - { - fprintf( stderr, "WARNING value = %f, but maxwm = %f penalty = %f\n", value, maxwm, fpenalty ); - for( i=0; i1-%d\n%s\n", i, mseq1[i] ); - fprintf( stderr, "%s\n", aseq1[i] ); - } - for( i=0; i2-%d\n%s\n", i, mseq2[i] ); - fprintf( stderr, "%s\n", aseq2[i] ); - } - -// exit( 1 ); - } - else - { - fprintf( stderr, "value = %.0f, maxwm = %.0f -> ok\n", value, maxwm ); - } -#endif - - for( i=0; i%d of GROUP1\n", i ); - fprintf( stdout, "%s\n", seq1[i] ); - } - for( i=0; i%d of GROUP2\n", i ); - fprintf( stdout, "%s\n", seq2[i] ); - } - fflush( stdout ); -#endif - - wm = MSalignmm_rec( icyc, jcyc, eff1, eff2, seq1, seq2, cpmx1, cpmx2, 0, lgth1-1, 0, lgth2-1, alloclen, mseq1, mseq2, 0, gapinfo ); - -// fprintf( stderr, "wm = %f\n", wm ); - - for( i=0; i