From 298a26abf3e8ca94a3972ee8a4e094439dab6c54 Mon Sep 17 00:00:00 2001 From: Valerio Mariani <valerio.mariani@unibas.ch> Date: Fri, 23 Mar 2012 16:30:32 +0100 Subject: [PATCH] Workaround for circular dependency ost.mol.alg <-> ost.conop --- modules/mol/alg/pymod/wrap_mol_alg.cc | 1 + modules/mol/alg/src/ldt.cc | 2 +- modules/mol/alg/src/local_dist_test.cc | 32 ++++++++++++++++++++++++-- modules/mol/alg/src/local_dist_test.hh | 2 ++ 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/modules/mol/alg/pymod/wrap_mol_alg.cc b/modules/mol/alg/pymod/wrap_mol_alg.cc index fa04f27d2..fb68ece36 100644 --- a/modules/mol/alg/pymod/wrap_mol_alg.cc +++ b/modules/mol/alg/pymod/wrap_mol_alg.cc @@ -141,5 +141,6 @@ BOOST_PYTHON_MODULE(_ost_mol_alg) def("FillClashingDistances",&fill_clashing_distances_wrapper); def("FillStereoChemicalParams",&fill_stereochemical_params_wrapper); + def("IsStandardResidue",&mol::alg::IsStandardResidue); } \ No newline at end of file diff --git a/modules/mol/alg/src/ldt.cc b/modules/mol/alg/src/ldt.cc index d11ce8f22..0b9610308 100644 --- a/modules/mol/alg/src/ldt.cc +++ b/modules/mol/alg/src/ldt.cc @@ -85,7 +85,7 @@ std::pair<int,int> compute_coverage (const EntityView& v,const GlobalDistanceLis { ResNum rnum = (*i)[0].GetFirstAtom().GetResNum(); String rname = (*i)[0].GetFirstAtom().GetResidueName(); - if (ost::conop::ResidueNameToOneLetterCode(rname)!='X') { + if (IsStandardResidue(rname)) { second++; if (vchain.FindResidue(rnum)) { first++; diff --git a/modules/mol/alg/src/local_dist_test.cc b/modules/mol/alg/src/local_dist_test.cc index ed589a255..ecf9a61eb 100644 --- a/modules/mol/alg/src/local_dist_test.cc +++ b/modules/mol/alg/src/local_dist_test.cc @@ -1,6 +1,5 @@ #include <ost/log.hh> #include <ost/mol/mol.hh> -#include <ost/conop/amino_acids.hh> #include "local_dist_test.hh" #include <boost/concept_check.hpp> @@ -235,6 +234,35 @@ std::pair<Real, Real> calc_overlap2(const seq::ConstSequenceHandle& ref_seq, } +bool IsStandardResidue(String rn) +{ + String upper_rn=rn; + std::transform(rn.begin(),rn.end(),rn.begin(),toupper); + if (upper_rn == "ALA" || + upper_rn == "ARG" || + upper_rn == "ASN" || + upper_rn == "ASP" || + upper_rn == "GLN" || + upper_rn == "GLU" || + upper_rn == "LYS" || + upper_rn == "SER" || + upper_rn == "CYS" || + upper_rn == "TYR" || + upper_rn == "TRP" || + upper_rn == "THR" || + upper_rn == "VAL" || + upper_rn == "ILE" || + upper_rn == "MET" || + upper_rn == "LEU" || + upper_rn == "GLY" || + upper_rn == "PRO" || + upper_rn == "HIS" || + upper_rn == "PHE") { + return true; + } + return false; +} + bool UniqueAtomIdentifier::operator==(const UniqueAtomIdentifier& rhs) const { if (chain_ == rhs.GetChainName() && @@ -285,7 +313,7 @@ GlobalDistanceList CreateDistanceList(const EntityView& ref,Real max_dist) ResidueViewList ref_residues=ref.GetChainList()[0].GetResidueList(); for (ResidueViewList::iterator i=ref_residues.begin(), e=ref_residues.end(); i!=e; ++i) { ResidueView rview = (*i); - if (ost::conop::ResidueNameToOneLetterCode(rview.GetName())!='X') { + if (IsStandardResidue(rview.GetName())) { ResidueDistanceList res_dist_list; AtomViewList ref_atoms=(*i).GetAtomList(); AtomViewList within; diff --git a/modules/mol/alg/src/local_dist_test.hh b/modules/mol/alg/src/local_dist_test.hh index 8c757badd..74e0f4f29 100644 --- a/modules/mol/alg/src/local_dist_test.hh +++ b/modules/mol/alg/src/local_dist_test.hh @@ -85,6 +85,8 @@ Real DLLEXPORT_OST_MOL_ALG LocalDistTest(const ost::seq::AlignmentHandle& aln, Real DLLEXPORT_OST_MOL_ALG LDTHA(EntityView& v, const GlobalDistanceList& global_dist_list); GlobalDistanceList CreateDistanceList(const EntityView& ref,Real max_dist); +bool IsStandardResidue(String rn); + }}} -- GitLab