18 #ifndef __Nucleotide_CODE_H__
19 #define __Nucleotide_CODE_H__
53 isKnownNucleotide(NucleotideCode code) {
62 nucleotideOneLetterTranslator(
char name) {
72 }
else if (name ==
'T') {
74 }
else if (name ==
'C') {
76 }
else if (name ==
'G') {
78 }
else if (name ==
'U') {
90 nucleotideThreeLetterTranslator(
const string& name) {
100 }
else if (name ==
"T") {
102 }
else if (name ==
"C") {
104 }
else if (name ==
"G") {
106 }
else if (name ==
"U") {
108 }
else if (name ==
"DA") {
110 }
else if (name ==
"DT") {
112 }
else if (name ==
"DC") {
114 }
else if (name ==
"DG") {
116 }
else if (name ==
"DU") {
128 inline string nucleotideThreeLetterTranslator(NucleotideCode code) {
142 case Nucleotide_CODE_SIZE:
143 ERROR(
"NucleotideTranslator(NucleotideCode code): unknown code", exception);
146 ERROR(
"NucleotideTranslator(NucleotideCode code): unknown code", eXXXception);
156 inline string nucleotideOneLetter2ThreeLetter(
char oneLetter) {
158 code = nucleotideOneLetterTranslator(oneLetter);
159 return nucleotideThreeLetterTranslator(code);
167 inline char nucleotideThreeLetter2OneLetter(
const string& threeLetter) {
169 code = nucleotideThreeLetterTranslator(threeLetter);
170 return nucleotideOneLetterTranslator(code);
178 inline NucleotideCode& operator++(NucleotideCode& ac,
int) {
179 return ac = ((ac == XX) ? ADENINE : NucleotideCode(ac + 1));
187 inline NucleotideCode& operator--(NucleotideCode& ac,
int) {
188 return ac = ((ac == ADENINE) ? XX : NucleotideCode(ac - 1));