diff --git a/src/commons/LocalParameters.cpp b/src/commons/LocalParameters.cpp index fcb6c626..13f191b9 100644 --- a/src/commons/LocalParameters.cpp +++ b/src/commons/LocalParameters.cpp @@ -90,11 +90,14 @@ LocalParameters::LocalParameters() : tmalign.push_back(&PARAM_V); structurerescorediagonal.push_back(&PARAM_TMSCORE_THRESHOLD); + structurerescorediagonal.push_back(&PARAM_LDDT_THRESHOLD); + structurerescorediagonal.push_back(&PARAM_ALIGNMENT_TYPE); structurerescorediagonal = combineList(structurerescorediagonal, align); structurealign.push_back(&PARAM_TMSCORE_THRESHOLD); structurealign.push_back(&PARAM_LDDT_THRESHOLD); structurealign.push_back(&PARAM_SORT_BY_STRUCTURE_BITS); + structurealign.push_back(&PARAM_ALIGNMENT_TYPE); structurealign = combineList(structurealign, align); // tmalign.push_back(&PARAM_GAP_OPEN); // tmalign.push_back(&PARAM_GAP_EXTEND); @@ -105,13 +108,11 @@ LocalParameters::LocalParameters() : strucclust.push_back(&PARAM_REMOVE_TMP_FILES); strucclust.push_back(&PARAM_RUNNER); // structuresearchworkflow - // structuresearchworkflow structuresearchworkflow = combineList(structurealign, prefilter); structuresearchworkflow = combineList(tmalign, structuresearchworkflow); structuresearchworkflow.push_back(&PARAM_EXHAUSTIVE_SEARCH); structuresearchworkflow.push_back(&PARAM_PREF_MODE); structuresearchworkflow.push_back(&PARAM_NUM_ITERATIONS); - structuresearchworkflow.push_back(&PARAM_ALIGNMENT_TYPE); structuresearchworkflow.push_back(&PARAM_REMOVE_TMP_FILES); structuresearchworkflow.push_back(&PARAM_RUNNER); structuresearchworkflow.push_back(&PARAM_REUSELATEST); @@ -122,7 +123,7 @@ LocalParameters::LocalParameters() : easystructuresearchworkflow.push_back(&PARAM_GREEDY_BEST_HITS); structureclusterworkflow = combineList(prefilter, structurealign); - structureclusterworkflow = combineList(structureclusterworkflow, rescorediagonal); + structureclusterworkflow = combineList(structureclusterworkflow, structurerescorediagonal); structureclusterworkflow = combineList(structureclusterworkflow, tmalign); structureclusterworkflow = combineList(structureclusterworkflow, clust); structureclusterworkflow.push_back(&PARAM_CASCADED); diff --git a/src/strucclustutils/structurealign.cpp b/src/strucclustutils/structurealign.cpp index f1f2ae65..abfa41f3 100644 --- a/src/strucclustutils/structurealign.cpp +++ b/src/strucclustutils/structurealign.cpp @@ -31,6 +31,7 @@ static bool compareHitsByStructureBits(const Matcher::result_t &first, const Mat static void structureAlignDefault(LocalParameters & par) { par.compBiasCorrectionScale = 0.5; + par.alignmentType = LocalParameters::ALIGNMENT_TYPE_3DI_AA; } int alignStructure(StructureSmithWaterman & structureSmithWaterman, @@ -219,7 +220,8 @@ int structurealign(int argc, const char **argv, const Command& command) { break; } } - SubstitutionMatrix subMatAA(blosum.c_str(), 1.4, par.scoreBias); + float aaFactor = (par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI_AA) ? 1.4 : 0.0; + SubstitutionMatrix subMatAA(blosum.c_str(), aaFactor, par.scoreBias); //temporary output file Debug::Progress progress(resultReader.getSize()); diff --git a/src/strucclustutils/structurerescorediagonal.cpp b/src/strucclustutils/structurerescorediagonal.cpp index 3df927c6..9b4d69fd 100644 --- a/src/strucclustutils/structurerescorediagonal.cpp +++ b/src/strucclustutils/structurerescorediagonal.cpp @@ -221,7 +221,8 @@ int structureungappedalign(int argc, const char **argv, const Command& command) break; } } - SubstitutionMatrix subMatAA(blosum.c_str(), 1.4, par.scoreBias); + float aaFactor = (par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI_AA) ? 1.4 : 0.0; + SubstitutionMatrix subMatAA(blosum.c_str(), aaFactor, par.scoreBias); //temporary output file Debug::Progress progress(resultReader.getSize()); diff --git a/src/workflow/StructureCluster.cpp b/src/workflow/StructureCluster.cpp index 3f547532..5cd587ca 100644 --- a/src/workflow/StructureCluster.cpp +++ b/src/workflow/StructureCluster.cpp @@ -107,14 +107,10 @@ int structurecluster(int argc, const char **argv, const Command& command) { CommandCaller cmd; cmd.addVariable("REMOVE_TMP", par.removeTmpFiles ? "TRUE" : NULL); std::string alnParam; - if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI) { - cmd.addVariable("ALIGNMENT_ALGO", "align"); - cmd.addVariable("ALN_EXTENSION", "_ss"); - alnParam = par.createParameterString(par.align); - } else if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_TMALIGN) { + if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_TMALIGN) { cmd.addVariable("ALIGNMENT_ALGO", "tmalign"); alnParam = par.createParameterString(par.tmalign); - } else if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI_AA) { + } else if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI_AA || par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI) { cmd.addVariable("ALIGNMENT_ALGO", "structurealign"); alnParam = par.createParameterString(par.structurealign); } diff --git a/src/workflow/StructureSearch.cpp b/src/workflow/StructureSearch.cpp index 243fc70d..14b77f6e 100644 --- a/src/workflow/StructureSearch.cpp +++ b/src/workflow/StructureSearch.cpp @@ -119,12 +119,7 @@ int structuresearch(int argc, const char **argv, const Command &command) { if(par.exhaustiveSearch){ cmd.addVariable("PREFMODE", "EXHAUSTIVE"); } - if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI){ - cmd.addVariable("ALIGNMENT_ALGO", "align"); - cmd.addVariable("QUERY_ALIGNMENT", (query+"_ss").c_str()); - cmd.addVariable("TARGET_ALIGNMENT", (target+"_ss").c_str()); - cmd.addVariable("ALIGNMENT_PAR", par.createParameterString(par.align).c_str()); - }else if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_TMALIGN){ + if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_TMALIGN){ cmd.addVariable("ALIGNMENT_ALGO", "tmalign"); cmd.addVariable("QUERY_ALIGNMENT", query.c_str()); cmd.addVariable("TARGET_ALIGNMENT", target.c_str()); @@ -133,7 +128,7 @@ int structuresearch(int argc, const char **argv, const Command &command) { par.sortByStructureBits = 0; //par.evalThr = 10; we want users to adjust this one. Our default is 10 anyhow. cmd.addVariable("STRUCTUREALIGN_PAR", par.createParameterString(par.structurealign).c_str()); - }else if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI_AA){ + }else if(par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI_AA || par.alignmentType == LocalParameters::ALIGNMENT_TYPE_3DI){ cmd.addVariable("ALIGNMENT_ALGO", "structurealign"); cmd.addVariable("QUERY_ALIGNMENT", query.c_str()); cmd.addVariable("TARGET_ALIGNMENT", target.c_str());