#include "mltaln.h" #define DEBUG 0 static char *comment; static char *orderfile; static int format; static int namelen; static int excludedashseq; static int extendedalphabet; static void fillspace( char *seq, int lenmax ) { int len = strlen( seq ); seq += len; lenmax -= len; while( lenmax-- ) *seq++ = ' '; *seq = 0; } void setmark_clustal( int nlen, int nseq, char **seq, char *mark ) { int i, j, k, nalpha; char firstletter; char *strong[9]; char *weaker[11]; int nstrong, nweaker; char s; if( dorp == 'd' ) { strong[0] = "TU"; nstrong = 1; weaker[0] = "AG"; weaker[1] = "CT"; weaker[2] = "CU"; nweaker = 2; nalpha = 10; } else { strong[0] = "STA"; strong[1] = "NEQK"; strong[2] = "NHQK"; strong[3] = "NDEQ"; strong[4] = "QHRK"; strong[5] = "MILV"; strong[6] = "MILF"; strong[7] = "HY"; strong[8] = "FYW"; nstrong = 9; weaker[0] = "CSA"; weaker[1] = "ATV"; weaker[2] = "SAG"; weaker[3] = "STNK"; weaker[4] = "STPA"; weaker[5] = "SGND"; weaker[6] = "SNDEQK"; weaker[7] = "NDEQHK"; weaker[8] = "NEQHRK"; weaker[9] = "FVLIM"; weaker[10] = "HFY"; nweaker = 11; nalpha = 20; } for( i=0; i= nalpha || amino_n[(unsigned char)firstletter] < 0 ) continue; for( j=0; j 0 && (*++argv)[0] == '-' ) { while ( (c = *++argv[0]) ) { switch( c ) { case 'i': inputfile = *++argv; fprintf( stderr, "inputfile = %s\n", inputfile ); --argc; goto nextoption; case 'c': comment = *++argv; fprintf( stderr, "comment = %s\n", comment ); --argc; goto nextoption; case 'r': orderfile = *++argv; fprintf( stderr, "orderfile = %s\n", orderfile ); --argc; goto nextoption; case 'n': namelen = myatoi( *++argv ); fprintf( stderr, "namelen = %d\n", namelen ); --argc; goto nextoption; case 'f': format = 'f'; break; case 'd': excludedashseq = 1; break; case 'y': format = 'y'; break; case 'E': extendedalphabet = 1; nblosum = -2; break; case 'N': extendedalphabet = 0; break; default: fprintf( stderr, "illegal option %c\n", c ); argc = 0; break; } } nextoption: ; } if( argc != 0 ) { fprintf( stderr, "options: Check source file !\n" ); exit( 1 ); } } int main( int argc, char *argv[] ) { static int *nlen, *onlen; static char **name, **oname, **seq, **oseq, *mark; static int *order, *oorder; int i, j; FILE *infp; FILE *orderfp; char gett[B]; int nlenmin; int nout; arguments( argc, argv ); if( inputfile ) { infp = fopen( inputfile, "rb" ); if( !infp ) { fprintf( stderr, "Cannot open %s\n", inputfile ); exit( 1 ); } } else infp = stdin; getnumlen_casepreserve( infp, &nlenmin ); rewind( infp ); seq = AllocateCharMtx( njob, nlenmax*2+1 ); mark = AllocateCharVec( nlenmax*2+1 ); order = AllocateIntVec( njob ); name = AllocateCharMtx( njob, B+1 ); nlen = AllocateIntVec( njob ); if( orderfile ) { orderfp = fopen( orderfile, "r" ); if( !orderfp ) { fprintf( stderr, "Cannot open %s\n", orderfile ); exit( 1 ); } for( i=0; i