diff --git a/modules/mol/alg/src/ldt.cc b/modules/mol/alg/src/ldt.cc index a4e5f15e603bdf0d34d821119c9a1f913750294c..bca98880b69569e4ba9bbd7ded0e8dbbc258c16c 100644 --- a/modules/mol/alg/src/ldt.cc +++ b/modules/mol/alg/src/ldt.cc @@ -98,7 +98,7 @@ std::pair<int,int> compute_coverage (const EntityView& v,const GlobalRDMap& glob int main (int argc, char **argv) { - String version = "Beta - 2012-05-21"; + String version = "Beta - 2012-06-13"; Real bond_tolerance = 8.0; Real angle_tolerance = 8.0; Real radius=15.0; @@ -136,7 +136,12 @@ int main (int argc, char **argv) } std::vector<String> files; if (vm.count("files")) { - files=vm["files"].as<std::vector<String> >(); + try { + files=vm["files"].as<std::vector<String> >(); + } catch (io::IOException& e) { + std::cerr << "ERROR: Problem with file list. " << e.what() << std::endl; + exit(-1); + } } else { usage(); exit(-1); @@ -152,7 +157,12 @@ int main (int argc, char **argv) } String parameter_filename; if (vm.count("parameter-file")) { - parameter_filename=vm["parameter-file"].as<String>(); + try { + parameter_filename=vm["parameter-file"].as<String>(); + } catch (io::IOException& e) { + std::cerr << "ERROR: Problem with parameter file name. " << e.what() << std::endl; + exit(-1); + } } else if (structural_checks==true) { std::cout << "Please specify a stereo-chemical parameter file" << std::endl; exit(-1); @@ -297,7 +307,9 @@ int main (int argc, char **argv) if (ritv.HasProp("localldt")) { ldt_local=ritv.GetFloatProp("localldt"); } - std::cout << ritv.GetChain() << "\t" << ritv.GetName() << "\t" << ritv.GetNumber() << '\t' << ldt_local << std::endl; + if (ldt_local!=0) { + std::cout << ritv.GetChain() << "\t" << ritv.GetName() << "\t" << ritv.GetNumber() << '\t' << ldt_local << std::endl; + } } std::cout << std::endl; } diff --git a/modules/mol/alg/src/local_dist_test.cc b/modules/mol/alg/src/local_dist_test.cc index 7d2e83db1ad2a040584bc6e173fe5043d55b8543..c15d6392797a08d70b84ad296d10956ebfa61767 100644 --- a/modules/mol/alg/src/local_dist_test.cc +++ b/modules/mol/alg/src/local_dist_test.cc @@ -91,17 +91,26 @@ std::pair<Real, Real> calc_overlap1(const ResidueRDMap& res_distance_list, const AtomView av1=mdl_res ? mdl_res.FindAtom(name) : AtomView(); if (only_fixed) { + if (first_atom.GetResNum()==second_atom.GetResNum()) { + continue; + } if (swappable(second_atom.GetResidueName(), second_atom.GetAtomName())) { continue; } - } + } + if (!only_fixed) { + if (first_atom.GetResNum()<=second_atom.GetResNum()) { + continue; + } + } + AtomView av2=mdl_chain.FindAtom(second_atom.GetResNum(),second_atom.GetAtomName()); overlap.second+=tol_list.size(); if (av1) { - overlap_list[av1.GetResidue().GetIndex()].second+=1.0; + overlap_list[av1.GetResidue().GetIndex()].second+=tol_list.size(); } if (av2) { - overlap_list[av2.GetResidue().GetIndex()].second+=1.0; + overlap_list[av2.GetResidue().GetIndex()].second+=tol_list.size(); } if (!(av1 && av2)) { continue; @@ -441,12 +450,10 @@ GlobalRDMap CreateDistanceList(const EntityView& ref,Real max_dist) aj->GetResidue().GetChain()!=ai->GetResidue().GetChain()) { continue; } - if (aj->GetResidue().GetNumber()>i->GetNumber()) { - Real dist=geom::Length(ai->GetPos()-aj->GetPos()); - UAtomIdentifiers atoms = std::make_pair<UniqueAtomIdentifier,UniqueAtomIdentifier>(first_atom,second_atom); - std::pair<Real,Real> values = std::make_pair<Real,Real>(dist,dist); - res_dist_list[atoms]=values; - } + Real dist=geom::Length(ai->GetPos()-aj->GetPos()); + UAtomIdentifiers atoms = std::make_pair<UniqueAtomIdentifier,UniqueAtomIdentifier>(first_atom,second_atom); + std::pair<Real,Real> values = std::make_pair<Real,Real>(dist,dist); + res_dist_list[atoms]=values; } } dist_list[rnum]=res_dist_list;