Skip to content

Commit

Permalink
Properly implement structure only search using 3Di (--alignment-type 0)
Browse files Browse the repository at this point in the history
  • Loading branch information
martin-steinegger committed Jul 9, 2023
1 parent 6e0b30c commit f0de872
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 18 deletions.
7 changes: 4 additions & 3 deletions src/commons/LocalParameters.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand Down
4 changes: 3 additions & 1 deletion src/strucclustutils/structurealign.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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());

Expand Down
3 changes: 2 additions & 1 deletion src/strucclustutils/structurerescorediagonal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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());

Expand Down
8 changes: 2 additions & 6 deletions src/workflow/StructureCluster.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
9 changes: 2 additions & 7 deletions src/workflow/StructureSearch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand All @@ -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());
Expand Down

0 comments on commit f0de872

Please sign in to comment.