7 static char *orderfile;
10 static void fillspace( char *seq, int lenmax )
12 int len = strlen( seq );
15 while( lenmax-- ) *seq++ = ' ';
19 void setmark_clustal( int nlen, int nseq, char **seq, char *mark )
50 for( i=0; i<nlen; i++ )
53 for( j=0; j<nseq; j++ )
54 if( '-' == seq[j][i] ) break;
59 for( j=0; j<nseq; j++ )
60 if( seq[0][i] != seq[j][i] ) break;
66 for( k=0; k<nstrong; k++ )
68 for( j=0; j<nseq; j++ )
70 if( !strchr( strong[k], seq[j][i] ) ) break;
72 if( j == nseq ) break;
79 for( k=0; k<nweaker; k++ )
81 for( j=0; j<nseq; j++ )
83 if( !strchr( weaker[k], seq[j][i] ) ) break;
85 if( j == nseq ) break;
96 void setmark( int nlen, int nseq, char **seq, char *mark )
100 for( i=0; i<nlen; i++ )
103 for( j=0; j<nseq; j++ )
104 if( '-' == seq[j][i] ) break;
109 for( j=0; j<nseq; j++ )
110 if( seq[0][i] != seq[j][i] ) break;
116 for( j=0; j<nseq; j++ )
117 if( amino_grp[(int)seq[0][i]] != amino_grp[(int)seq[j][i]] ) break;
127 void arguments( int argc, char *argv[] )
133 kimuraR = NOTSPECIFIED;
140 while( --argc > 0 && (*++argv)[0] == '-' )
142 while ( (c = *++argv[0]) )
148 fprintf( stderr, "inputfile = %s\n", inputfile );
153 fprintf( stderr, "comment = %s\n", comment );
158 fprintf( stderr, "orderfile = %s\n", orderfile );
168 fprintf( stderr, "illegal option %c\n", c );
178 fprintf( stderr, "options: Check source file !\n" );
184 int main( int argc, char *argv[] )
187 static char **name, **seq, *mark;
194 arguments( argc, argv );
199 infp = fopen( inputfile, "r" );
202 fprintf( stderr, "Cannot open %s\n", inputfile );
212 seq = AllocateCharMtx( njob, nlenmax*2+1 );
213 mark = AllocateCharVec( nlenmax*2+1 );
214 order = AllocateIntVec( njob );
215 name = AllocateCharMtx( njob, B+1 );
216 nlen = AllocateIntVec( njob );
221 orderfp = fopen( orderfile, "r" );
224 fprintf( stderr, "Cannot open %s\n", orderfile );
227 for( i=0; i<njob; i++ )
229 fgets( gett, B-1, orderfp );
230 order[i] = atoi( gett );
236 for( i=0; i<njob; i++ ) order[i] = i;
239 readData_pointer( infp, name, nlen, seq );
242 if( format == 'c' ) for( i=0; i<njob; i++ ) fillspace( seq[i], nlenmax );
243 constants( njob, seq );
251 // setmark( nlenmax, njob, seq, mark );
252 setmark_clustal( nlenmax, njob, seq, mark );
255 writeData_reorder_pointer( stdout, njob, name, nlen, seq, order );
256 else if( format == 'c' )
257 clustalout_pointer( stdout, njob, nlenmax, seq, name, mark, comment, order );
258 else if( format == 'm' )
259 miyataout_reorder_pointer( stdout, njob, nlenmax, name, nlen, seq, order );
261 fprintf( stderr, "Unknown format\n" );