diff --git a/modules/conop/src/amino_acids.cc b/modules/conop/src/amino_acids.cc index b7cc3e5d09ef406f46d14980b3aa24dec3636a41..2ce42a48510479ffcb5c7cfe1dc0c801a25a5aca 100644 --- a/modules/conop/src/amino_acids.cc +++ b/modules/conop/src/amino_acids.cc @@ -187,67 +187,78 @@ AminoAcid ResidueNameToAminoAcid(String rn) char ResidueNameToOneLetterCode(String rn) { + if (rn.empty()) return 'X'; + std::transform(rn.begin(),rn.end(),rn.begin(),toupper); - if (rn == "ALA") { - return 'A'; - } - if (rn == "ARG") { - return 'R'; + + switch(rn[0]){ + case 'A': { + if (rn == "ALA") return 'A'; + if (rn == "ARG") return 'R'; + if (rn == "ASN") return 'N'; + if (rn == "ASP") return 'D'; + break; + } + + case 'C': { + if (rn == "CYS") return 'C'; + break;; + } + + case 'G': { + if (rn == "GLN") return 'Q'; + if (rn == "GLU") return 'E'; + if (rn == "GLY") return 'G'; + break; + } + + case 'H': { + if (rn == "HIS") return 'H'; + break; + } + + case 'I': { + if (rn == "ILE") return 'I'; + break; + } + + case 'L': { + if (rn == "LEU") return 'L'; + if (rn == "LYS") return 'K'; + break; + } + + case 'M': { + if (rn == "MET") return 'M'; + break; + } + + case 'P': { + if (rn == "PRO") return 'P'; + if (rn == "PHE") return 'F'; + break; + } + + case 'S': { + if (rn == "SER") return 'S'; + break; + } + + case 'T': { + if (rn == "TYR") return 'Y'; + if (rn == "TRP") return 'W'; + if (rn == "THR") return 'T'; + break; + } + + case 'V': { + if (rn == "VAL") return 'V'; + break; + } + + default: break; } - if (rn == "ASN") { - return 'N'; - } - if (rn == "ASP") { - return 'D'; - } - if (rn == "GLN") { - return 'Q'; - } - if (rn == "GLU") { - return 'E'; - } - if (rn == "LYS") { - return 'K'; - } - if (rn == "SER") { - return 'S'; - } - if (rn == "CYS") { - return 'C'; - } - if (rn == "TYR") { - return 'Y'; - } - if (rn == "TRP") { - return 'W'; - } - if (rn == "THR") { - return 'T'; - } - if (rn == "VAL") { - return 'V'; - } - if (rn == "ILE") { - return 'I'; - } - if (rn == "MET") { - return 'M'; - } - if (rn == "LEU") { - return 'L'; - } - if (rn == "GLY") { - return 'G'; - } - if (rn == "PRO") { - return 'P'; - } - if (rn == "HIS") { - return 'H'; - } - if (rn == "PHE") { - return 'F'; - } + return 'X'; }