7 static void fillorichar( int nseq, int *oripos, char **a, char **s )
11 for( i=0; i<nseq; i++ )
17 if( *pta != '-' ) *pta = *pts++;
20 fprintf( stderr, "ERROR!!\n" );
21 fprintf( stderr, "alignment is inconsistent with the original sequences\n" );
27 fprintf( stderr, "ERROR!!\n" );
28 fprintf( stderr, "alignment is inconsistent with the original sequences\n" );
34 void arguments( int argc, char *argv[] )
38 while( --argc > 0 && (*++argv)[0] == '-' )
40 while ( (c = *++argv[0]) )
49 alignmentfile = *++argv;
53 fprintf( stderr, "illegal option %c\n", c );
63 fprintf( stderr, "options: Check source file !\n" );
70 int main( int argc, char *argv[] )
86 arguments( argc, argv );
90 infp = fopen( inputfile, "r" );
93 fprintf( stderr, "Cannot open %s\n", inputfile );
102 alfp = fopen( alignmentfile, "r" );
105 fprintf( stderr, "Cannot open %s\n", alignmentfile );
111 fprintf( stderr, "No alignment is given.\n" );
116 getnumlen_casepreserve( infp, &nlenmin );
118 // fprintf( stderr, "in infp, %d x %d - %d %c\n", njob, nlenmin, nlenmax, dorp );
120 seq = AllocateCharMtx( njob, nlenmax+1 );
121 name = AllocateCharMtx( njob, B+1 );
122 nlen = AllocateIntVec( njob );
123 oripos = AllocateIntVec( njob );
124 readData_pointer_casepreserve( infp, name, nlen, seq );
129 // fprintf( stderr, "in alfp, %d x %d %c\n", njob, nlenmax, dorp );
130 aseq = AllocateCharMtx( njob, nlenmax+1 );
131 aname = AllocateCharMtx( njob, B+1 );
132 oname = AllocateCharMtx( njob, B+1 );
133 readData_pointer( alfp, aname, nlen, aseq );
135 for( i=0; i<njob; i++ ) gappick_samestring( seq[i] );
139 fprintf( stderr, "ERROR!!\n" );
140 fprintf( stderr, "In input file,\n" );
141 fprintf( stderr, "njob = %d\n", njobs );
142 fprintf( stderr, "but in alignment file,\n" );
143 fprintf( stderr, "njob = %d\n", njoba );
147 for( i=0; i<njob; i++ )
150 if( strstr( aname[i], "_seed_" ) )
153 strcpy( oname[i], "=_seed_" );
158 strcpy( oname[i], "=" );
161 fprintf( stderr, "npt2 = %s\n", npt2 );
163 o = oripos[i] = atoi( npt2 );
164 npt = strstr( npt2, "_oripos_" );
167 fprintf( stderr, "Format error!\n" );
171 strcat( oname[i], npt+1 );
173 npt = strstr( aname[i], "_oripos_" );
176 fprintf( stderr, "Format error!\n" );
180 while( isdigit( *npt2-- ) );
183 o = oripos[i] = atoi( npt2 );
184 // fprintf( stderr, "npt2 = :%s:\n", npt2 );
185 // fprintf( stderr, "npt = :%s:\n", npt );
186 // fprintf( stderr, "aname[i] = :%s:\n", aname[i] );
187 // fprintf( stderr, "npt2-aname[i] = :%d:\n", npt2-aname[i] );
189 prelen = npt2-aname[i];
190 strncpy( oname[i], aname[i], prelen ); oname[i][prelen] = 0;
191 strcat( oname[i], npt+1 );
193 if( strncmp( npt, name[o], 10 ) )
195 fprintf( stderr, "ERROR!!\n" );
196 fprintf( stderr, "In input file,\n" );
197 fprintf( stderr, "name[%d] = %s\n", o, name[o] );
198 fprintf( stderr, "but in alignment file,\n" );
199 fprintf( stderr, "name[%d] = %s\n", i, aname[i] );
205 fprintf( stderr, "OK!!\n" );
206 fprintf( stderr, "In input file,\n" );
207 fprintf( stderr, "name[%d] = %s\n", o, name[o] );
208 fprintf( stderr, "and in alignment file,\n" );
209 fprintf( stderr, "name[%d] = %s\n", i, aname[i] );
210 fprintf( stderr, "\n" );
214 // fprintf( stderr, "seq[0] = %s\n", seq[0] );
215 // fprintf( stderr, "aseq[0] = %s\n", aseq[0] );
217 fillorichar( njob, oripos, aseq, seq );
220 writeData_pointer( stdout, njob, oname, nlen, aseq );
225 FreeCharMtx( aname );