@@ -256,6 +256,8 @@ int search(int argc, const char **argv, const Command& command) {
256256 }
257257 }
258258
259+
260+
259261 const bool isUngappedMode = par.alignmentMode == Parameters::ALIGNMENT_MODE_UNGAPPED;
260262 if (isUngappedMode && (searchMode & (Parameters::SEARCH_MODE_FLAG_QUERY_PROFILE |Parameters::SEARCH_MODE_FLAG_TARGET_PROFILE ))) {
261263 par.printUsageMessage (command, MMseqsParameter::COMMAND_ALIGN | MMseqsParameter::COMMAND_PREFILTER);
@@ -316,6 +318,19 @@ int search(int argc, const char **argv, const Command& command) {
316318 } else {
317319 cmd.addVariable (" ALIGN_MODULE" , " align" );
318320 }
321+
322+ switch (par.prefMode ){
323+ case Parameters::PREF_MODE_KMER:
324+ cmd.addVariable (" PREFMODE" , " KMER" );
325+ break ;
326+ case Parameters::PREF_MODE_UNGAPPED:
327+ cmd.addVariable (" PREFMODE" , " UNGAPPED" );
328+ break ;
329+ case Parameters::PREF_MODE_EXHAUSTIVE:
330+ cmd.addVariable (" PREFMODE" , " EXHAUSTIVE" );
331+ break ;
332+ }
333+
319334 cmd.addVariable (" REMOVE_TMP" , par.removeTmpFiles ? " TRUE" : NULL );
320335 std::string program;
321336 cmd.addVariable (" RUNNER" , par.runner .c_str ());
@@ -334,7 +349,11 @@ int search(int argc, const char **argv, const Command& command) {
334349 par.covMode = Util::swapCoverageMode (par.covMode );
335350 size_t maxResListLen = par.maxResListLen ;
336351 par.maxResListLen = std::max ((size_t )300 , queryDbSize);
337- cmd.addVariable (" PREFILTER_PAR" , par.createParameterString (par.prefilter ).c_str ());
352+ if (par.prefMode == Parameters::PREF_MODE_KMER){
353+ cmd.addVariable (" PREFILTER_PAR" , par.createParameterString (par.prefilter ).c_str ());
354+ } else if (par.prefMode == Parameters::PREF_MODE_UNGAPPED) {
355+ cmd.addVariable (" UNGAPPEDPREFILTER_PAR" , par.createParameterString (par.ungappedprefilter ).c_str ());
356+ }
338357 par.maxResListLen = maxResListLen;
339358 double originalEvalThr = par.evalThr ;
340359 par.evalThr = std::numeric_limits<double >::max ();
@@ -385,8 +404,13 @@ int search(int argc, const char **argv, const Command& command) {
385404 if (i == (par.numIterations - 1 )) {
386405 par.evalThr = originalEval;
387406 }
388- cmd.addVariable (std::string (" PREFILTER_PAR_" + SSTR (i)).c_str (),
389- par.createParameterString (par.prefilter ).c_str ());
407+ if (par.prefMode == Parameters::PREF_MODE_KMER) {
408+ cmd.addVariable (std::string (" PREFILTER_PAR_" + SSTR (i)).c_str (),
409+ par.createParameterString (par.prefilter ).c_str ());
410+ } else if (par.prefMode == Parameters::PREF_MODE_UNGAPPED) {
411+ cmd.addVariable (std::string (" UNGAPPEDPREFILTER_PAR_" + SSTR (i)).c_str (),
412+ par.createParameterString (par.ungappedprefilter ).c_str ());
413+ }
390414 if (isUngappedMode) {
391415 par.rescoreMode = Parameters::RESCORE_MODE_ALIGNMENT;
392416 cmd.addVariable (std::string (" ALIGNMENT_PAR_" + SSTR (i)).c_str (),
@@ -439,8 +463,13 @@ int search(int argc, const char **argv, const Command& command) {
439463 par.evalThr = originalEval;
440464 }
441465
442- cmd.addVariable (std::string (" PREFILTER_PAR_" + SSTR (i)).c_str (),
443- par.createParameterString (par.prefilter ).c_str ());
466+ if (par.prefMode == Parameters::PREF_MODE_KMER) {
467+ cmd.addVariable (std::string (" PREFILTER_PAR_" + SSTR (i)).c_str (),
468+ par.createParameterString (par.prefilter ).c_str ());
469+ } else if (par.prefMode == Parameters::PREF_MODE_UNGAPPED) {
470+ cmd.addVariable (std::string (" UNGAPPEDPREFILTER_PAR_" + SSTR (i)).c_str (),
471+ par.createParameterString (par.ungappedprefilter ).c_str ());
472+ }
444473 if (isUngappedMode) {
445474 par.rescoreMode = Parameters::RESCORE_MODE_ALIGNMENT;
446475 cmd.addVariable (std::string (" ALIGNMENT_PAR_" + SSTR (i)).c_str (),
@@ -487,7 +516,11 @@ int search(int argc, const char **argv, const Command& command) {
487516 prefilterWithoutS.push_back (par.prefilter [i]);
488517 }
489518 }
490- cmd.addVariable (" PREFILTER_PAR" , par.createParameterString (prefilterWithoutS).c_str ());
519+ if (par.prefMode == Parameters::PREF_MODE_KMER) {
520+ cmd.addVariable (" PREFILTER_PAR" , par.createParameterString (prefilterWithoutS).c_str ());
521+ } else if (par.prefMode == Parameters::PREF_MODE_UNGAPPED) {
522+ cmd.addVariable (" UNGAPPEDPREFILTER_PAR" , par.createParameterString (par.ungappedprefilter ).c_str ());
523+ }
491524 if (isUngappedMode) {
492525 par.rescoreMode = Parameters::RESCORE_MODE_ALIGNMENT;
493526 cmd.addVariable (" ALIGNMENT_PAR" , par.createParameterString (par.rescorediagonal ).c_str ());
0 commit comments