From ee157e4ff10564b9ea78767c766535126d3d11c3 Mon Sep 17 00:00:00 2001
From: Rafal Gumienny <r.gumienny@unibas.ch>
Date: Wed, 25 Apr 2018 16:39:41 +0200
Subject: [PATCH] fix: SCHWED-3121 Remove selection from lDDTScorer

---
 actions/ost-compare-structures              |  1 -
 modules/mol/alg/pymod/wrap_mol_alg.cc       | 12 ++----------
 modules/mol/alg/src/lddt.cc                 |  9 +++++----
 modules/mol/alg/src/local_dist_diff_test.cc | 21 ---------------------
 modules/mol/alg/src/local_dist_diff_test.hh |  3 ---
 5 files changed, 7 insertions(+), 39 deletions(-)

diff --git a/actions/ost-compare-structures b/actions/ost-compare-structures
index 405e8e208..a23841c4f 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,
-                    sel="",
                     consistency_checks=False,  # These are performed elsewhere
                     label="lddt")
                 ost.LogInfo("lDDT settings: ")
diff --git a/modules/mol/alg/pymod/wrap_mol_alg.cc b/modules/mol/alg/pymod/wrap_mol_alg.cc
index 449a03543..44a316ea7 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();
   }
 
-  String sel = "";
-  if(kwargs.contains("sel")){
-    sel = extract<String>(kwargs["sel"]);
-    kwargs["sel"].del();
-  }
-
   bool consistency_checks = true;
   if(kwargs.contains("consistency_checks")){
     consistency_checks = extract<bool>(kwargs["consistency_checks"]);
@@ -173,14 +167,13 @@ object lDDTSettingsInitWrapper(tuple args, dict kwargs){
     ss << "Invalid keywords observed when setting up lDDTSettings! ";
     ss << "Or did you pass the same keyword twice? ";
     ss << "Valid keywords are: radius, ";
-    ss << "sequence_separation, sel, parameter_file_path, ";
+    ss << "sequence_separation, parameter_file_path, ";
     ss << "consistency_checks, cutoffs, label!";
     throw std::invalid_argument(ss.str());
   }
 
   return self.attr("__init__")(radius, 
                                sequence_separation,
-                               sel,
                                consistency_checks,
                                cutoffs,
                                label);
@@ -384,14 +377,13 @@ BOOST_PYTHON_MODULE(_ost_mol_alg)
 
   class_<mol::alg::lDDTSettings>("lDDTSettings", no_init)
     .def("__init__", raw_function(lDDTSettingsInitWrapper))
-    .def(init<Real, int, String, bool, std::vector<Real>&, String>())
+    .def(init<Real, int, bool, 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("sel", &mol::alg::lDDTSettings::sel)
     .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 6fb921093..bd592bc12 100644
--- a/modules/mol/alg/src/lddt.cc
+++ b/modules/mol/alg/src/lddt.cc
@@ -161,6 +161,7 @@ int main (int argc, char **argv)
   bool structural_checks = false;
   Real bond_tolerance = 12.0;
   Real angle_tolerance = 12.0;
+  String sel;
   // creates the required loading profile
   IOProfile profile;
   // parses options
@@ -168,7 +169,7 @@ int main (int argc, char **argv)
   po::options_description desc("Options");
   desc.add_options()
     ("calpha,c", "consider only calpha atoms")
-    ("sel,s", po::value<String>(&settings.sel)->default_value(""), "selection performed on reference structure")
+    ("sel,s", po::value<String>(&sel)->default_value(""), "selection performed on reference structure")
     ("tolerant,t", "fault tolerant mode")
     ("structural-checks,f", "perform stereo-chemical and clash checks")
     ("ignore-consistency-checks,x", "ignore residue name consistency checks")
@@ -279,10 +280,10 @@ int main (int argc, char **argv)
     if (!ref) {
       exit(-1);
     }
-    if (settings.sel != ""){
-      std::cout << "Performing \"" << settings.sel << "\" selection on reference " << ref_filename << std::endl;
+    if (sel != ""){
+      std::cout << "Performing \"" << sel << "\" selection on reference " << ref_filename << std::endl;
       try {
-        ref_list.push_back(ref.Select(settings.sel));
+        ref_list.push_back(ref.Select(sel));
       } catch (const ost::mol::QueryError& e) {
         std::cerr << "Provided selection argument failed." << std::endl << e.GetFormattedMessage() << std::endl;
         exit(-1);
diff --git a/modules/mol/alg/src/local_dist_diff_test.cc b/modules/mol/alg/src/local_dist_diff_test.cc
index 597e84c85..31d198191 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),
-                              sel(""),
                               consistency_checks(true),
                               label("localldt") {
     cutoffs.push_back(0.5);
@@ -416,13 +415,11 @@ lDDTSettings::lDDTSettings(): radius(15.0),
 
 lDDTSettings::lDDTSettings(Real init_radius, 
                            int init_sequence_separation,
-                           String init_sel,
                            bool init_consistency_checks,
                            std::vector<Real>& init_cutoffs,
                            String init_label):
                     radius(init_radius), 
                     sequence_separation(init_sequence_separation),
-                    sel(init_sel),
                     consistency_checks(init_consistency_checks),
                     cutoffs(init_cutoffs),
                     label(init_label) {}
@@ -573,24 +570,6 @@ std::vector<EntityView> lDDTScorer::GetReferences(){
   return references_view;
 }
 
-void lDDTScorer::_PrepareReferences(std::vector<EntityHandle>& references){
-  for (unsigned int i = 0; i < references.size(); i++) {
-    if (settings.sel != ""){
-      std::cout << "Performing \"" << settings.sel << "\" selection on reference " << references[i].GetName() << std::endl;
-      try {
-        references_view.push_back(references[i].Select(settings.sel));
-      } catch (const ost::mol::QueryError& e) {
-        std::stringstream errstr;
-        errstr << "Provided selection argument failed." << std::endl << e.GetFormattedMessage();
-        throw std::runtime_error(errstr.str());
-      }
-    }
-    else {
-      references_view.push_back(references[i].CreateFullView());
-    }
-  }
-}
-
 void lDDTScorer::_PrepareGlobalRDMap(){
   glob_dist_list = PreparelDDTGlobalRDMap(references_view,
                                           settings.cutoffs,
diff --git a/modules/mol/alg/src/local_dist_diff_test.hh b/modules/mol/alg/src/local_dist_diff_test.hh
index 5e3a8d4df..364b65951 100644
--- a/modules/mol/alg/src/local_dist_diff_test.hh
+++ b/modules/mol/alg/src/local_dist_diff_test.hh
@@ -43,7 +43,6 @@ struct StereoChemicalProps
 struct lDDTSettings {
   Real radius; 
   int sequence_separation;
-  String sel;
   bool consistency_checks;
   std::vector<Real> cutoffs;
   String label;
@@ -51,7 +50,6 @@ struct lDDTSettings {
   lDDTSettings();
   lDDTSettings(Real init_radius, 
                int init_sequence_separation,
-               String init_sel,
                bool init_consistency_checks,
                std::vector<Real>& init_cutoffs,
                String init_label);
@@ -124,7 +122,6 @@ class lDDTScorer
     void _ComputelDDT();
     void _GetLocallDDT();
     void _CheckConsistency();
-    void _PrepareReferences(std::vector<EntityHandle>& references);
     void _PrepareGlobalRDMap();
 };
 
-- 
GitLab