31 static inline int base_index(
char base)
57 static inline int codon_index(
char base1,
char base2,
char base3)
59 int i = base_index(base1);
60 int j = base_index(base2);
61 int k = base_index(base3);
62 return (i << 4) | (j << 2) | k;
65 inline char translate(
char base1,
char base2,
char base3,
const char* aas)
67 int index = codon_index(base1, base2, base3);
73 bool is_start(
char base1,
char base2,
char base3,
const char* starts)
75 char aa =
translate(base1, base2, base3, starts);
76 return ((aa !=
'-') && (aa !=
'*'));
79 bool is_stop(
char base1,
char base2,
char base3,
const char* aas)
81 char aa =
translate(base1, base2, base3, aas);
char translate(char base1, char base2, char base3, const char *aas)
Translates a codon into an amino acid.
bool is_stop(char base1, char base2, char base3, const char *aas)
Returns true if a codon is a stop codon.
bool is_start(char base1, char base2, char base3, const char *starts)
Returns true if a codon is a start codon.