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