Logo Search packages:      
Sourcecode: mafft version File versions  Download package

dndpre.c

#include "mltaln.h"

#define TEST 0

static int treeout = 0;


void arguments( int argc, char *argv[] )
{
    int c;

      alg = 'X';
      fmodel = 0;
      treeout = 0;
      scoremtx = 1;
      nblosum = 62;
      dorp = NOTSPECIFIED;
      inputfile = NULL;
      ppenalty = NOTSPECIFIED; //?
      ppenalty_ex = NOTSPECIFIED; //?
      poffset = NOTSPECIFIED; //?
      kimuraR = NOTSPECIFIED;
      pamN = NOTSPECIFIED;

    while( --argc > 0 && (*++argv)[0] == '-' )
      {
        while ( c = *++argv[0] )
            {
            switch( c )
            {
                        case 't':
                              treeout = '1';
                              break;
                        case 'D':
                              dorp = 'd';
                              break;
                        case 'a':
                              fmodel = 1;
                              break;
                        case 'P':
                              dorp = 'p';
                              break;
                        case 'i':
                              inputfile = *++argv;
                              fprintf( stderr, "inputfile = %s\n", inputfile );
                              --argc;
                              goto nextoption;
            }
            }
            nextoption:
                  ;
      }
    if( argc != 0 ) 
      {
            fprintf( stderr, "options: Check source file !\n" );
            exit( 1 );
      }
}

int main( int argc, char **argv )
{
      int i, j;
      char **seq;
      static char name[M][B];
      static int nlen[M];
      float *selfscore;
      double **mtx;
      FILE *fp;
      FILE *infp;
      int res;


      arguments( argc, argv );

      if( inputfile )
      {
            infp = fopen( inputfile, "r" );
            if( !infp )
            {
                  fprintf( stderr, "Cannot open %s\n", inputfile );
                  exit( 1 );
            }
      }
      else
            infp = stdin;

#if 0
      PreRead( stdin, &njob, &nlenmax );
#else
      getnumlen( infp );
#endif
      rewind( infp );

      seq = AllocateCharMtx( njob, nlenmax+1 );
      mtx = AllocateDoubleMtx( njob, njob );
      selfscore = AllocateFloatVec( njob );

#if 0
      FRead( stdin, name, nlen, seq );
#else
      readData( infp, name, nlen, seq );
#endif
      fclose( infp );

      constants( njob, seq );

#if 0
      for( i=0; i<njob-1; i++ ) 
      {
            fprintf( stderr, "%4d/%4d\r", i+1, njob );
            for( j=i+1; j<njob; j++ ) 
                  mtx[i][j] = (double)substitution_hosei( seq[i], seq[j] );
//                fprintf( stderr, "i=%d,j=%d, l=%d &&&  %f\n", i, j, nlen[0], mtx[i][j] );
      }
#else // 061003
      for( i=0; i<njob; i++ )
      {
            selfscore[i] = (float)naivepairscore11( seq[i], seq[i], penalty );
      }
      for( i=0; i<njob-1; i++ )
      {
            fprintf( stderr, "%4d/%4d\r", i+1, njob );
            for( j=i+1; j<njob; j++ )
            {
                  mtx[i][j] = 1.0 - (double)naivepairscore11( seq[i], seq[j], penalty ) / MIN( selfscore[i], selfscore[j] );
//                fprintf( stderr, "i=%d,j=%d, l=%d### %f\n", i, j, nlen[0], mtx[i][j] );
            }
      }
#endif
      
#if TEST
      for( i=0; i<njob-1; i++ ) for( j=i+1; j<njob; j++ ) 
            fprintf( stdout, "i=%d, j=%d, mtx[][] = %f\n", i, j, mtx[i][j] );
#endif

      fp = fopen( "hat2", "w" );
      WriteHat2( fp, njob, name, mtx );
      fclose( fp );
      if( treeout )
      {
            int ***topol;
            double **len;

            topol = AllocateIntCub( njob, 2, njob );
            len = AllocateDoubleMtx( njob, njob );
            veryfastsupg_double_outtree( njob, mtx, topol, len );
      }
      SHOWVERSION;
      exit( 0 );
/*
      res = system( ALNDIR "/spgsdl < hat2"  );
      if( res ) exit( 1 );
      else exit( 0 );
*/
}

Generated by  Doxygen 1.6.0   Back to index