5 const Alphabet& SeqString::get_alphabet() const
7 return Alphabet::get_alphabet(alphabet);
10 std::string SeqString::create_reverse_complement_map() const
12 std::string rc_map(256, '~');
13 // if we're rna, use U instead of T
14 // we might want to add an "is_rna" to sequence at somepoint
15 char TU = (alphabet == reduced_rna_alphabet) ? 'U' : 'T';
16 char tu = (alphabet == reduced_rna_alphabet) ? 'u' : 't';
17 rc_map['A'] = TU ; rc_map['a'] = tu ;
18 rc_map['T'] = 'A'; rc_map['t'] = 'a';
19 rc_map['U'] = 'A'; rc_map['u'] = 'a';
20 rc_map['G'] = 'C'; rc_map['g'] = 'c';
21 rc_map['C'] = 'G'; rc_map['c'] = 'g';
22 rc_map['M'] = 'K'; rc_map['m'] = 'k';
23 rc_map['R'] = 'Y'; rc_map['r'] = 'y';
24 rc_map['W'] = 'W'; rc_map['w'] = 'w';
25 rc_map['S'] = 'S'; rc_map['s'] = 's';
26 rc_map['Y'] = 'R'; rc_map['y'] = 'r';
27 rc_map['K'] = 'M'; rc_map['k'] = 'm';
28 rc_map['V'] = 'B'; rc_map['v'] = 'b';
29 rc_map['H'] = 'D'; rc_map['h'] = 'd';
30 rc_map['D'] = 'H'; rc_map['d'] = 'h';
31 rc_map['B'] = 'V'; rc_map['b'] = 'v';
32 rc_map['N'] = 'N'; rc_map['n'] = 'n';
33 rc_map['X'] = 'X'; rc_map['x'] = 'x';
37 rc_map['~'] = '~'; // not really needed, but perhaps it's clearer.