diff --git a/modules/mol/alg/pymod/wrap_mol_alg.cc b/modules/mol/alg/pymod/wrap_mol_alg.cc index 2ea296b6e932a5f33e6a6e2bf5fb3aa333c35d3f..f00fea65b459a1e4634ec4cee561dbe7b43a7ea8 100644 --- a/modules/mol/alg/pymod/wrap_mol_alg.cc +++ b/modules/mol/alg/pymod/wrap_mol_alg.cc @@ -20,7 +20,7 @@ #include <boost/python.hpp> #include <boost/python/suite/indexing/map_indexing_suite.hpp> #include <ost/config.hh> -#include <ost/mol/alg/local_dist_test.hh> +#include <ost/mol/alg/local_dist_diff_test.hh> #include <ost/mol/alg/superpose_frames.hh> #include <ost/mol/alg/filter_clashes.hh> using namespace boost::python; @@ -36,9 +36,9 @@ void export_entity_to_density(); namespace { -Real (*ldt_a)(const mol::EntityView&, const mol::alg::GlobalRDMap& , std::vector<Real>, const String&)=&mol::alg::LocalDistTest; -Real (*ldt_c)(const mol::EntityView&, const mol::EntityView& , Real, Real, const String&)=&mol::alg::LocalDistTest; -Real (*ldt_b)(const seq::AlignmentHandle&,Real, Real, int, int)=&mol::alg::LocalDistTest; +Real (*lddt_a)(const mol::EntityView&, const mol::alg::GlobalRDMap& , std::vector<Real>, const String&)=&mol::alg::LocalDistDiffTest; +Real (*lddt_c)(const mol::EntityView&, const mol::EntityView& , Real, Real, const String&)=&mol::alg::LocalDistDiffTest; +Real (*lddt_b)(const seq::AlignmentHandle&,Real, Real, int, int)=&mol::alg::LocalDistDiffTest; mol::EntityView (*fc_a)(const mol::EntityView&, const mol::alg::ClashingDistances&,bool)=&mol::alg::FilterClashes; mol::EntityView (*fc_b)(const mol::EntityHandle&, const mol::alg::ClashingDistances&, bool)=&mol::alg::FilterClashes; mol::EntityView (*csc_a)(const mol::EntityView&, const mol::alg::StereoChemicalParams&, const mol::alg::StereoChemicalParams&, Real, Real, bool)=&mol::alg::CheckStereoChemistry; @@ -100,14 +100,14 @@ BOOST_PYTHON_MODULE(_ost_mol_alg) export_entity_to_density(); #endif - def("LocalDistTest", ldt_a, (arg("local_ldt_property_string")="")); - def("LocalDistTest", ldt_c, (arg("local_ldt_property_string")="")); - def("LocalDistTest", ldt_b, (arg("ref_index")=0, arg("mdl_index")=1)); + def("LocalDistDiffTest", lddt_a, (arg("local_lddt_property_string")="")); + def("LocalDistDiffTest", lddt_c, (arg("local_lddt_property_string")="")); + def("LocalDistDiffTest", lddt_b, (arg("ref_index")=0, arg("mdl_index")=1)); def("FilterClashes", fc_a, (arg("ent"), arg("clashing_distances"), arg("always_remove_bb")=false)); def("FilterClashes", fc_b, (arg("ent"), arg("clashing_distances"), arg("always_remove_bb")=false)); def("CheckStereoChemistry", csc_a, (arg("ent"), arg("bonds"), arg("angles"), arg("bond_tolerance"), arg("angle_tolerance"), arg("always_remove_bb")=false)); def("CheckStereoChemistry", csc_b, (arg("ent"), arg("bonds"), arg("angles"), arg("bond_tolerance"), arg("angle_tolerance"), arg("always_remove_bb")=false)); - def("LDTHA",&mol::alg::LDTHA); + def("LDDTHA",&mol::alg::LDDTHA); def("CreateDistanceList",&mol::alg::CreateDistanceList); def("CreateDistanceListFromMultipleReferences",&create_distance_list_from_multiple_references); diff --git a/modules/mol/alg/src/CMakeLists.txt b/modules/mol/alg/src/CMakeLists.txt index 050d4822712f8789bfac97938e18c327334f7d92..146717ace4972b697c0ce160206b67749c029f2e 100644 --- a/modules/mol/alg/src/CMakeLists.txt +++ b/modules/mol/alg/src/CMakeLists.txt @@ -2,7 +2,7 @@ set(OST_MOL_ALG_HEADERS svd_superpose.hh module_config.hh sec_structure_segments.hh - local_dist_test.hh + local_dist_diff_test.hh superpose_frames.hh filter_clashes.hh construct_cbeta.hh @@ -15,7 +15,7 @@ set(OST_MOL_ALG_SOURCES svd_superpose.cc clash_score.cc sec_structure_segments.cc - local_dist_test.cc + local_dist_diff_test.cc superpose_frames.cc filter_clashes.cc construct_cbeta.cc @@ -39,7 +39,7 @@ if (ENABLE_IMG) set(MOL_ALG_DEPS ${MOL_ALG_DEPS} ost_img ost_img_alg) endif() -executable(NAME ldt SOURCES ldt.cc +executable(NAME lddt SOURCES lddt.cc DEPENDS_ON ost_mol ost_mol_alg ost_io STATIC) module(NAME mol_alg SOURCES ${OST_MOL_ALG_SOURCES} diff --git a/modules/mol/alg/src/lddt.cc b/modules/mol/alg/src/lddt.cc index bca98880b69569e4ba9bbd7ded0e8dbbc258c16c..4009cd3a86eb104a5e309a74f443b7465c9e29ab 100644 --- a/modules/mol/alg/src/lddt.cc +++ b/modules/mol/alg/src/lddt.cc @@ -22,7 +22,7 @@ #include <boost/program_options.hpp> #include <boost/filesystem/fstream.hpp> #include <boost/filesystem/convenience.hpp> -#include <ost/mol/alg/local_dist_test.hh> +#include <ost/mol/alg/local_dist_diff_test.hh> #include <ost/mol/alg/filter_clashes.hh> #include <ost/io/mol/pdb_reader.hh> #include <ost/io/io_exception.hh> @@ -63,7 +63,7 @@ EntityHandle load(const String& file, const IOProfile& profile) void usage() { - std::cerr << "usage: ldt [options] <mod1> [mod1 [mod2]] <ref>" << std::endl; + std::cerr << "usage: lddt [options] <mod1> [mod1 [mod2]] <ref>" << std::endl; std::cerr << " -s selection performed on ref" << std::endl; std::cerr << " -c use Calphas only" << std::endl; std::cerr << " -f perform structural checks and filter input data" << std::endl; @@ -218,7 +218,7 @@ int main (int argc, char **argv) LOG_INFO("ANGLE INFO FORMAT: Chain Residue ResNum Angle Min Max Observed Z-score Status"); LOG_INFO("CLASH INFO FORMAT: Chain1 Residue1 ResNum1 Atom1 Chain2 Residue2 ResNum2 Atom2 Observed Difference Status"); } - LOG_INFO("LDT INFO FORMAT: Chain1 Residue1 ResNum1 Atom1 Chain2 Residue2 ResNum2 Atom2 ModelDist TargetDist Difference Tolerance Status"); + LOG_INFO("LDDT INFO FORMAT: Chain1 Residue1 ResNum1 Atom1 Chain2 Residue2 ResNum2 Atom2 ModelDist TargetDist Difference Tolerance Status"); for (size_t i=0; i<files.size(); ++i) { EntityHandle model=load(files[i], profile); if (!model) { @@ -293,22 +293,22 @@ int main (int argc, char **argv) std::cout << "Coverage after clashing checks: " << (float(cov.first)/float(cov.second)) << " (" << cov.first << " out of " << cov.second << " residues)" << std::endl; } if (cov.first==0) { - std::cout << "Global LDT score: 0.0" << std::endl; + std::cout << "Global LDDT score: 0.0" << std::endl; return 0; } - Real ldt=LDTHA(v, glob_dist_list); + Real lddt=LDDTHA(v, glob_dist_list); - std::cout << "Global LDT score: " << ldt << std::endl; - std::cout << "Local LDT Score:" << std::endl; + std::cout << "Global LDDT score: " << lddt << std::endl; + std::cout << "Local LDDT Score:" << std::endl; std::cout << "Chain\tResName\tResNum\tScore" << std::endl; for (ResidueViewIter rit=v.ResiduesBegin();rit!=v.ResiduesEnd();++rit){ ResidueView ritv = *rit; - Real ldt_local = 0; - if (ritv.HasProp("localldt")) { - ldt_local=ritv.GetFloatProp("localldt"); + Real lddt_local = 0; + if (ritv.HasProp("locallddt")) { + lddt_local=ritv.GetFloatProp("locallddt"); } - if (ldt_local!=0) { - std::cout << ritv.GetChain() << "\t" << ritv.GetName() << "\t" << ritv.GetNumber() << '\t' << ldt_local << std::endl; + if (lddt_local!=0) { + std::cout << ritv.GetChain() << "\t" << ritv.GetName() << "\t" << ritv.GetNumber() << '\t' << lddt_local << std::endl; } } std::cout << std::endl; diff --git a/modules/mol/alg/src/local_dist_diff_test.cc b/modules/mol/alg/src/local_dist_diff_test.cc index c15d6392797a08d70b84ad296d10956ebfa61767..37b38d89a7d4a0d55ceac1609d1fc847964d3462 100644 --- a/modules/mol/alg/src/local_dist_diff_test.cc +++ b/modules/mol/alg/src/local_dist_diff_test.cc @@ -1,6 +1,6 @@ #include <ost/log.hh> #include <ost/mol/mol.hh> -#include "local_dist_test.hh" +#include "local_dist_diff_test.hh" #include <boost/concept_check.hpp> namespace ost { namespace mol { namespace alg { @@ -121,7 +121,7 @@ std::pair<Real, Real> calc_overlap1(const ResidueRDMap& res_distance_list, const Real tol = * tol_list_it; if (within_tolerance(mdl_dist,values,tol).first) { if (log) { - LOG_VERBOSE("LDT:" << " " << av1.GetResidue().GetChain() << " " << av1.GetResidue().GetName() << " " << av1.GetResidue().GetNumber() << " " << av1.GetName() + LOG_VERBOSE("lddt:" << " " << av1.GetResidue().GetChain() << " " << av1.GetResidue().GetName() << " " << av1.GetResidue().GetNumber() << " " << av1.GetName() << " " << av2.GetResidue().GetChain() << " " << av2.GetResidue().GetName() << " " << av2.GetResidue().GetNumber() << " " << av2.GetName() << " " << mdl_dist << " " << values.first << " " << values.second << " " << tol << " " << "PASS") } @@ -130,7 +130,7 @@ std::pair<Real, Real> calc_overlap1(const ResidueRDMap& res_distance_list, const overlap_list[av2.GetResidue().GetIndex()].first+=1; } else { if (log) { - LOG_VERBOSE("LDT:" << " " << av1.GetResidue().GetChain() << " " << av1.GetResidue().GetName() << " " << av1.GetResidue().GetNumber() << " " << av1.GetName() + LOG_VERBOSE("lddt:" << " " << av1.GetResidue().GetChain() << " " << av1.GetResidue().GetName() << " " << av1.GetResidue().GetNumber() << " " << av1.GetName() << " " << av2.GetResidue().GetChain() << " " << av2.GetResidue().GetName() << " " << av2.GetResidue().GetNumber() << " " << av2.GetName() << " " << mdl_dist << " " << values.first << " " << values.second << " " << tol << " " << "FAIL") } @@ -503,8 +503,8 @@ void PrintGlobalRDMap(const GlobalRDMap& glob_dist_list){ -Real LocalDistTest(const EntityView& mdl, const GlobalRDMap& glob_dist_list, - std::vector<Real> cutoff_list, const String& local_ldt_property_string) +Real LocalDistDiffTest(const EntityView& mdl, const GlobalRDMap& glob_dist_list, + std::vector<Real> cutoff_list, const String& local_lddt_property_string) { if (!mdl.GetResidueCount()) { LOG_WARNING("model structures doesn't contain any residues"); @@ -527,12 +527,12 @@ Real LocalDistTest(const EntityView& mdl, const GlobalRDMap& glob_dist_list, total_ov.first+=ov1.first; total_ov.second+=ov1.second; } - if(local_ldt_property_string!="") { + if(local_lddt_property_string!="") { ResidueView mdlr=mdl_chain.FindResidue(rn); if (mdlr.IsValid()) { int mdl_res_index =mdlr.GetIndex(); - Real local_ldt=overlap_list[mdl_res_index].first/(overlap_list[mdl_res_index].second ? overlap_list[mdl_res_index].second : 1); - mdlr.SetFloatProp(local_ldt_property_string, local_ldt); + Real local_lddt=overlap_list[mdl_res_index].first/(overlap_list[mdl_res_index].second ? overlap_list[mdl_res_index].second : 1); + mdlr.SetFloatProp(local_lddt_property_string, local_lddt); } } } @@ -540,17 +540,17 @@ Real LocalDistTest(const EntityView& mdl, const GlobalRDMap& glob_dist_list, return total_ov.first/(total_ov.second ? total_ov.second : 1); } -Real LocalDistTest(const EntityView& mdl, const EntityView& target, Real cutoff, Real max_dist, const String& local_ldt_property_string) +Real LocalDistDiffTest(const EntityView& mdl, const EntityView& target, Real cutoff, Real max_dist, const String& local_lddt_property_string) { std::vector<Real> cutoffs; cutoffs.push_back(cutoff); GlobalRDMap glob_dist_list = CreateDistanceList(target,max_dist); - return LocalDistTest(mdl, glob_dist_list, cutoffs, local_ldt_property_string); + return LocalDistDiffTest(mdl, glob_dist_list, cutoffs, local_lddt_property_string); } -Real LocalDistTest(const ost::seq::AlignmentHandle& aln, +Real LocalDistDiffTest(const ost::seq::AlignmentHandle& aln, Real cutoff, Real max_dist, int ref_index, int mdl_index) { seq::ConstSequenceHandle ref_seq=aln.GetSequence(ref_index); @@ -601,42 +601,42 @@ Real LocalDistTest(const ost::seq::AlignmentHandle& aln, return 0.0; } -Real LDTHA(EntityView& v, const GlobalRDMap& global_dist_list) +Real LDDTHA(EntityView& v, const GlobalRDMap& global_dist_list) { std::vector<Real> cutoffs; cutoffs.push_back(0.5); cutoffs.push_back(1.0); cutoffs.push_back(2.0); cutoffs.push_back(4.0); - String label="localldt"; - Real ldt=alg::LocalDistTest(v, global_dist_list, cutoffs, label); - return ldt; + String label="locallddt"; + Real lddt=alg::LocalDistDiffTest(v, global_dist_list, cutoffs, label); + return lddt; } -Real OldStyleLDTHA(EntityView& v, const GlobalRDMap& global_dist_list) +Real OldStyleLDDTHA(EntityView& v, const GlobalRDMap& global_dist_list) { - Real ldt =0; + Real lddt =0; std::vector<Real> cutoffs05; cutoffs05.push_back(0.5); - Real ldt05=alg::LocalDistTest(v, global_dist_list, cutoffs05, "localldt0.5"); + Real lddt05=alg::LocalDistDiffTest(v, global_dist_list, cutoffs05, "locallddt0.5"); std::vector<Real> cutoffs1; cutoffs1.push_back(1.0); - Real ldt1=alg::LocalDistTest(v, global_dist_list, cutoffs1, "localldt1"); + Real lddt1=alg::LocalDistDiffTest(v, global_dist_list, cutoffs1, "locallddt1"); std::vector<Real> cutoffs2; cutoffs2.push_back(2.0); - Real ldt2=alg::LocalDistTest(v, global_dist_list, cutoffs2, "localldt2"); + Real lddt2=alg::LocalDistDiffTest(v, global_dist_list, cutoffs2, "locallddt2"); std::vector<Real> cutoffs4; cutoffs4.push_back(4.0); - Real ldt4=alg::LocalDistTest(v, global_dist_list, cutoffs4, "localldt4"); - ldt = (ldt05+ldt1+ldt2+ldt4)/4.0; + Real lddt4=alg::LocalDistDiffTest(v, global_dist_list, cutoffs4, "locallddt4"); + lddt = (lddt05+lddt1+lddt2+lddt4)/4.0; for (ResidueViewIter rit=v.ResiduesBegin();rit!=v.ResiduesEnd();++rit){ ResidueView ritv = *rit; - if (ritv.HasProp("localldt0.5")) { - Real ldt_local = (ritv.GetFloatProp("localldt0.5")+ritv.GetFloatProp("localldt1")+ritv.GetFloatProp("localldt2")+ritv.GetFloatProp("localldt4"))/4.0; - ritv.SetFloatProp("localldt",ldt_local); + if (ritv.HasProp("locallddt0.5")) { + Real lddt_local = (ritv.GetFloatProp("locallddt0.5")+ritv.GetFloatProp("locallddt1")+ritv.GetFloatProp("locallddt2")+ritv.GetFloatProp("locallddt4"))/4.0; + ritv.SetFloatProp("locallddt",lddt_local); } } - return ldt; + return lddt; } }}} diff --git a/modules/mol/alg/src/local_dist_diff_test.hh b/modules/mol/alg/src/local_dist_diff_test.hh index 8a38f4baea7a5237ad598a7cd168511beee803ee..6e1c28a8088b1fade9918ce2c8d46653e9e6531f 100644 --- a/modules/mol/alg/src/local_dist_diff_test.hh +++ b/modules/mol/alg/src/local_dist_diff_test.hh @@ -55,24 +55,24 @@ typedef std::map<std::pair<UniqueAtomIdentifier,UniqueAtomIdentifier>,std::pair< typedef std::map<ost::mol::ResNum,ResidueRDMap> GlobalRDMap; typedef std::map<UniqueAtomIdentifier,int> ExistenceMap; -Real DLLEXPORT_OST_MOL_ALG LocalDistTest(const EntityView& mdl, +Real DLLEXPORT_OST_MOL_ALG LocalDistDiffTest(const EntityView& mdl, const GlobalRDMap& dist_list, std::vector<Real> cutoff_list, const String& local_ldt_property_string=""); -Real DLLEXPORT_OST_MOL_ALG LocalDistTest(const EntityView& mdl, +Real DLLEXPORT_OST_MOL_ALG LocalDistDiffTest(const EntityView& mdl, const EntityView& target, Real cutoff_list, Real max_dist, const String& local_ldt_property_string=""); -Real DLLEXPORT_OST_MOL_ALG LocalDistTest(const ost::seq::AlignmentHandle& aln, +Real DLLEXPORT_OST_MOL_ALG LocalDistDiffTest(const ost::seq::AlignmentHandle& aln, Real cutoff, Real max_dist, int ref_index=0, int mdl_index=1); -Real DLLEXPORT_OST_MOL_ALG LDTHA(EntityView& v, const GlobalRDMap& global_dist_list); -Real DLLEXPORT_OST_MOL_ALG OldStyleLDTHA(EntityView& v, const GlobalRDMap& global_dist_list); +Real DLLEXPORT_OST_MOL_ALG LDDTHA(EntityView& v, const GlobalRDMap& global_dist_list); +Real DLLEXPORT_OST_MOL_ALG OldStyleLDDTHA(EntityView& v, const GlobalRDMap& global_dist_list); GlobalRDMap CreateDistanceList(const EntityView& ref,Real max_dist);