From 336f5a660aa0ec51dcddeee317c803854bcce860 Mon Sep 17 00:00:00 2001 From: Rafal Gumienny <r.gumienny@unibas.ch> Date: Thu, 26 Apr 2018 09:11:16 +0200 Subject: [PATCH] fix: SCHWED-3121 Remove consistency check from scorer --- actions/ost-compare-structures | 1 - modules/mol/alg/pymod/wrap_mol_alg.cc | 12 ++------- modules/mol/alg/src/lddt.cc | 16 +++++++++++- modules/mol/alg/src/local_dist_diff_test.cc | 29 +-------------------- modules/mol/alg/src/local_dist_diff_test.hh | 3 --- 5 files changed, 18 insertions(+), 43 deletions(-) diff --git a/actions/ost-compare-structures b/actions/ost-compare-structures index a23841c4f..554c24a8b 100644 --- a/actions/ost-compare-structures +++ b/actions/ost-compare-structures @@ -742,7 +742,6 @@ def _Main(): lddt_settings = lDDTSettings( radius=opts.inclusion_radius, sequence_separation=opts.sequence_separation, - consistency_checks=False, # These are performed elsewhere label="lddt") ost.LogInfo("lDDT settings: ") ost.LogInfo(str(lddt_settings).rstrip()) diff --git a/modules/mol/alg/pymod/wrap_mol_alg.cc b/modules/mol/alg/pymod/wrap_mol_alg.cc index 44a316ea7..59cb8b2e2 100644 --- a/modules/mol/alg/pymod/wrap_mol_alg.cc +++ b/modules/mol/alg/pymod/wrap_mol_alg.cc @@ -135,12 +135,6 @@ object lDDTSettingsInitWrapper(tuple args, dict kwargs){ kwargs["sequence_separation"].del(); } - bool consistency_checks = true; - if(kwargs.contains("consistency_checks")){ - consistency_checks = extract<bool>(kwargs["consistency_checks"]); - kwargs["consistency_checks"].del(); - } - std::vector<Real> cutoffs; if(kwargs.contains("cutoffs")){ list cutoff_list = extract<list>(kwargs["cutoffs"]); @@ -168,13 +162,12 @@ object lDDTSettingsInitWrapper(tuple args, dict kwargs){ ss << "Or did you pass the same keyword twice? "; ss << "Valid keywords are: radius, "; ss << "sequence_separation, parameter_file_path, "; - ss << "consistency_checks, cutoffs, label!"; + ss << "cutoffs, label!"; throw std::invalid_argument(ss.str()); } return self.attr("__init__")(radius, sequence_separation, - consistency_checks, cutoffs, label); } @@ -377,14 +370,13 @@ BOOST_PYTHON_MODULE(_ost_mol_alg) class_<mol::alg::lDDTSettings>("lDDTSettings", no_init) .def("__init__", raw_function(lDDTSettingsInitWrapper)) - .def(init<Real, int, bool, std::vector<Real>&, String>()) + .def(init<Real, int, std::vector<Real>&, String>()) .def("ToString", &mol::alg::lDDTSettings::ToString) .def("PrintParameters", &mol::alg::lDDTSettings::PrintParameters) .def("__repr__", &mol::alg::lDDTSettings::ToString) .def("__str__", &mol::alg::lDDTSettings::ToString) .def_readwrite("radius", &mol::alg::lDDTSettings::radius) .def_readwrite("sequence_separation", &mol::alg::lDDTSettings::sequence_separation) - .def_readwrite("consistency_checks", &mol::alg::lDDTSettings::consistency_checks) .def_readwrite("cutoffs", &mol::alg::lDDTSettings::cutoffs) .def_readwrite("label", &mol::alg::lDDTSettings::label); diff --git a/modules/mol/alg/src/lddt.cc b/modules/mol/alg/src/lddt.cc index bd592bc12..dfb239ed7 100644 --- a/modules/mol/alg/src/lddt.cc +++ b/modules/mol/alg/src/lddt.cc @@ -159,6 +159,7 @@ int main (int argc, char **argv) lDDTSettings settings; String parameter_file_path; bool structural_checks = false; + bool ignore_consistency_checks = false; Real bond_tolerance = 12.0; Real angle_tolerance = 12.0; String sel; @@ -221,7 +222,7 @@ int main (int argc, char **argv) structural_checks=true; } if (vm.count("ignore-consistency-checks")) { - settings.consistency_checks=false; + ignore_consistency_checks=true; } if (vm.count("tolerant")) { profile.fault_tolerant=true; @@ -359,6 +360,19 @@ int main (int argc, char **argv) } } + // Check consistency + for (std::vector<EntityView>::const_iterator ref_list_it = ref_list.begin(); + ref_list_it != ref_list.end(); ++ref_list_it) { + bool cons_check = ResidueNamesMatch(model_view,*ref_list_it, ignore_consistency_checks); + if (cons_check==false) { + if (ignore_consistency_checks==false) { + throw std::runtime_error("Residue names in model and in reference structure(s) are inconsistent."); + } else { + LOG_WARNING("Residue names in model and in reference structure(s) are inconsistent."); + } + } + } + // computes the lddt score Real lddt = LocalDistDiffTest(model_view, ref_list, glob_dist_list, settings); diff --git a/modules/mol/alg/src/local_dist_diff_test.cc b/modules/mol/alg/src/local_dist_diff_test.cc index 31d198191..bc7b18ab8 100644 --- a/modules/mol/alg/src/local_dist_diff_test.cc +++ b/modules/mol/alg/src/local_dist_diff_test.cc @@ -405,7 +405,6 @@ StereoChemicalProps::StereoChemicalProps( lDDTSettings::lDDTSettings(): radius(15.0), sequence_separation(0), - consistency_checks(true), label("localldt") { cutoffs.push_back(0.5); cutoffs.push_back(1.0); @@ -415,12 +414,10 @@ lDDTSettings::lDDTSettings(): radius(15.0), lDDTSettings::lDDTSettings(Real init_radius, int init_sequence_separation, - bool init_consistency_checks, std::vector<Real>& init_cutoffs, String init_label): radius(init_radius), sequence_separation(init_sequence_separation), - consistency_checks(init_consistency_checks), cutoffs(init_cutoffs), label(init_label) {} @@ -524,9 +521,6 @@ void lDDTScorer::_Init(){ _global_score = -1.0; CleanlDDTReferences(references_view); _PrepareGlobalRDMap(); - if (settings.consistency_checks) { - _CheckConsistency(); - } } Real lDDTScorer::GetGlobalScore(){ @@ -581,16 +575,6 @@ bool lDDTScorer::IsValid(){ return _score_valid; } -void lDDTScorer::_CheckConsistency(){ - for (std::vector<EntityView>::const_iterator ref_list_it = references_view.begin(); - ref_list_it != references_view.end(); ++ref_list_it) { - bool cons_check = ResidueNamesMatch(model_view, *ref_list_it, true); - if (cons_check == false) { - throw std::runtime_error("Residue names in model and in reference structure(s) are inconsistent."); - } - } -} - void lDDTScorer::_ComputelDDT(){ std::pair<int,int> cov = ComputeCoverage(model_view,glob_dist_list); if (cov.second == -1) { @@ -769,17 +753,6 @@ Real LocalDistDiffTest(const EntityView& v, std::vector<EntityView>& ref_list, const GlobalRDMap& glob_dist_list, lDDTSettings& settings) { - for (std::vector<EntityView>::const_iterator ref_list_it = ref_list.begin(); - ref_list_it != ref_list.end(); ++ref_list_it) { - bool cons_check = ResidueNamesMatch(v,*ref_list_it,settings.consistency_checks); - if (cons_check==false) { - if (settings.consistency_checks==true) { - throw std::runtime_error("Residue names in model and in reference structure(s) are inconsistent."); - } else { - LOG_WARNING("Residue names in model and in reference structure(s) are inconsistent."); - } - } - } std::pair<int,int> cov = ComputeCoverage(v,glob_dist_list); if (cov.second == -1) { @@ -981,7 +954,7 @@ std::vector<lDDTLocalScore> GetlDDTPerResidueStats(EntityView& model, conserved_dist=ritv.GetIntProp(label+"_conserved"); total_dist=ritv.GetIntProp(label+"_total"); } else { - std::cout << label << std::endl; + //std::cout << label << std::endl; lddt_local = 0; lddt_local_string="0.0000"; conserved_dist = 0; diff --git a/modules/mol/alg/src/local_dist_diff_test.hh b/modules/mol/alg/src/local_dist_diff_test.hh index 364b65951..8c9aa5f59 100644 --- a/modules/mol/alg/src/local_dist_diff_test.hh +++ b/modules/mol/alg/src/local_dist_diff_test.hh @@ -43,14 +43,12 @@ struct StereoChemicalProps struct lDDTSettings { Real radius; int sequence_separation; - bool consistency_checks; std::vector<Real> cutoffs; String label; lDDTSettings(); lDDTSettings(Real init_radius, int init_sequence_separation, - bool init_consistency_checks, std::vector<Real>& init_cutoffs, String init_label); void PrintParameters(); @@ -121,7 +119,6 @@ class lDDTScorer void _Init(); void _ComputelDDT(); void _GetLocallDDT(); - void _CheckConsistency(); void _PrepareGlobalRDMap(); }; -- GitLab