#include <stdio.h>
char *trans_tbl[4] = {
"FFLLSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",
"TTTTTTTTTTTTTTTTCCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAGGGGGGGGGGGGGGGG",
"TTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGG",
"TCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAG"
};
char *get_complement(char *str);
main()
{
char *str, *seq;
int i1;
char cno1, cno2, cno3;
int conv;
str = "acgtaaccggttatgctata";
printf("%s\n", str);
seq = get_complement(str);
for(;;){
cno1 = *seq;
cno2 = *(seq+1);
cno3 = *(seq+2);
if(cno1 == '\0' || cno2 == '\0' || cno3 == '\0')
break;
if(cno1 >= 'a' && cno1 <= 'z'){
cno1 = cno1 - 'a' + 'A';
}
if(cno2 >= 'a' && cno2 <= 'z'){
cno2 = cno2 - 'a' + 'A';
}
if(cno3 >= 'a' && cno3 <= 'z'){
cno3 = cno3 - 'a' + 'A';
}
conv = '*';
for(i1 = 0; i1 < 64; i1++){
if(trans_tbl[1][i1] == cno1 &&
trans_tbl[2][i1] == cno2 &&
trans_tbl[3][i1] == cno3){
conv = trans_tbl[0][i1];
break;
}
}
putchar(conv);
seq += 3;
}
}
char *get_complement(char *str)
{
static char
result[100];
char ch;
int i, j, len;
len = strlen(str);
j = 0;
for (i = 0; ; i++) {
if(*(str+i) == '\0')
break;
ch = *(str+(len-i-1));
switch(ch){
case 'a': ch = 't'; break;
case 'A': ch = 'T'; break;
case 'g': ch = 'c'; break;
case 'G': ch = 'C'; break;
case 'c': ch = 'g'; break;
case 'C': ch = 'G'; break;
case 't': ch = 'a'; break;
case 'T': ch = 'A'; break;
}
result[j++] = ch;
}
result[j] = '\0';
return(result);
}
|