From 0338fb57af33db9364f04385cad05c20e2f8b082 Mon Sep 17 00:00:00 2001 From: Gabriel Studer <gabriel.studer@unibas.ch> Date: Wed, 8 Jun 2016 12:32:53 +0200 Subject: [PATCH] add functionality to convert residue names to AminoAcid enum --- modules/conop/pymod/export_amino_acids.cc | 1 + modules/conop/src/amino_acids.cc | 11 +++++++++++ modules/conop/src/amino_acids.hh | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/conop/pymod/export_amino_acids.cc b/modules/conop/pymod/export_amino_acids.cc index 923c74555..b1422c409 100644 --- a/modules/conop/pymod/export_amino_acids.cc +++ b/modules/conop/pymod/export_amino_acids.cc @@ -77,6 +77,7 @@ void export_AminoAcids() ; def("ResidueToAminoAcid",&ResidueToAminoAcid); + def("ResidueNameToAminoAcid",&ResidueNameToAminoAcid); def("AminoAcidToResidueName",&AminoAcidToResidueName); def("OneLetterCodeToResidueName",&OneLetterCodeToResidueName); def("ResidueNameToOneLetterCode",&ResidueNameToOneLetterCode); diff --git a/modules/conop/src/amino_acids.cc b/modules/conop/src/amino_acids.cc index 7665e97b3..a6c760b8e 100644 --- a/modules/conop/src/amino_acids.cc +++ b/modules/conop/src/amino_acids.cc @@ -174,6 +174,17 @@ String OneLetterCodeToResidueName(char olc) } } +AminoAcid ResidueNameToAminoAcid(String rn) +{ + std::transform(rn.begin(),rn.end(),rn.begin(),toupper); + static AminoAcidKeys aa_keys = AminoAcidKeys(); + AminoAcid* aa=find(aa_keys, rn.c_str()); + if (aa) + return *aa; + + return XXX; +} + char ResidueNameToOneLetterCode(String rn) { String upper_rn=rn; diff --git a/modules/conop/src/amino_acids.hh b/modules/conop/src/amino_acids.hh index aeeb6a21d..f79bb68ac 100644 --- a/modules/conop/src/amino_acids.hh +++ b/modules/conop/src/amino_acids.hh @@ -56,7 +56,7 @@ DLLEXPORT_OST_CONOP AminoAcid OneLetterCodeToAminoAcid(char olc); char DLLEXPORT_OST_CONOP ResidueNameToOneLetterCode(String rn); -char DLLEXPORT_OST_CONOP ResidueNameToOneLetterCode(String rn); +AminoAcid DLLEXPORT_OST_CONOP ResidueNameToAminoAcid(String rn); class AminoAcidSetIterator : public std::iterator<std::forward_iterator_tag, AminoAcid> { -- GitLab