Skip to content

Commit 6cd1d33

Browse files
committed
[feature] add pairs profiles
1 parent aad68eb commit 6cd1d33

File tree

1 file changed

+37
-10
lines changed

1 file changed

+37
-10
lines changed

src/search_options.hpp

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -397,13 +397,13 @@ void parseCommandLine(LambdaOptions & options, int argc, char const ** argv)
397397
});
398398
#endif
399399

400-
parser.add_option(options.profile,
401-
sharg::config{
402-
.short_id = 'p',
403-
.long_id = "profile",
404-
.description = "Profiles are presets of a group of parameters. See below.",
405-
406-
.validator = sharg::value_list_validator{"none", "fast", "sensitive"}
400+
parser.add_option(
401+
options.profile,
402+
sharg::config{
403+
.short_id = 'p',
404+
.long_id = "profile",
405+
.description = "Profiles are presets of a group of parameters. See below.",
406+
.validator = sharg::value_list_validator{"none", "fast", "sensitive", "pairs-default", "pairs-sensitive"}
407407
});
408408

409409
parser.add_section("Seeding / Filtration");
@@ -573,20 +573,41 @@ void parseCommandLine(LambdaOptions & options, int argc, char const ** argv)
573573
"--seed-length0 9 --seed-offset0 4 --seed-length 8 --seed-offset 3 --pre-scoring 3 "
574574
"--pre-scoring-threshold 1.9",
575575
true);
576+
parser.add_line("\"pairs-default\"", false);
577+
parser.add_line("--search0 OFF --seed-length 8 --seed-offset 3 --pre-scoring 3 --pre-scoring-threshold 1.9",
578+
true);
579+
parser.add_line("\"pairs-sensitive\"", false);
580+
parser.add_line("--search0 OFF --seed-length 7 --seed-offset 3 --pre-scoring 3 --pre-scoring-threshold 1.9",
581+
true);
576582
break;
577583
case domain_t::nucleotide:
578584
parser.add_line("\"fast\"", false);
579-
parser.add_line("--seed-length 14 --seed-offset 9 --seed-delta 0", true);
585+
parser.add_line("--search0 OFF --seed-length 14 --seed-offset 9 --seed-delta 0", true);
580586
parser.add_line("\"sensitive\"", false);
581587
parser.add_line("--seed-length0 14 --seed-offset0 3 --seed-length 14 --seed-offset 3", true);
588+
parser.add_line("\"pairs-default\"", false);
589+
parser.add_line("--search0 OFF --seed-length 14 --seed-offset 3", true);
590+
parser.add_line("\"pairs-sensitive\"", false);
591+
parser.add_line("--search0 OFF --seed-length 13 --seed-offset 3", true);
582592
break;
583593
case domain_t::bisulfite:
584594
parser.add_line("\"fast\"", false);
585-
parser.add_line("--seed-length 17 --seed-offset 10 --seed-delta 0", true);
595+
parser.add_line("--search0 OFF --seed-length 17 --seed-offset 10 --seed-delta 0", true);
586596
parser.add_line("\"sensitive\"", false);
587597
parser.add_line("--seed-length0 16 --seed-offset0 8 --seed-length 15 --seed-offset 10", true);
598+
parser.add_line("\"pairs-default\"", false);
599+
parser.add_line("--search0 OFF --seed-length 15 --seed-offset 10", true);
600+
parser.add_line("\"pairs-sensitive\"", false);
601+
parser.add_line("--search0 OFF --seed-length 14 --seed-offset 10", true);
588602
break;
589603
}
604+
605+
parser.add_line(
606+
"The \"pairs\" profiles are for use in combination with higher --num-matches. "
607+
"They are based on the sensitive profile but in addition to increasing the number of query-"
608+
"sequences-with-one-or-more-hits, they also increase the number of qry-subj-pairs, i.e. the "
609+
"number of hits per query.",
610+
false);
590611
parser.add_line("For further information see the wiki: <https://github.com/seqan/lambda/wiki>", false);
591612

592613
// parse command line.
@@ -628,7 +649,7 @@ void parseCommandLine(LambdaOptions & options, int argc, char const ** argv)
628649
options.searchOpts.maxSeedDist = 0;
629650
}
630651
}
631-
else if (options.profile == "sensitive")
652+
else if ((options.profile == "sensitive") || options.profile.starts_with("pairs"))
632653
{
633654
switch (options.domain)
634655
{
@@ -652,6 +673,12 @@ void parseCommandLine(LambdaOptions & options, int argc, char const ** argv)
652673
options.searchOpts.seedOffset = 10;
653674
break;
654675
}
676+
677+
if (options.profile.starts_with("pairs"))
678+
options.iterativeSearch = false;
679+
680+
if (options.profile == "pairs-sensitive")
681+
--options.searchOpts.seedLength;
655682
}
656683

657684
// set output file format

0 commit comments

Comments
 (0)