From 91f2c7eeb35755150a77f4603adc4e11d316077f Mon Sep 17 00:00:00 2001
From: Valerio Mariani <valerio.mariani@unibas.ch>
Date: Tue, 12 Jun 2012 11:27:52 +0200
Subject: [PATCH] Removed default clashing distances

---
 modules/mol/alg/pymod/wrap_mol_alg.cc |  4 ++--
 modules/mol/alg/src/filter_clashes.cc | 18 ++++++++++--------
 modules/mol/alg/src/filter_clashes.hh |  4 ++--
 modules/mol/alg/src/ldt.cc            | 11 ++---------
 4 files changed, 16 insertions(+), 21 deletions(-)

diff --git a/modules/mol/alg/pymod/wrap_mol_alg.cc b/modules/mol/alg/pymod/wrap_mol_alg.cc
index 9d3877de7..2ea296b6e 100644
--- a/modules/mol/alg/pymod/wrap_mol_alg.cc
+++ b/modules/mol/alg/pymod/wrap_mol_alg.cc
@@ -67,7 +67,7 @@ ost::mol::alg::ClashingDistances fill_clashing_distances_wrapper (const list& st
     stereo_chemical_props_file_vector[i] = boost::python::extract<char const*>(stereo_chemical_props_file[i]);
   }
  
- return ost::mol::alg::FillClashingDistances(stereo_chemical_props_file_vector,min_default_distance,min_distance_tolerance);
+ return ost::mol::alg::FillClashingDistances(stereo_chemical_props_file_vector);
 }
 
 ost::mol::alg::GlobalRDMap create_distance_list_from_multiple_references(const list& ref_list, const list& cutoff_list, Real max_dist)
@@ -118,7 +118,7 @@ BOOST_PYTHON_MODULE(_ost_mol_alg)
   (arg("source"), arg("sel"), arg("ref_view"),arg("begin")=0, arg("end")=-1));
 
   
-  class_<mol::alg::ClashingDistances> ("ClashingDistances" ,init<Real,Real>())
+  class_<mol::alg::ClashingDistances> ("ClashingDistances",init<>())
     .def("SetClashingDistance",&mol::alg::ClashingDistances::SetClashingDistance)
     .def("GetClashingDistance",&mol::alg::ClashingDistances::GetClashingDistance)
     .def("GetMaxAdjustedDistance",&mol::alg::ClashingDistances::GetMaxAdjustedDistance)    
diff --git a/modules/mol/alg/src/filter_clashes.cc b/modules/mol/alg/src/filter_clashes.cc
index 0d3a8f809..e4758a86d 100644
--- a/modules/mol/alg/src/filter_clashes.cc
+++ b/modules/mol/alg/src/filter_clashes.cc
@@ -98,7 +98,9 @@ std::pair<Real,Real> ClashingDistances::GetClashingDistance(const String& ele1,c
   String key=stkey.str();
   std::map <String,std::pair<float,float> >::const_iterator find_ci= min_distance_.find(key);
   if (find_ci == min_distance_.end()) {
-    return std::make_pair<Real,Real> (default_min_distance_,default_min_distance_tolerance_);
+      std::stringstream serr;
+      serr << "Entry for distance " << stkey <<  " not found in the parameter table";   
+      throw Error(serr.str());
   }    
   return find_ci->second;
 }
@@ -253,9 +255,9 @@ StereoChemicalParams FillStereoChemicalParams(const String& header, std::vector<
   return table;
 };  
 
-ClashingDistances FillClashingDistances(std::vector<String>& stereo_chemical_props_file, Real min_default_distance, Real min_distance_tolerance)
+ClashingDistances FillClashingDistances(std::vector<String>& stereo_chemical_props_file)
 {
-  ClashingDistances table(min_default_distance,min_distance_tolerance);
+  ClashingDistances table;
   bool found=false;
   std::vector<String>::const_iterator line_iter=stereo_chemical_props_file.begin();
   while (line_iter!=stereo_chemical_props_file.end()) {
@@ -271,7 +273,7 @@ ClashingDistances FillClashingDistances(std::vector<String>& stereo_chemical_pro
             std::vector<StringRef> second_line_str_vec = second_line_string_ref.split();
             if (second_line_str_vec.size()!=3) {
               std::cout << "The number of elements in one of the lines is wrong" << std::endl;
-              return ClashingDistances(min_default_distance,min_distance_tolerance);
+              return ClashingDistances();
             } 
             String item = second_line_str_vec[0].str();
 
@@ -282,19 +284,19 @@ ClashingDistances FillClashingDistances(std::vector<String>& stereo_chemical_pro
               value=static_cast<Real>(parse_value.second);
             } else {
               std::cout << "One of the distance values is not a number" << std::endl;
-              return ClashingDistances(min_default_distance,min_distance_tolerance);
+              return ClashingDistances();
             };
             if (parse_stddev.first==true) {
               stddev=static_cast<Real>(parse_stddev.second);
             } else {
               std::cout << "One of the tolerance values is not a number" << std::endl;
-              return ClashingDistances(min_default_distance,min_distance_tolerance);
+              return ClashingDistances();
             }
             StringRef itemsr(item.data(),item.length());
             std::vector<StringRef> eles = itemsr.split('-');
             if (itemsr.size() != 3) {
               std::cout << "One of the strings describing the interacting atoms has the wrong format" << std::endl;
-              return ClashingDistances(min_default_distance,min_distance_tolerance);
+              return ClashingDistances();
             }  
             String ele1=eles[0].str();
             String ele2=eles[1].str();
@@ -312,7 +314,7 @@ ClashingDistances FillClashingDistances(std::vector<String>& stereo_chemical_pro
   }
   if (found==false) {
     std::cout << "Could not find the relevant section in the stereo-chemical parameter file" << std::endl;
-    return ClashingDistances(min_default_distance,min_distance_tolerance);
+    return ClashingDistances();
   } 
   return table;
 }  
diff --git a/modules/mol/alg/src/filter_clashes.hh b/modules/mol/alg/src/filter_clashes.hh
index 5d64fc230..5984a05f5 100644
--- a/modules/mol/alg/src/filter_clashes.hh
+++ b/modules/mol/alg/src/filter_clashes.hh
@@ -28,7 +28,7 @@ class ClashingDistances
 {
 
 public:
-  ClashingDistances(Real default_dist, Real tolerance): default_min_distance_(default_dist), default_min_distance_tolerance_(tolerance), valid_flag_(true) {}
+  ClashingDistances(): valid_flag_(true) {}
   void SetClashingDistance(const String& ele1,const String& ele2, Real min_distance, Real tolerance);
   std::pair<Real,Real> GetClashingDistance(const String& ele1,const String& ele2) const;
   Real GetMaxAdjustedDistance() const;
@@ -64,7 +64,7 @@ private:
  
 };
 
-ClashingDistances DLLEXPORT_OST_MOL_ALG FillClashingDistances(std::vector<String>& stereo_chemical_props_file, Real min_default_distance, Real min_distance_tolerance);
+ClashingDistances DLLEXPORT_OST_MOL_ALG FillClashingDistances(std::vector<String>& stereo_chemical_props_file);
 StereoChemicalParams DLLEXPORT_OST_MOL_ALG FillStereoChemicalParams(const String& header, std::vector<String>& stereo_chemical_props_file);  
  
 EntityView DLLEXPORT_OST_MOL_ALG FilterClashes(const EntityView& ent, 
diff --git a/modules/mol/alg/src/ldt.cc b/modules/mol/alg/src/ldt.cc
index 23f11fd5f..a4e5f15e6 100644
--- a/modules/mol/alg/src/ldt.cc
+++ b/modules/mol/alg/src/ldt.cc
@@ -98,9 +98,7 @@ std::pair<int,int> compute_coverage (const EntityView& v,const GlobalRDMap& glob
 
 int main (int argc, char **argv)
 {
-  String version = "Beta - 2012-01-17";
-  Real min_default_distance = 1.5;
-  Real min_distance_tolerance = 0.0;
+  String version = "Beta - 2012-05-21";
   Real bond_tolerance = 8.0;
   Real angle_tolerance = 8.0;
   Real radius=15.0;
@@ -121,7 +119,6 @@ int main (int argc, char **argv)
     ("verbosity,v", po::value<int>(), "verbosity level")
     ("bond_tolerance,b", po::value<Real>(), "tolerance in stddev for bonds")
     ("angle_tolerance,a", po::value<Real>(), "tolerance in stddev for angles")
-    ("default_clash,m", po::value<Real>(), "clashing distance for unknown atom types")
     ("inclusion_radius,r", po::value<Real>(), "distance inclusion radius")
     ("files", po::value< std::vector<String> >(), "input file(s)")
 	("reference",po::value<String>(),"reference(s)")
@@ -184,9 +181,6 @@ int main (int argc, char **argv)
   if (vm.count("angle_tolerance")) {
     angle_tolerance=vm["angle_tolerance"].as<Real>();
   }
-  if (vm.count("default_clash")) {
-    min_default_distance=vm["default_clash"].as<Real>();
-  }
   if (vm.count("inclusion_radius")) {
     radius=vm["inclusion_radius"].as<Real>();
   }
@@ -209,7 +203,6 @@ int main (int argc, char **argv)
     std::cout << "Parameter filename: " << parameter_filename << std::endl;
     std::cout << "Tolerance in stddevs for bonds: " << bond_tolerance << std::endl;
     std::cout << "Tolerance in stddevs for angles: " << angle_tolerance << std::endl;
-    std::cout << "Clashing distance for unknown atom types: " << min_default_distance << std::endl;
     LOG_INFO("Log entries format:");
     LOG_INFO("BOND INFO FORMAT:  Chain  Residue  ResNum  Bond  Min  Max  Observed  Z-score  Status");
     LOG_INFO("ANGLE INFO FORMAT:  Chain  Residue  ResNum  Angle  Min  Max  Observed  Z-score  Status");
@@ -276,7 +269,7 @@ int main (int argc, char **argv)
         exit(-1);
       }
 
-      ClashingDistances nonbonded_table = FillClashingDistances(stereo_chemical_props,min_default_distance,min_distance_tolerance);
+      ClashingDistances nonbonded_table = FillClashingDistances(stereo_chemical_props);
 
       if (nonbonded_table.IsEmpty()) {
         std::cout << "Error reading the Clashing section of the stereo-chemical parameter file." << std::endl;
-- 
GitLab