88 MAIN_LOCS, PT_LOCS, pd_gl.
locs,
119 error =
"Only 1 PTserverConnection allowed";
132 error =
"Cannot contact PT_SERVER [1]";
135 error =
"Cannot contact PT_SERVER [2]";
152 int PTserverConnection::count = 0;
160 MAIN_DUMP_NAME, P.
DUMP,
164 MAIN_DUMP_INDEX, &result,
166 error =
"Connection to PT_SERVER lost (1)";
184 LOCS_PROBE_FIND_CONFIG, PT_PEP, pep,
185 PEP_PLENGTH, (
long)length,
186 PEP_RESTART, (
long)1,
192 error =
"Connection to PT_SERVER lost (1)";
202 while (amount && !error) {
203 int this_amount =
std::min(amount, amount_per_call);
206 PEP_NUMGET, (
long)this_amount,
207 PEP_FIND_PROBES, (
long)0,
210 char *pep_result =
NULp;
212 PEP_RESULT, &pep_result,
214 error =
"Connection to PT_SERVER lost (2)";
219 if (first) first =
false;
223 amount -= this_amount;
238 if (error) freenull(result);
252 LOCS_PROBE_DESIGN_CONFIG, PT_PDC, pdc,
255 PDC_MINTEMP, (
double)P.
MINTEMP,
256 PDC_MAXTEMP, (
double)P.
MAXTEMP,
257 PDC_MINGC, (
double)P.
MINGC/100.0,
258 PDC_MAXGC, (
double)P.
MAXGC/100.0,
259 PDC_MAXBOND, (
double)P.
MAXBOND,
260 PDC_MIN_ECOLIPOS, (
long)P.
MINPOS,
261 PDC_MAX_ECOLIPOS, (
long)P.
MAXPOS,
262 PDC_MISHIT, (
long)P.
MISHIT,
267 error =
"Connection to PT_SERVER lost (1)";
277 bs_seq.
data = (
char*)
s->sequence;
278 bs_seq.
size = strlen(bs_seq.
data)+1;
280 PDC_SEQUENCE, PT_SEQUENCE, pts,
281 SEQUENCE_SEQUENCE, &bs_seq,
294 char *locs_error =
NULp;
296 LOCS_ERROR, &locs_error,
298 error =
"Connection to PT_SERVER lost (2)";
309 PDC_TPROBE, tprobe.as_result_param(),
315 if (tprobe.exists()) {
316 char *match_info =
NULp;
318 PDC_INFO_HEADER, &match_info,
326 while (tprobe.exists()) {
327 char *match_info =
NULp;
329 TPROBE_NEXT, tprobe.as_result_param(),
330 TPROBE_INFO, &match_info,
350 LOCS_COMPLEMENT_FIRST, (
long)0,
351 LOCS_MATCH_SORT_BY, (
long)P.
WEIGHTED,
352 LOCS_MATCH_MAX_MISMATCHES, (
long)P.
MISMATCHES,
353 LOCS_MATCH_N_ACCEPT, (
long)P.
ACCEPTN,
354 LOCS_MATCH_N_LIMIT, (
long)P.
LIMITN,
358 error =
"Connection to PT_SERVER lost (1)";
365 char *locs_error =
NULp;
366 T_PT_MATCHLIST match_list;
370 LOCS_MATCH_LIST, match_list.as_result_param(),
371 LOCS_MATCH_LIST_CNT, &match_list_cnt,
372 LOCS_MATCH_STRING, &bs,
373 LOCS_ERROR, &locs_error,
379 if (!error)
return bs.
data;
390 static int getInt(
const char *param,
int val,
int min,
int max,
const char *description) {
392 printf(
" %s=%i [%i .. ", param, val, min);
393 if (max != INT_MAX) printf(
"%i", max);
394 printf(
"] %s\n", description);
398 const char *
s =
NULp;
404 for (i=1; i<
pargc; i++) {
407 if (!strncasecmp(s, param, strlen(param)))
break;
409 if (i==pargc)
return val;
415 if (val<min || val>max) {
417 printf(
"Parameter '%s=%s' is outside allowed range:\n", param, s);
419 getInt(param, val, min, max, description);
426 for (; i<
pargc; i++) {
427 pargv[i] = pargv[i+1];
433 static const char *
getString(
const char *param,
const char *val,
const char *description) {
436 printf(
" %s=%s %s\n", param, val, description);
440 const char *
s =
NULp;
444 for (i=1; i<
pargc; i++) {
447 if (!strncasecmp(s, param, strlen(param)))
break;
449 if (i==pargc)
return val;
451 if (*s !=
'=')
return val;
454 for (; i<
pargc; i++) {
455 pargv[i] = pargv[i+1];
466 for (
int i=0; i<
pargc; i++) pargv[i] = argv[i];
471 #ifdef UNIT_TESTS // UT_DIFF
472 const int minServerID = TEST_GENESERVER_ID;
474 const int minServerID = 0;
477 P.
SERVERID =
getInt(
"serverid", 0, minServerID, 100,
"Server Id, look into $ARBHOME/lib/arb_tcp.dat");
478 #ifdef UNIT_TESTS // UT_DIFF
482 P.
DESIGNCLIPOUTPUT =
getInt(
"designmaxhits", 100, 10, 10000,
"Maximum Number of Probe Design Suggestions");
495 P.
MINTEMP =
getInt(
"designmintemp", 0, 0, 400,
"Minimum melting temperature of probe");
496 P.
MAXTEMP =
getInt(
"designmaxtemp", 400, 0, 400,
"Maximum melting temperature of probe");
497 P.
MINGC =
getInt(
"designmingc", 30, 0, 100,
"Minimum gc content");
498 P.
MAXGC =
getInt(
"designmaxgc", 80, 0, 100,
"Maximum gc content");
499 P.
MAXBOND =
getInt(
"designmaxbond", 0, 0, 10,
"Not implemented");
500 P.
MINPOS =
getInt(
"designminpos", -1, -1, INT_MAX,
"Minimum ecoli position (-1=none)");
501 P.
MAXPOS =
getInt(
"designmaxpos", -1, -1, INT_MAX,
"Maximum ecoli position (-1=none)");
502 P.
MISHIT =
getInt(
"designmishit", 0, 0, 10000,
"Number of allowed hits outside the selected group");
503 P.
MINTARGETS =
getInt(
"designmintargets", 50, 0, 100,
"Minimum percentage of hits within the selected species");
505 P.
SEQUENCE =
getString(
"matchsequence",
"agtagtagt",
"The sequence to search for");
507 P.
MISMATCHES =
getInt(
"matchmismatches", 0, 0, INT_MAX,
"Maximum Number of allowed mismatches");
508 P.
ALSO_REVCOMPL =
getInt(
"matchAlsoRevcomp", 0, 0, 1,
"Also match reverse-complemented probe");
509 P.
WEIGHTED =
getInt(
"matchweighted", 0, 0, 1,
"Use weighted mismatches");
510 P.
ACCEPTN =
getInt(
"matchacceptN", 1, 0, INT_MAX,
"Amount of N-matches not counted as mismatch");
511 P.
LIMITN =
getInt(
"matchlimitN", 4, 0, INT_MAX,
"Limit for N-matches. If reached N-matches are mismatches");
512 P.
MAXRESULT =
getInt(
"matchmaxresults", 1000000, 0, INT_MAX,
"Max. number of matches reported (0=unlimited)");
514 P.
ITERATE =
getInt(
"iterate", 0, 0, 20,
"Iterate over probes of given length");
521 P.
DUMP =
getString(
"dump",
"",
"dump ptserver index to file (may be huge!)");
524 printf(
"Unknown (or duplicate) parameter %s\n", pargv[1]);
528 puts(
"Not all parameters were inside allowed range\n");
542 void TEST_BASIC_parseCommandLine() {
544 const char *args[] = {
NULp,
"serverid=0"};
555 const char *args[] = {
NULp,
"serverid=4",
"matchmismatches=2"};
563 const char *args[] = {
NULp,
"matchacceptN=0",
"matchlimitN=5"};
570 const char *args[] = {
NULp,
"matchmaxresults=100"};
589 else if (P.
DUMP[0]) {
609 "arb_probe: Failed to process your request\n"
615 fputs(answer, stdout);
630 static int test_setup(
bool use_gene_ptserver) {
631 static bool setup[2] = {
false,
false };
632 if (!setup[use_gene_ptserver]) {
634 setup[use_gene_ptserver] =
true;
636 return use_gene_ptserver ? TEST_GENESERVER_ID : TEST_SERVER_ID;
642 #define TEST_RUN_ARB_PROBE__INT(fake_argc,fake_argv) \
643 int serverid = test_setup(use_gene_ptserver); \
644 TEST_EXPECT_EQUAL(true, parseCommandLine(fake_argc, fake_argv)); \
645 TEST_EXPECT((serverid == TEST_SERVER_ID)||(serverid == TEST_GENESERVER_ID)); \
646 P.SERVERID = serverid; \
648 char *answer = execute(error)
650 #define TEST_ARB_PROBE__REPORTS_ERROR(fake_argc,fake_argv,expected_error) \
651 TEST_RUN_ARB_PROBE__INT(fake_argc,fake_argv); \
653 TEST_EXPECT_ERROR_CONTAINS(error.deliver(), expected_error)
655 #define TEST_ARB_PROBE__REPORTS_ERROR__BROKEN(fake_argc,fake_argv,expected_error) \
656 TEST_RUN_ARB_PROBE__INT(fake_argc,fake_argv); \
658 TEST_EXPECT_ANY_ERROR(error.preserve()); \
659 TEST_EXPECT_ERROR_CONTAINS__BROKEN(error.deliver(), expected_error)
662 #define TEST_RUN_ARB_PROBE(fake_argc,fake_argv) \
663 TEST_RUN_ARB_PROBE__INT(fake_argc,fake_argv); \
664 TEST_EXPECT_NO_ERROR(error.deliver())
666 #define TEST_ARB_PROBE(fake_argc,fake_argv,expected) do { \
667 TEST_RUN_ARB_PROBE(fake_argc,fake_argv); \
668 TEST_EXPECT_EQUAL(answer, expected); \
672 #define TEST_ARB_PROBE__BROKEN(fake_argc,fake_argv,expected) do { \
673 TEST_RUN_ARB_PROBE(fake_argc,fake_argv); \
674 TEST_EXPECT_EQUAL__BROKEN(answer, expected); \
678 #define TEST_ARB_PROBE_FILT(fake_argc,fake_argv,filter,expected) do { \
679 TEST_RUN_ARB_PROBE(fake_argc,fake_argv); \
680 char *filtered = filter(answer); \
681 TEST_EXPECT_EQUAL(filtered, expected); \
686 typedef const char *CCP;
688 void TEST_SLOW_match_geneprobe() {
691 bool use_gene_ptserver =
true;
693 const char *arguments[] = {
695 "matchsequence=NNUCNN",
699 CCP expectd =
" organism genename------- mis N_mis wmis pos gpos rev 'NNUCNN'\1"
700 "genome2\1" " genome2 gene3 0 4 2.6 2 1 0 .........-UU==GG-UUGAUC.\1"
701 "genome2\1" " genome2 joined1 0 4 2.6 2 1 0 .........-UU==GG-UUGAUCCUG\1"
702 "genome2\1" " genome2 gene1 0 4 2.6 2 2 0 ........A-UU==GG-U.\1"
703 "genome2\1" " genome2 intergene_19_65 0 4 2.7 31 12 0 GGUUACUGC-AU==GG-UGUUCGCCU\1"
704 "genome1\1" " genome1 intergene_17_65 0 4 2.7 31 14 0 GGUUACUGC-UA==GG-UGUUCGCCU\1"
705 "genome2\1" " genome2 intergene_19_65 0 4 2.7 38 19 0 GCAUUCGGU-GU==GC-CUAAGCACU\1"
706 "genome1\1" " genome1 intergene_17_65 0 4 2.7 38 21 0 GCUAUCGGU-GU==GC-CUAAGCCAU\1"
707 "genome2\1" " genome2 gene3 0 4 2.9 10 9 0 .UUUCGGUU-GA==..-\1"
708 "genome2\1" " genome2 intergene_19_65 0 4 3.1 56 37 0 AGCACUGCG-AG==AU-AUGUA.\1"
709 "genome1\1" " genome1 intergene_17_65 0 4 3.1 56 39 0 AGCCAUGCG-AG==AU-AUGUA.\1"
710 "genome1\1" " genome1 gene2 0 4 3.1 10 2 0 ........U-GA==CU-GC.\1"
711 "genome2\1" " genome2 gene2 0 4 3.1 10 4 0 ......GUU-GA==CU-GCCA.\1"
712 "genome1\1" " genome1 joined1 0 4 3.1 10 7 0 ...CUGGUU-GA==CU-GC.\1"
713 "genome2\1" " genome2 joined1 0 4 3.1 10 9 0 .UUUCGGUU-GA==CU-GCCA.\1";
715 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd);
719 const char *arguments[] = {
721 "matchsequence=NGGUUN",
725 CCP expectd =
" organism genename------- mis N_mis wmis pos gpos rev 'NGGUUN'\1"
726 "genome1\1" " genome1 gene3 0 2 1.3 5 2 0 ........C-U====G-A.\1"
727 "genome1\1" " genome1 joined1 0 2 1.3 5 2 0 ........C-U====G-AUCCUGC.\1"
728 "genome2\1" " genome2 gene3 0 2 1.4 5 4 0 ......UUU-C====G-AUC.\1"
729 "genome2\1" " genome2 joined1 0 2 1.4 5 4 0 ......UUU-C====G-AUCCUGCCA\1"
730 "genome2\1" " genome2 intergene_19_65 0 2 1.8 21 2 0 ........G-A====A-CUGCAUUCG\1"
731 "genome1\1" " genome1 intergene_17_65 0 2 1.8 21 4 0 ......CAG-A====A-CUGCUAUCG\1";
733 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd);
737 const char *arguments[] = {
739 "matchsequence=UGAUCCU",
741 CCP expectd =
" organism genename mis N_mis wmis pos gpos rev 'UGAUCCU'\1"
742 "genome1\1" " genome1 gene2 0 0 0.0 9 1 0 .........-=======-GC.\1"
743 "genome2\1" " genome2 gene2 0 0 0.0 9 3 0 .......GU-=======-GCCA.\1"
744 "genome1\1" " genome1 joined1 0 0 0.0 9 6 0 ....CUGGU-=======-GC.\1"
745 "genome2\1" " genome2 joined1 0 0 0.0 9 8 0 ..UUUCGGU-=======-GCCA.\1";
747 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd);
750 const char *arguments[] = {
752 "matchsequence=GAUCCU",
754 CCP expectd =
" organism genename mis N_mis wmis pos gpos rev 'GAUCCU'\1"
755 "genome1\1" " genome1 gene2 0 0 0.0 10 2 0 ........U-======-GC.\1"
756 "genome2\1" " genome2 gene2 0 0 0.0 10 4 0 ......GUU-======-GCCA.\1"
757 "genome1\1" " genome1 joined1 0 0 0.0 10 7 0 ...CUGGUU-======-GC.\1"
758 "genome2\1" " genome2 joined1 0 0 0.0 10 9 0 .UUUCGGUU-======-GCCA.\1";
760 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd);
763 const char *arguments[] = {
765 "matchsequence=UUUCGG",
767 CCP expectd =
" organism genename mis N_mis wmis pos gpos rev 'UUUCGG'\1"
768 "genome2\1" " genome2 gene3 0 0 0.0 2 1 0 .........-======-UUGAUC.\1"
769 "genome2\1" " genome2 joined1 0 0 0.0 2 1 0 .........-======-UUGAUCCUG\1"
770 "genome2\1" " genome2 gene1 0 0 0.0 2 2 0 ........A-======-U.\1";
772 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd);
775 const char *arguments[] = {
777 "matchsequence=AUCCUG",
779 CCP expectd =
" organism genename mis N_mis wmis pos gpos rev 'AUCCUG'\1"
780 "genome1\1" " genome1 gene2 0 0 0.0 11 3 0 .......UG-======-C.\1"
781 "genome2\1" " genome2 gene2 0 0 0.0 11 5 0 .....GUUG-======-CCA.\1"
782 "genome1\1" " genome1 joined1 0 0 0.0 11 8 0 ..CUGGUUG-======-C.\1"
783 "genome2\1" " genome2 joined1 0 0 0.0 11 10 0 UUUCGGUUG-======-CCA.\1";
785 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd);
788 const char *arguments[] = {
790 "matchsequence=UUGAUCCUGC",
792 CCP expectd =
" organism genename mis N_mis wmis pos gpos rev 'UUGAUCCUGC'\1"
793 "genome2\1" " genome2 gene2 0 0 0.0 8 2 0 ........G-==========-CA.\1"
794 "genome1\1" " genome1 joined1 0 0 0.0 8 5 0 .....CUGG-==========-.\1"
795 "genome2\1" " genome2 joined1 0 0 0.0 8 7 0 ...UUUCGG-==========-CA.\1";
797 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd);
804 bool use_gene_ptserver =
false;
806 const char *arguments[] = {
808 "matchsequence=UAUCGGAGAGUUUGA",
810 CCP expected =
" name---- fullname mis N_mis wmis pos ecoli rev 'UAUCGGAGAGUUUGA'\1"
811 "BcSSSS00\1" " BcSSSS00 0 0 0.0 3 2 0 .......UU-===============-UCAAGUCGA\1";
813 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
820 const char *arguments[] = {
822 "matchsequence=CANCUCCUUUC",
826 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUUC'\1"
827 "BcSSSS00\1" " BcSSSS00 0 1 0.9 176 162 0 CGGCUGGAU-==C========-U.\1";
829 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUUC'\1"
830 "BcSSSS00\1" " BcSSSS00 0 1 0.9 176 162 0 CGGCUGGAU-==C========-U.\1"
831 "ClfPerfr\1" " ClfPerfr 1 1 2.0 176 162 0 AGAUUAAUA-=CC========-U.\1"
832 "PbcAcet2\1" " PbcAcet2 1 2 1.6 176 162 0 CGGCUGGAU-==C=======N-N.\1"
833 "PbrPropi\1" " PbrPropi 1 2 1.6 176 162 0 CGGCUGGAU-==C=======N-N.\1"
834 "Stsssola\1" " Stsssola 1 2 1.6 176 162 0 CGGCUGGAU-==C=======.-\1"
835 "DcdNodos\1" " DcdNodos 1 2 1.6 176 162 0 CGGUUGGAU-==C=======.-\1"
836 "VbrFurni\1" " VbrFurni 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
837 "VblVulni\1" " VblVulni 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
838 "VbhChole\1" " VbhChole 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1";
840 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUUC'\1"
841 "BcSSSS00\1" " BcSSSS00 0 1 0.9 176 162 0 CGGCUGGAU-==C========-U.\1"
842 "ClfPerfr\1" " ClfPerfr 1 1 2.0 176 162 0 AGAUUAAUA-=CC========-U.\1"
843 "PbcAcet2\1" " PbcAcet2 1 2 1.6 176 162 0 CGGCUGGAU-==C=======N-N.\1"
844 "PbrPropi\1" " PbrPropi 1 2 1.6 176 162 0 CGGCUGGAU-==C=======N-N.\1"
845 "Stsssola\1" " Stsssola 1 2 1.6 176 162 0 CGGCUGGAU-==C=======.-\1"
846 "DcdNodos\1" " DcdNodos 1 2 1.6 176 162 0 CGGUUGGAU-==C=======.-\1"
847 "VbrFurni\1" " VbrFurni 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
848 "VblVulni\1" " VblVulni 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
849 "VbhChole\1" " VbhChole 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
850 "AclPleur\1" " AclPleur 2 2 2.7 176 162 0 CGGUUGGAU-==C======A.-\1"
851 "PtVVVulg\1" " PtVVVulg 2 2 2.7 176 162 0 CGGUUGGAU-==C======A.-\1"
852 "DlcTolu2\1" " DlcTolu2 2 3 2.3 176 162 0 CGGCUGGAU-==C======NN-N.\1"
853 "FrhhPhil\1" " FrhhPhil 2 3 2.3 176 162 0 CGGCUGGAU-==C======..-\1"
854 "HllHalod\1" " HllHalod 2 3 2.3 176 162 0 CGGCUGGAU-==C======..-\1"
855 "CPPParap\1" " CPPParap 2 3 2.3 177 163 0 CGGNUGGAU-==C======..-\1";
857 CCP expectd3 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUUC'\1"
858 "BcSSSS00\1" " BcSSSS00 0 1 0.9 176 162 0 CGGCUGGAU-==C========-U.\1"
859 "ClfPerfr\1" " ClfPerfr 1 1 2.0 176 162 0 AGAUUAAUA-=CC========-U.\1"
860 "PbcAcet2\1" " PbcAcet2 1 2 1.6 176 162 0 CGGCUGGAU-==C=======N-N.\1"
861 "PbrPropi\1" " PbrPropi 1 2 1.6 176 162 0 CGGCUGGAU-==C=======N-N.\1"
862 "Stsssola\1" " Stsssola 1 2 1.6 176 162 0 CGGCUGGAU-==C=======.-\1"
863 "DcdNodos\1" " DcdNodos 1 2 1.6 176 162 0 CGGUUGGAU-==C=======.-\1"
864 "VbrFurni\1" " VbrFurni 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
865 "VblVulni\1" " VblVulni 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
866 "VbhChole\1" " VbhChole 1 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
867 "AclPleur\1" " AclPleur 2 2 2.7 176 162 0 CGGUUGGAU-==C======A.-\1"
868 "PtVVVulg\1" " PtVVVulg 2 2 2.7 176 162 0 CGGUUGGAU-==C======A.-\1"
869 "DlcTolu2\1" " DlcTolu2 2 3 2.3 176 162 0 CGGCUGGAU-==C======NN-N.\1"
870 "FrhhPhil\1" " FrhhPhil 2 3 2.3 176 162 0 CGGCUGGAU-==C======..-\1"
871 "HllHalod\1" " HllHalod 2 3 2.3 176 162 0 CGGCUGGAU-==C======..-\1"
872 "CPPParap\1" " CPPParap 2 3 2.3 177 163 0 CGGNUGGAU-==C======..-\1"
873 "VblVulni\1" " VblVulni 3 1 3.6 49 44 0 AGCACAGAG-a=A==uG====-UCGGGUGGC\1";
875 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
876 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
877 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
878 arguments[2] =
"matchmismatches=3"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd3);
882 const char *arguments[] = {
884 "matchsequence=UCACCUCCUUUC",
888 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
889 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1"
890 "PbcAcet2\1" " PbcAcet2 0 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
891 "PbrPropi\1" " PbrPropi 0 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
892 "Stsssola\1" " Stsssola 0 1 0.7 175 161 0 GCGGCUGGA-===========.-\1"
893 "DcdNodos\1" " DcdNodos 0 1 0.7 175 161 0 GCGGUUGGA-===========.-\1"
894 "VbrFurni\1" " VbrFurni 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
895 "VblVulni\1" " VblVulni 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
896 "VbhChole\1" " VbhChole 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1";
898 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
899 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1"
900 "PbcAcet2\1" " PbcAcet2 0 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
901 "PbrPropi\1" " PbrPropi 0 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
902 "Stsssola\1" " Stsssola 0 1 0.7 175 161 0 GCGGCUGGA-===========.-\1"
903 "DcdNodos\1" " DcdNodos 0 1 0.7 175 161 0 GCGGUUGGA-===========.-\1"
904 "VbrFurni\1" " VbrFurni 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
905 "VblVulni\1" " VblVulni 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
906 "VbhChole\1" " VbhChole 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
907 "AclPleur\1" " AclPleur 1 1 1.8 175 161 0 GCGGUUGGA-==========A.-\1"
908 "PtVVVulg\1" " PtVVVulg 1 1 1.8 175 161 0 GCGGUUGGA-==========A.-\1"
909 "DlcTolu2\1" " DlcTolu2 1 2 1.4 175 161 0 GCGGCUGGA-==========NN-N.\1"
910 "FrhhPhil\1" " FrhhPhil 1 2 1.4 175 161 0 GCGGCUGGA-==========..-\1"
911 "HllHalod\1" " HllHalod 1 2 1.4 175 161 0 GCGGCUGGA-==========..-\1"
912 "CPPParap\1" " CPPParap 1 2 1.4 176 162 0 GCGGNUGGA-==========..-\1";
914 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
915 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1"
916 "PbcAcet2\1" " PbcAcet2 0 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
917 "PbrPropi\1" " PbrPropi 0 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
918 "Stsssola\1" " Stsssola 0 1 0.7 175 161 0 GCGGCUGGA-===========.-\1"
919 "DcdNodos\1" " DcdNodos 0 1 0.7 175 161 0 GCGGUUGGA-===========.-\1"
920 "VbrFurni\1" " VbrFurni 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
921 "VblVulni\1" " VblVulni 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
922 "VbhChole\1" " VbhChole 0 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
923 "AclPleur\1" " AclPleur 1 1 1.8 175 161 0 GCGGUUGGA-==========A.-\1"
924 "PtVVVulg\1" " PtVVVulg 1 1 1.8 175 161 0 GCGGUUGGA-==========A.-\1"
925 "DlcTolu2\1" " DlcTolu2 1 2 1.4 175 161 0 GCGGCUGGA-==========NN-N.\1"
926 "FrhhPhil\1" " FrhhPhil 1 2 1.4 175 161 0 GCGGCUGGA-==========..-\1"
927 "HllHalod\1" " HllHalod 1 2 1.4 175 161 0 GCGGCUGGA-==========..-\1"
928 "CPPParap\1" " CPPParap 1 2 1.4 176 162 0 GCGGNUGGA-==========..-\1"
929 "ClfPerfr\1" " ClfPerfr 2 0 2.2 175 161 0 AAGAUUAAU-A=C=========-U.\1"
930 "LgtLytic\1" " LgtLytic 2 3 2.1 175 161 0 GCGGCUGGA-=========N..-\1"
931 "PslFlave\1" " PslFlave 2 3 2.1 175 161 0 GCGGCUGGA-=========...-\1";
933 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
934 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
935 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
939 const char *arguments[] = {
941 "matchsequence=UCACCUCCUUUC",
946 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
947 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1"
948 "PbcAcet2\1" " PbcAcet2 0 1 0.2 175 161 0 GCGGCUGGA-===========N-N.\1"
949 "PbrPropi\1" " PbrPropi 0 1 0.2 175 161 0 GCGGCUGGA-===========N-N.\1"
950 "Stsssola\1" " Stsssola 0 1 0.2 175 161 0 GCGGCUGGA-===========.-\1"
951 "DcdNodos\1" " DcdNodos 0 1 0.2 175 161 0 GCGGUUGGA-===========.-\1"
952 "VbrFurni\1" " VbrFurni 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1"
953 "VblVulni\1" " VblVulni 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1"
954 "VbhChole\1" " VbhChole 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1";
956 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
957 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1"
958 "PbcAcet2\1" " PbcAcet2 0 1 0.2 175 161 0 GCGGCUGGA-===========N-N.\1"
959 "PbrPropi\1" " PbrPropi 0 1 0.2 175 161 0 GCGGCUGGA-===========N-N.\1"
960 "Stsssola\1" " Stsssola 0 1 0.2 175 161 0 GCGGCUGGA-===========.-\1"
961 "DcdNodos\1" " DcdNodos 0 1 0.2 175 161 0 GCGGUUGGA-===========.-\1"
962 "VbrFurni\1" " VbrFurni 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1"
963 "VblVulni\1" " VblVulni 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1"
964 "VbhChole\1" " VbhChole 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1"
965 "DlcTolu2\1" " DlcTolu2 1 2 0.6 175 161 0 GCGGCUGGA-==========NN-N.\1"
966 "FrhhPhil\1" " FrhhPhil 1 2 0.6 175 161 0 GCGGCUGGA-==========..-\1"
967 "HllHalod\1" " HllHalod 1 2 0.6 175 161 0 GCGGCUGGA-==========..-\1"
968 "CPPParap\1" " CPPParap 1 2 0.6 176 162 0 GCGGNUGGA-==========..-\1"
969 "AclPleur\1" " AclPleur 1 1 0.9 175 161 0 GCGGUUGGA-==========A.-\1"
970 "PtVVVulg\1" " PtVVVulg 1 1 0.9 175 161 0 GCGGUUGGA-==========A.-\1"
971 "LgtLytic\1" " LgtLytic 2 3 1.3 175 161 0 GCGGCUGGA-=========N..-\1"
972 "PslFlave\1" " PslFlave 2 3 1.3 175 161 0 GCGGCUGGA-=========...-\1"
973 "ClfPerfr\1" " ClfPerfr 2 0 1.3 175 161 0 AAGAUUAAU-A=C=========-U.\1";
975 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
976 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1"
977 "PbcAcet2\1" " PbcAcet2 0 1 0.2 175 161 0 GCGGCUGGA-===========N-N.\1"
978 "PbrPropi\1" " PbrPropi 0 1 0.2 175 161 0 GCGGCUGGA-===========N-N.\1"
979 "Stsssola\1" " Stsssola 0 1 0.2 175 161 0 GCGGCUGGA-===========.-\1"
980 "DcdNodos\1" " DcdNodos 0 1 0.2 175 161 0 GCGGUUGGA-===========.-\1"
981 "VbrFurni\1" " VbrFurni 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1"
982 "VblVulni\1" " VblVulni 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1"
983 "VbhChole\1" " VbhChole 0 1 0.2 175 161 0 GGCGCUGGA-===========.-\1"
984 "DlcTolu2\1" " DlcTolu2 1 2 0.6 175 161 0 GCGGCUGGA-==========NN-N.\1"
985 "FrhhPhil\1" " FrhhPhil 1 2 0.6 175 161 0 GCGGCUGGA-==========..-\1"
986 "HllHalod\1" " HllHalod 1 2 0.6 175 161 0 GCGGCUGGA-==========..-\1"
987 "CPPParap\1" " CPPParap 1 2 0.6 176 162 0 GCGGNUGGA-==========..-\1"
988 "AclPleur\1" " AclPleur 1 1 0.9 175 161 0 GCGGUUGGA-==========A.-\1"
989 "PtVVVulg\1" " PtVVVulg 1 1 0.9 175 161 0 GCGGUUGGA-==========A.-\1"
990 "LgtLytic\1" " LgtLytic 2 3 1.3 175 161 0 GCGGCUGGA-=========N..-\1"
991 "PslFlave\1" " PslFlave 2 3 1.3 175 161 0 GCGGCUGGA-=========...-\1"
992 "ClfPerfr\1" " ClfPerfr 2 0 1.3 175 161 0 AAGAUUAAU-A=C=========-U.\1"
993 "AclPleur\1" " AclPleur 5 0 2.4 50 45 0 GAAGGGAGC-=ug=u=u====G-CCGACGAGU\1"
994 "PtVVVulg\1" " PtVVVulg 5 0 2.4 50 45 0 GGAGAAAGC-=ug=u=u===g=-UGACGAGCG\1";
996 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
997 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
998 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1005 const char *arguments[] = {
1007 "matchsequence=CANCUCCUUUC",
1014 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUUC'\1"
1015 "BcSSSS00\1" " BcSSSS00 1 1 0.9 176 162 0 CGGCUGGAU-==C========-U.\1";
1017 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUUC'\1"
1018 "BcSSSS00\1" " BcSSSS00 1 1 0.9 176 162 0 CGGCUGGAU-==C========-U.\1"
1019 "ClfPerfr\1" " ClfPerfr 2 1 2.0 176 162 0 AGAUUAAUA-=CC========-U.\1"
1020 "PbcAcet2\1" " PbcAcet2 2 2 1.6 176 162 0 CGGCUGGAU-==C=======N-N.\1"
1021 "PbrPropi\1" " PbrPropi 2 2 1.6 176 162 0 CGGCUGGAU-==C=======N-N.\1"
1022 "Stsssola\1" " Stsssola 2 2 1.6 176 162 0 CGGCUGGAU-==C=======.-\1"
1023 "DcdNodos\1" " DcdNodos 2 2 1.6 176 162 0 CGGUUGGAU-==C=======.-\1"
1024 "VbrFurni\1" " VbrFurni 2 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
1025 "VblVulni\1" " VblVulni 2 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1"
1026 "VbhChole\1" " VbhChole 2 2 1.6 176 162 0 GCGCUGGAU-==C=======.-\1";
1028 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
1029 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
1030 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1033 const char *arguments[] = {
1035 "matchsequence=UUUCUUU",
1040 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UUUCUUU'\1"
1041 "AclPleur\1" " AclPleur 0 0 0.0 54 49 0 GGAGCUUGC-=======-GCCGACGAG\1";
1043 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UUUCUUU'\1"
1044 "AclPleur\1" " AclPleur 0 0 0.0 54 49 0 GGAGCUUGC-=======-GCCGACGAG\1"
1045 "AclPleur\1" " AclPleur 1 0 0.6 50 45 0 GAAGGGAGC-==g====-CUUUGCCGA\1"
1046 "PtVVVulg\1" " PtVVVulg 1 0 0.6 50 45 0 GGAGAAAGC-==g====-CUUGCUGAC\1"
1047 "PtVVVulg\1" " PtVVVulg 1 0 0.6 54 49 0 AAAGCUUGC-======g-CUGACGAGC\1"
1048 "ClfPerfr\1" " ClfPerfr 1 0 1.1 49 44 0 GCGAUGAAG-====C==-CGGGAAACG\1";
1050 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UUUCUUU'\1"
1051 "AclPleur\1" " AclPleur 0 0 0.0 54 49 0 GGAGCUUGC-=======-GCCGACGAG\1"
1052 "AclPleur\1" " AclPleur 1 0 0.6 50 45 0 GAAGGGAGC-==g====-CUUUGCCGA\1"
1053 "PtVVVulg\1" " PtVVVulg 1 0 0.6 50 45 0 GGAGAAAGC-==g====-CUUGCUGAC\1"
1054 "PtVVVulg\1" " PtVVVulg 1 0 0.6 54 49 0 AAAGCUUGC-======g-CUGACGAGC\1"
1055 "ClfPerfr\1" " ClfPerfr 1 0 1.1 49 44 0 GCGAUGAAG-====C==-CGGGAAACG\1"
1056 "DlcTolu2\1" " DlcTolu2 2 0 1.2 47 42 0 AGAAAGGGA-==g===g-CAAUCCUGA\1"
1057 "ClnCorin\1" " ClnCorin 2 0 1.7 48 43 0 AGCGAUGAA-g===C==-CGGGAAUGG\1"
1058 "CPPParap\1" " CPPParap 2 0 1.7 48 43 0 AGCGAUGAA-g===C==-CGGGAACGG\1"
1059 "HllHalod\1" " HllHalod 2 0 1.7 49 44 0 GAUGGAAGC-==g===C-CAGGCGUCG\1"
1060 "DcdNodos\1" " DcdNodos 2 0 1.7 50 45 0 UUAUGUAGC-==g==A=-GUAACCUAG\1"
1061 "VbhChole\1" " VbhChole 2 0 1.7 55 50 0 GAGGAACUU-g===C==-GGGUGGCGA\1"
1062 "VbrFurni\1" " VbrFurni 2 0 1.7 62 57 0 UUCGGGGGA-===G==g-GGCGGCGAG\1"
1063 "VblVulni\1" " VblVulni 2 0 1.7 62 57 0 AGAAACUUG-=====Cg-GGUGGCGAG\1"
1064 "VbhChole\1" " VbhChole 2 0 1.7 62 57 0 AGGAACUUG-==C===g-GGUGGCGAG\1"
1065 "ClnCorin\1" " ClnCorin 2 0 2.2 49 44 0 GCGAUGAAG-==C===C-GGGAAUGGA\1"
1066 "CltBotul\1" " CltBotul 2 0 2.2 49 44 0 GCGAUGAAG-C=====C-GGAAGUGGA\1"
1067 "CPPParap\1" " CPPParap 2 0 2.2 49 44 0 GCGAUGAAG-==C===C-GGGAACGGA\1"
1068 "ClfPerfr\1" " ClfPerfr 2 0 2.2 50 45 0 CGAUGAAGU-==C===C-GGGAAACGG\1"
1069 "VblVulni\1" " VblVulni 2 0 2.2 52 47 0 ACAGAGAAA-C==G===-CUCGGGUGG\1"
1070 "BcSSSS00\1" " BcSSSS00 2 0 2.2 179 165 0 CUGGAUCAC-C=C====-CU.\1"
1071 "ClfPerfr\1" " ClfPerfr 2 0 2.2 179 165 0 UUAAUACCC-C=C====-CU.\1"
1072 "PbcAcet2\1" " PbcAcet2 2 0 2.2 179 165 0 CUGGAUCAC-C=C====-NN.\1"
1073 "PbrPropi\1" " PbrPropi 2 0 2.2 179 165 0 CUGGAUCAC-C=C====-NN.\1"
1074 "Stsssola\1" " Stsssola 2 0 2.2 179 165 0 CUGGAUCAC-C=C====-.\1"
1075 "DcdNodos\1" " DcdNodos 2 0 2.2 179 165 0 UUGGAUCAC-C=C====-.\1"
1076 "VbrFurni\1" " VbrFurni 2 0 2.2 179 165 0 CUGGAUCAC-C=C====-.\1"
1077 "VblVulni\1" " VblVulni 2 0 2.2 179 165 0 CUGGAUCAC-C=C====-.\1"
1078 "VbhChole\1" " VbhChole 2 0 2.2 179 165 0 CUGGAUCAC-C=C====-.\1"
1079 "BcSSSS00\1" " BcSSSS00 2 2 1.4 183 169 0 AUCACCUCC-=====..-\1"
1080 "ClfPerfr\1" " ClfPerfr 2 2 1.4 183 169 0 UACCCCUCC-=====..-\1";
1082 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
1083 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
1084 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1087 const char *arguments[] = {
1089 "matchsequence=UCACCUCCUUUC",
1094 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
1095 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1" "";
1097 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
1098 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1"
1099 "PbcAcet2\1" " PbcAcet2 1 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
1100 "PbrPropi\1" " PbrPropi 1 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
1101 "Stsssola\1" " Stsssola 1 1 0.7 175 161 0 GCGGCUGGA-===========.-\1"
1102 "DcdNodos\1" " DcdNodos 1 1 0.7 175 161 0 GCGGUUGGA-===========.-\1"
1103 "VbrFurni\1" " VbrFurni 1 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
1104 "VblVulni\1" " VblVulni 1 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
1105 "VbhChole\1" " VbhChole 1 1 0.7 175 161 0 GGCGCUGGA-===========.-\1";
1107 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUC'\1"
1108 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-============-U.\1"
1109 "PbcAcet2\1" " PbcAcet2 1 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
1110 "PbrPropi\1" " PbrPropi 1 1 0.7 175 161 0 GCGGCUGGA-===========N-N.\1"
1111 "Stsssola\1" " Stsssola 1 1 0.7 175 161 0 GCGGCUGGA-===========.-\1"
1112 "DcdNodos\1" " DcdNodos 1 1 0.7 175 161 0 GCGGUUGGA-===========.-\1"
1113 "VbrFurni\1" " VbrFurni 1 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
1114 "VblVulni\1" " VblVulni 1 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
1115 "VbhChole\1" " VbhChole 1 1 0.7 175 161 0 GGCGCUGGA-===========.-\1"
1116 "ClfPerfr\1" " ClfPerfr 2 0 2.2 175 161 0 AAGAUUAAU-A=C=========-U.\1"
1117 "AclPleur\1" " AclPleur 2 1 1.8 175 161 0 GCGGUUGGA-==========A.-\1"
1118 "PtVVVulg\1" " PtVVVulg 2 1 1.8 175 161 0 GCGGUUGGA-==========A.-\1"
1119 "DlcTolu2\1" " DlcTolu2 2 2 1.4 175 161 0 GCGGCUGGA-==========NN-N.\1"
1120 "FrhhPhil\1" " FrhhPhil 2 2 1.4 175 161 0 GCGGCUGGA-==========..-\1"
1121 "HllHalod\1" " HllHalod 2 2 1.4 175 161 0 GCGGCUGGA-==========..-\1"
1122 "CPPParap\1" " CPPParap 2 2 1.4 176 162 0 GCGGNUGGA-==========..-\1";
1124 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
1125 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
1126 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1129 const char *arguments[] = {
1131 "matchsequence=UCACCUCCUUUCU",
1136 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUCU'\1"
1137 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-=============-.\1";
1139 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUCU'\1"
1140 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-=============-.\1"
1141 "ClfPerfr\1" " ClfPerfr 2 0 2.2 175 161 0 AAGAUUAAU-A=C==========-.\1"
1142 "PbcAcet2\1" " PbcAcet2 2 2 1.4 175 161 0 GCGGCUGGA-===========NN-.\1"
1143 "PbrPropi\1" " PbrPropi 2 2 1.4 175 161 0 GCGGCUGGA-===========NN-.\1"
1144 "Stsssola\1" " Stsssola 2 2 1.4 175 161 0 GCGGCUGGA-===========..-\1"
1145 "DcdNodos\1" " DcdNodos 2 2 1.4 175 161 0 GCGGUUGGA-===========..-\1"
1146 "VbrFurni\1" " VbrFurni 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1147 "VblVulni\1" " VblVulni 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1148 "VbhChole\1" " VbhChole 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1";
1150 CCP expectd3 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUCU'\1"
1151 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-=============-.\1"
1152 "ClfPerfr\1" " ClfPerfr 2 0 2.2 175 161 0 AAGAUUAAU-A=C==========-.\1"
1153 "PbcAcet2\1" " PbcAcet2 2 2 1.4 175 161 0 GCGGCUGGA-===========NN-.\1"
1154 "PbrPropi\1" " PbrPropi 2 2 1.4 175 161 0 GCGGCUGGA-===========NN-.\1"
1155 "Stsssola\1" " Stsssola 2 2 1.4 175 161 0 GCGGCUGGA-===========..-\1"
1156 "DcdNodos\1" " DcdNodos 2 2 1.4 175 161 0 GCGGUUGGA-===========..-\1"
1157 "VbrFurni\1" " VbrFurni 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1158 "VblVulni\1" " VblVulni 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1159 "VbhChole\1" " VbhChole 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1160 "AclPleur\1" " AclPleur 3 2 2.5 175 161 0 GCGGUUGGA-==========A..-\1"
1161 "PtVVVulg\1" " PtVVVulg 3 2 2.5 175 161 0 GCGGUUGGA-==========A..-\1"
1162 "DlcTolu2\1" " DlcTolu2 3 3 2.1 175 161 0 GCGGCUGGA-==========NNN-.\1"
1163 "FrhhPhil\1" " FrhhPhil 3 3 2.1 175 161 0 GCGGCUGGA-==========...-\1"
1164 "HllHalod\1" " HllHalod 3 3 2.1 175 161 0 GCGGCUGGA-==========...-\1"
1165 "CPPParap\1" " CPPParap 3 3 2.1 176 162 0 GCGGNUGGA-==========...-\1";
1167 CCP expectd4 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUCU'\1"
1168 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-=============-.\1"
1169 "ClfPerfr\1" " ClfPerfr 2 0 2.2 175 161 0 AAGAUUAAU-A=C==========-.\1"
1170 "PbcAcet2\1" " PbcAcet2 2 2 1.4 175 161 0 GCGGCUGGA-===========NN-.\1"
1171 "PbrPropi\1" " PbrPropi 2 2 1.4 175 161 0 GCGGCUGGA-===========NN-.\1"
1172 "Stsssola\1" " Stsssola 2 2 1.4 175 161 0 GCGGCUGGA-===========..-\1"
1173 "DcdNodos\1" " DcdNodos 2 2 1.4 175 161 0 GCGGUUGGA-===========..-\1"
1174 "VbrFurni\1" " VbrFurni 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1175 "VblVulni\1" " VblVulni 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1176 "VbhChole\1" " VbhChole 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1177 "AclPleur\1" " AclPleur 3 2 2.5 175 161 0 GCGGUUGGA-==========A..-\1"
1178 "PtVVVulg\1" " PtVVVulg 3 2 2.5 175 161 0 GCGGUUGGA-==========A..-\1"
1179 "DlcTolu2\1" " DlcTolu2 3 3 2.1 175 161 0 GCGGCUGGA-==========NNN-.\1"
1180 "FrhhPhil\1" " FrhhPhil 3 3 2.1 175 161 0 GCGGCUGGA-==========...-\1"
1181 "HllHalod\1" " HllHalod 3 3 2.1 175 161 0 GCGGCUGGA-==========...-\1"
1182 "CPPParap\1" " CPPParap 3 3 2.1 176 162 0 GCGGNUGGA-==========...-\1"
1183 "LgtLytic\1" " LgtLytic 4 4 2.8 175 161 0 GCGGCUGGA-=========N...-\1"
1184 "PslFlave\1" " PslFlave 4 4 2.8 175 161 0 GCGGCUGGA-=========....-\1";
1186 CCP expectd5 =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCACCUCCUUUCU'\1"
1187 "BcSSSS00\1" " BcSSSS00 0 0 0.0 175 161 0 GCGGCUGGA-=============-.\1"
1188 "ClfPerfr\1" " ClfPerfr 2 0 2.2 175 161 0 AAGAUUAAU-A=C==========-.\1"
1189 "PbcAcet2\1" " PbcAcet2 2 2 1.4 175 161 0 GCGGCUGGA-===========NN-.\1"
1190 "PbrPropi\1" " PbrPropi 2 2 1.4 175 161 0 GCGGCUGGA-===========NN-.\1"
1191 "Stsssola\1" " Stsssola 2 2 1.4 175 161 0 GCGGCUGGA-===========..-\1"
1192 "DcdNodos\1" " DcdNodos 2 2 1.4 175 161 0 GCGGUUGGA-===========..-\1"
1193 "VbrFurni\1" " VbrFurni 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1194 "VblVulni\1" " VblVulni 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1195 "VbhChole\1" " VbhChole 2 2 1.4 175 161 0 GGCGCUGGA-===========..-\1"
1196 "AclPleur\1" " AclPleur 3 2 2.5 175 161 0 GCGGUUGGA-==========A..-\1"
1197 "PtVVVulg\1" " PtVVVulg 3 2 2.5 175 161 0 GCGGUUGGA-==========A..-\1"
1198 "DlcTolu2\1" " DlcTolu2 3 3 2.1 175 161 0 GCGGCUGGA-==========NNN-.\1"
1199 "FrhhPhil\1" " FrhhPhil 3 3 2.1 175 161 0 GCGGCUGGA-==========...-\1"
1200 "HllHalod\1" " HllHalod 3 3 2.1 175 161 0 GCGGCUGGA-==========...-\1"
1201 "CPPParap\1" " CPPParap 3 3 2.1 176 162 0 GCGGNUGGA-==========...-\1"
1202 "LgtLytic\1" " LgtLytic 4 4 2.8 175 161 0 GCGGCUGGA-=========N...-\1"
1203 "PslFlave\1" " PslFlave 4 4 2.8 175 161 0 GCGGCUGGA-=========....-\1"
1204 "PtVVVulg\1" " PtVVVulg 5 0 2.6 50 45 0 GGAGAAAGC-=ug=u=u===g==-GACGAGCGG\1"
1205 "AclPleur\1" " AclPleur 5 0 3.5 46 41 0 ACGGGAAGG-gag=u=G======-UUGCCGACG\1"
1206 "PtVVVulg\1" " PtVVVulg 5 0 4.0 45 40 0 ...AGGAGA-Aag=u=G======-UGCUGACGA\1"
1207 "VblVulni\1" " VblVulni 5 0 4.3 48 43 0 CAGCACAGA-ga=a==uG=====-CGGGUGGCG\1";
1209 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
1210 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1211 arguments[2] =
"matchmismatches=3"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd3);
1212 arguments[2] =
"matchmismatches=4"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd4);
1213 arguments[2] =
"matchmismatches=5"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd5);
1220 const char *arguments[] = {
1222 "matchsequence=CANCUCCUUNC",
1228 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUNC'\1"
1229 "BcSSSS00\1" " BcSSSS00 0 2 1.7 176 162 0 CGGCUGGAU-==C======U=-U.\1";
1231 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUNC'\1"
1232 "BcSSSS00\1" " BcSSSS00 0 2 1.7 176 162 0 CGGCUGGAU-==C======U=-U.\1"
1233 "ClfPerfr\1" " ClfPerfr 1 2 2.8 176 162 0 AGAUUAAUA-=CC======U=-U.\1"
1234 "DlcTolu2\1" " DlcTolu2 1 3 2.4 176 162 0 CGGCUGGAU-==C=======N-N.\1"
1235 "FrhhPhil\1" " FrhhPhil 1 3 2.4 176 162 0 CGGCUGGAU-==C======..-\1"
1236 "HllHalod\1" " HllHalod 1 3 2.4 176 162 0 CGGCUGGAU-==C======..-\1"
1237 "CPPParap\1" " CPPParap 1 3 2.4 177 163 0 CGGNUGGAU-==C======..-\1"
1238 "PbcAcet2\1" " PbcAcet2 1 3 2.4 176 162 0 CGGCUGGAU-==C======UN-N.\1"
1239 "PbrPropi\1" " PbrPropi 1 3 2.4 176 162 0 CGGCUGGAU-==C======UN-N.\1"
1240 "Stsssola\1" " Stsssola 1 3 2.4 176 162 0 CGGCUGGAU-==C======U.-\1"
1241 "DcdNodos\1" " DcdNodos 1 3 2.4 176 162 0 CGGUUGGAU-==C======U.-\1"
1242 "VbrFurni\1" " VbrFurni 1 3 2.4 176 162 0 GCGCUGGAU-==C======U.-\1"
1243 "VblVulni\1" " VblVulni 1 3 2.4 176 162 0 GCGCUGGAU-==C======U.-\1"
1244 "VbhChole\1" " VbhChole 1 3 2.4 176 162 0 GCGCUGGAU-==C======U.-\1"
1245 "AclPleur\1" " AclPleur 1 3 2.5 176 162 0 CGGUUGGAU-==C======A.-\1"
1246 "PtVVVulg\1" " PtVVVulg 1 3 2.5 176 162 0 CGGUUGGAU-==C======A.-\1";
1248 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCUCCUUNC'\1"
1249 "BcSSSS00\1" " BcSSSS00 0 2 1.7 176 162 0 CGGCUGGAU-==C======U=-U.\1"
1250 "ClfPerfr\1" " ClfPerfr 1 2 2.8 176 162 0 AGAUUAAUA-=CC======U=-U.\1"
1251 "DlcTolu2\1" " DlcTolu2 1 3 2.4 176 162 0 CGGCUGGAU-==C=======N-N.\1"
1252 "FrhhPhil\1" " FrhhPhil 1 3 2.4 176 162 0 CGGCUGGAU-==C======..-\1"
1253 "HllHalod\1" " HllHalod 1 3 2.4 176 162 0 CGGCUGGAU-==C======..-\1"
1254 "CPPParap\1" " CPPParap 1 3 2.4 177 163 0 CGGNUGGAU-==C======..-\1"
1255 "PbcAcet2\1" " PbcAcet2 1 3 2.4 176 162 0 CGGCUGGAU-==C======UN-N.\1"
1256 "PbrPropi\1" " PbrPropi 1 3 2.4 176 162 0 CGGCUGGAU-==C======UN-N.\1"
1257 "Stsssola\1" " Stsssola 1 3 2.4 176 162 0 CGGCUGGAU-==C======U.-\1"
1258 "DcdNodos\1" " DcdNodos 1 3 2.4 176 162 0 CGGUUGGAU-==C======U.-\1"
1259 "VbrFurni\1" " VbrFurni 1 3 2.4 176 162 0 GCGCUGGAU-==C======U.-\1"
1260 "VblVulni\1" " VblVulni 1 3 2.4 176 162 0 GCGCUGGAU-==C======U.-\1"
1261 "VbhChole\1" " VbhChole 1 3 2.4 176 162 0 GCGCUGGAU-==C======U.-\1"
1262 "AclPleur\1" " AclPleur 1 3 2.5 176 162 0 CGGUUGGAU-==C======A.-\1"
1263 "PtVVVulg\1" " PtVVVulg 1 3 2.5 176 162 0 CGGUUGGAU-==C======A.-\1";
1265 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
1266 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
1267 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1271 const char *arguments[] = {
1273 "matchsequence=GAGCGGUCAG",
1281 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'GAGCGGUCAG'\1"
1282 "BcSSSS00\1" " BcSSSS00 1 0 1.1 25 21 0 GAUCAAGUC-======A===-AUGGGAGCU\1";
1284 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'GAGCGGUCAG'\1"
1285 "BcSSSS00\1" " BcSSSS00 1 0 1.1 25 21 0 GAUCAAGUC-======A===-AUGGGAGCU\1"
1286 "Bl0LLL00\1" " Bl0LLL00 2 0 2.2 25 21 0 GAUCAAGUC-======A=C=-ACGGGAGCU\1";
1289 CCP expectd3 =
" name---- fullname mis N_mis wmis pos ecoli rev 'GAGCGGUCAG'\1"
1290 "BcSSSS00\1" " BcSSSS00 1 0 1.1 25 21 0 GAUCAAGUC-======A===-AUGGGAGCU\1"
1291 "Bl0LLL00\1" " Bl0LLL00 2 0 2.2 25 21 0 GAUCAAGUC-======A=C=-ACGGGAGCU\1"
1292 "VbrFurni\1" " VbrFurni 3 0 2.4 68 60 0 GGAUUUGUU-=g====CG==-CGGCGGACG\1"
1293 "FrhhPhil\1" " FrhhPhil 3 0 2.8 82 70 0 ACGAGUGGC-=gA===C===-UUGGAAACG\1"
1294 "ClfPerfr\1" " ClfPerfr 3 0 3.2 86 74 0 CGGCGGGAC-=g==CU====-AACCUGCGG\1"
1295 "HllHalod\1" " HllHalod 3 0 3.6 25 21 0 GAUCAAGUC-======Aa=C-GAUGGAAGC\1"
1296 "DlcTolu2\1" " DlcTolu2 3 0 3.6 95 83 0 GGACUGCCC-==Aa==A===-CUAAUACCG\1"
1297 "FrhhPhil\1" " FrhhPhil 3 0 4.0 25 21 0 GAUCAAGUC-==A====a=C-AGGUCUUCG\1"
1298 "AclPleur\1" " AclPleur 3 0 4.0 29 24 0 GAUCAAGUC-==A====a=C-GGGAAGGGA\1"
1299 "ClnCorin\1" " ClnCorin 3 0 4.1 25 21 0 GAUCAAGUC-=====A=G=A-GUUCCUUCG\1"
1300 "CltBotul\1" " CltBotul 3 0 4.1 25 21 0 .AUCAAGUC-=====A=G=A-GCUUCUUCG\1"
1301 "CPPParap\1" " CPPParap 3 0 4.1 25 21 0 GAUCAAGUC-=====A=G=A-GUUCCUUCG\1"
1302 "ClfPerfr\1" " ClfPerfr 3 0 4.1 25 21 0 GAUCAAGUC-=====A=G=A-GUUUCCUUC\1"
1303 "DlcTolu2\1" " DlcTolu2 3 0 4.1 157 143 0 GUAGCCGUU-===GAA====-CGGCUGGAU\1"
1304 "PslFlave\1" " PslFlave 3 3 2.4 25 21 0 GAUCAAGUC-=======...-<more>\1"
1305 "PtVVVulg\1" " PtVVVulg 3 3 2.4 29 24 0 GAUCAAGUC-=======...-<more>\1";
1307 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
1308 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
1309 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1310 arguments[2] =
"matchmismatches=3"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd3);
1314 const char *arguments[] = {
1316 "matchsequence=GAGCGGUCAGGAG",
1322 CCP expectd3 =
" name---- fullname mis N_mis wmis pos ecoli rev 'GAGCGGUCAGGAG'\1"
1323 "ClnCorin\1" " ClnCorin 6 0 3.4 77 66 0 AUGGAUUAG-Cg====A=g==CC-UUUCGAAAG\1"
1324 "CltBotul\1" " CltBotul 6 0 3.4 77 66 0 GUGGAUUAG-Cg====A=g==CC-UUUCGAAAG\1"
1325 "CPPParap\1" " CPPParap 6 0 3.4 77 66 0 ACGGAUUAG-Cg====A=g==CC-UUCCGAAAG\1"
1326 "BcSSSS00\1" " BcSSSS00 3 0 3.4 25 21 0 GAUCAAGUC-======A===AU=-GGAGCUUGC\1";
1328 CCP expectd4 =
" name---- fullname mis N_mis wmis pos ecoli rev 'GAGCGGUCAGGAG'\1"
1329 "ClnCorin\1" " ClnCorin 6 0 3.4 77 66 0 AUGGAUUAG-Cg====A=g==CC-UUUCGAAAG\1"
1330 "CltBotul\1" " CltBotul 6 0 3.4 77 66 0 GUGGAUUAG-Cg====A=g==CC-UUUCGAAAG\1"
1331 "CPPParap\1" " CPPParap 6 0 3.4 77 66 0 ACGGAUUAG-Cg====A=g==CC-UUCCGAAAG\1"
1332 "BcSSSS00\1" " BcSSSS00 3 0 3.4 25 21 0 GAUCAAGUC-======A===AU=-GGAGCUUGC\1"
1333 "ClfPerfr\1" " ClfPerfr 6 0 3.9 121 108 0 AUCAUAAUG-C====A=ug==gU-GAAGUCGUA\1"
1334 "ClnCorin\1" " ClnCorin 6 0 3.9 122 109 0 CGCAUAAGA-C====A=ug==gU-GAAGUCGUA\1"
1335 "CltBotul\1" " CltBotul 6 0 3.9 122 109 0 CUCAUAAGA-C====A=ug==gU-GAAGUCGUA\1"
1336 "CPPParap\1" " CPPParap 6 0 3.9 122 109 0 GCAUAAGAU-C====A=ug==gU-AAGUCGUAA\1"
1337 "DcdNodos\1" " DcdNodos 6 0 4.2 77 66 0 GUAACCUAG-Ug====A=g=AC=-UAUGGAAAC\1"
1338 "PsAAAA00\1" " PsAAAA00 6 0 4.2 77 66 0 UGGAUUCAG-Cg====A=g=AC=-UCCGGAAAC\1"
1339 "PslFlave\1" " PslFlave 6 0 4.2 77 66 0 CUGAUUCAG-Cg====A=g=AC=-UUUCGAAAG\1"
1340 "FrhhPhil\1" " FrhhPhil 5 0 4.2 149 135 0 UAACAAUGG-U===C==ag===A-CCUGCGGCU\1"
1341 "AclPleur\1" " AclPleur 4 0 4.3 29 24 0 GAUCAAGUC-==A====a=C=g=-AAGGGAGCU\1"
1342 "PbcAcet2\1" " PbcAcet2 6 0 4.3 149 135 0 GUAACAAGG-U===C==ag==gA-ACCUGCGGC\1"
1343 "PbrPropi\1" " PbrPropi 6 0 4.3 149 135 0 GUAACAAGG-U===C==ag==gA-ACCUGCGGC\1"
1344 "Stsssola\1" " Stsssola 6 0 4.3 149 135 0 GUAACAAGG-U===C==ag==gA-ACCUGCGGC\1"
1345 "LgtLytic\1" " LgtLytic 6 0 4.3 149 135 0 GUAACAAGG-U===C==ag==gA-ACCUGCGGC\1"
1346 "PslFlave\1" " PslFlave 6 0 4.3 149 135 0 GUAACAAGG-U===C==ag==gA-ACCUGCGGC\1"
1347 "HllHalod\1" " HllHalod 6 0 4.3 149 135 0 GUAACAAGG-U===C==ag==gA-ACCUGCGGC\1"
1348 "VbrFurni\1" " VbrFurni 5 0 4.4 68 60 0 GGAUUUGUU-=g====CG==Cg=-CGGACGGAC\1"
1349 "AclPleur\1" " AclPleur 6 0 4.4 35 30 0 GUCGAACGG-U=A===ga===gA-GCUUGCUUU\1"
1350 "PslFlave\1" " PslFlave 6 6 4.4 25 21 0 GAUCAAGUC-=======......-<more>\1"
1351 "PtVVVulg\1" " PtVVVulg 6 6 4.4 29 24 0 GAUCAAGUC-=======......-<more>\1"
1352 "VbrFurni\1" " VbrFurni 6 0 4.4 149 135 0 GUAACAAGG-U====C=ag==gA-ACCUGGCGC\1"
1353 "VblVulni\1" " VblVulni 6 0 4.4 149 135 0 GUAACAAGG-U====C=ag==gA-ACCUGGCGC\1"
1354 "VbhChole\1" " VbhChole 6 0 4.4 149 135 0 GUAACAAGG-U====C=ag==gA-ACCUGGCGC\1";
1356 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1357 arguments[2] =
"matchmismatches=3"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd3);
1358 arguments[2] =
"matchmismatches=4"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd4);
1365 const char *arguments[] = {
1367 "matchsequence=CANCNCNNUNC",
1371 "matchmaxresults=5",
1374 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCNCNNUNC'\1"
1375 "BcSSSS00\1" " BcSSSS00 0 5 4.2 176 162 0 CGGCUGGAU-==C=U=CU=U=-U.\1";
1378 CCP expectd1 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCNCNNUNC'\1"
1379 "DlcTolu2\1" " DlcTolu2 1 6 4.9 176 162 0 CGGCUGGAU-==C=U=CU==N-N.\1"
1380 "FrhhPhil\1" " FrhhPhil 1 6 4.9 176 162 0 CGGCUGGAU-==C=U=CU=..-\1"
1381 "HllHalod\1" " HllHalod 1 6 4.9 176 162 0 CGGCUGGAU-==C=U=CU=..-\1"
1382 "CPPParap\1" " CPPParap 1 6 4.9 177 163 0 CGGNUGGAU-==C=U=CU=..-\1"
1383 "AclPleur\1" " AclPleur 1 6 5.0 176 162 0 CGGUUGGAU-==C=U=CU=A.-\1";
1386 CCP expectd2 =
" name---- fullname mis N_mis wmis pos ecoli rev 'CANCNCNNUNC'\1"
1387 "HllHalod\1" " HllHalod 2 5 5.1 45 40 0 AAACGAUGG-a=G=UuGC=U=-CAGGCGUCG\1"
1388 "VblVulni\1" " VblVulni 2 5 5.4 49 44 0 AGCACAGAG-a=A=UuGU=U=-UCGGGUGGC\1"
1389 "VbrFurni\1" " VbrFurni 2 5 5.7 40 35 0 CGGCAGCGA-==A=AuUGAA=-CUUCGGGGG\1"
1390 "LgtLytic\1" " LgtLytic 2 5 6.2 101 89 0 GGGGAAACU-==AGCuAA=A=-CGCAUAAUC\1"
1391 "ClfPerfr\1" " ClfPerfr 2 5 6.5 172 158 0 AGGAAGAUU-a=UaC=CC=C=-UUUCU.\1";
1393 arguments[2] =
"matchmismatches=0"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
1394 arguments[2] =
"matchmismatches=1"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd1);
1395 arguments[2] =
"matchmismatches=2"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd2);
1401 const char *arguments[] = {
1403 "matchsequence=ACGGACUCCGGGAAACCGGGGCUAAUACC",
1407 "matchmaxresults=10",
1410 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'ACGGACUCCGGGAAACCGGGGCUAAUACC'\1"
1411 "BcSSSS00\1" " BcSSSS00 0 0 0.0 84 72 0 UAGCGGCGG-=============================-GGAUGGUGA\1"
1412 "Bl0LLL00\1" " Bl0LLL00 0 0 0.0 84 72 0 CAGCGGCGG-=============================-GGAUGCUGA\1"
1413 "AclPleur\1" " AclPleur 4 0 4.6 84 72 0 GAGUGGCGG-=======a========u=UA=========-GCGUAAUCA\1"
1414 "PtVVVulg\1" " PtVVVulg 4 0 5.1 84 72 0 GAGCGGCGG-=======a=U======G=U==========-GCAUGACCA\1"
1415 "DsssDesu\1" " DsssDesu 5 0 5.3 84 72 0 GAGUGGCGC-========u=C====Gu==A=========-GGAUACAGA\1"
1416 "PsAAAA00\1" " PsAAAA00 5 0 5.3 84 72 0 CAGCGGCGG-======gu=C======G==C=========-GCAUACGCA\1";
1418 arguments[2] =
"matchmismatches=5"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
1421 const char *arguments[] = {
1423 "matchsequence=ACGGACUCCGGGAAACCGGGGCUAAUACCGGAUGGUGA",
1427 "matchmaxresults=100",
1430 CCP expectd0 =
" name---- fullname mis N_mis wmis pos ecoli rev 'ACGGACUCCGGGAAACCGGGGCUAAUACCGGAUGGUGA'\1"
1431 "BcSSSS00\1" " BcSSSS00 0 0 0.0 84 72 0 UAGCGGCGG-======================================-UGAUUGGGG\1"
1432 "Bl0LLL00\1" " Bl0LLL00 1 0 1.5 84 72 0 CAGCGGCGG-==================================C===-UGAUUGGGG\1"
1433 "DsssDesu\1" " DsssDesu 8 0 9.4 84 72 0 GAGUGGCGC-========u=C====Gu==A=============ACA==-G.\1"
1434 "PtVVVulg\1" " PtVVVulg 8 0 10.7 84 72 0 GAGCGGCGG-=======a=U======G=U===========C===ACC=-UGACUGGGG\1"
1435 "AclPleur\1" " AclPleur 9 0 10.8 84 72 0 GAGUGGCGG-=======a========u=UA==========Cg=AA=C=-UGACUGGGG\1"
1436 "PsAAAA00\1" " PsAAAA00 10 0 11.9 84 72 0 CAGCGGCGG-======gu=C======G==C==========C==ACgC=-UGGUAACAA\1"
1437 "LgtLytic\1" " LgtLytic 10 0 12.8 84 72 0 GAGNGGCGA-=======uG=======uCAA==========C==AA=C=-UGACUGGGG\1"
1438 "VbrFurni\1" " VbrFurni 10 0 12.8 84 72 0 GAGCGGCGG-======CauU======GAU===========C===A=C=-UGACUGGGG\1"
1439 "VblVulni\1" " VblVulni 10 0 12.8 84 72 0 GAGCGGCGG-======CauU======GAU===========C===A=C=-UGACUGGGG\1"
1440 "Stsssola\1" " Stsssola 10 0 12.9 84 72 0 AAGUGGCGC-======gG=U======G=UC=============AACA=-UGAUUGGGG\1"
1441 "DlcTolu2\1" " DlcTolu2 10 0 13.4 84 72 0 GAGUGGCGC-=======G=CC====GGACA==============AA==-UAAUUGGGG\1"
1442 "PbcAcet2\1" " PbcAcet2 11 0 12.2 84 72 0 AAGUGGCGC-======A=uUC====GG==U=============AAg=g-UAACUGGGG\1"
1443 "HllHalod\1" " HllHalod 11 0 13.0 84 72 0 GAGCGGCGG-======CuG=======uCA===========C==ACgC=-UGACUGGGG\1"
1444 "PbrPropi\1" " PbrPropi 12 0 13.6 84 72 0 UAGUGGCGC-======A=uUC====Ga==U=========U===AAg=g-UGACUGGGG\1"
1445 "DcdNodos\1" " DcdNodos 12 0 14.4 84 72 0 UAGUGGCGG-======guaU======GUAC==========C==AAg==-UGACUGGGG\1"
1446 "VbhChole\1" " VbhChole 12 0 15.4 84 72 0 GAGCGGCGG-======CauU======GAU===========C==AACC=-UGACUGGGG\1";
1448 arguments[2] =
"matchmismatches=12"; TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expectd0);
1454 const char *arguments[] = {
1456 "matchsequence=ACGGACUCCGGGAAACCGGGGCUAAUACCGGAUGGUGA",
1457 "matchmismatches=20",
1460 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments,
"Max. 19 mismatches are allowed for probes of length 38");
1464 static char *extract_locations(
const char *probe_design_result) {
1465 const char *
Target = strstr(probe_design_result,
"\nTarget");
1467 const char *designed = strchr(Target+7,
'\n');
1472 RegExpr reg_designed(
"^[A-Z]+"
1473 "[[:space:]]+[0-9]+"
1474 "[[:space:]]+([A-Z][=+-])"
1475 "[[:space:]]*([0-9]+)",
1480 const char *
eol = strchr(designed,
'\n');
1481 const RegMatch *match = reg_designed.match(designed);
if (!match)
break;
1483 match = reg_designed.subexpr_match(1);
if (!match)
break;
1486 match = reg_designed.subexpr_match(2);
if (!match)
break;
1492 designed = eol ? eol+1 :
NULp;
1502 inline const char *next_line(
const char *this_line) {
1503 const char *lf = strchr(this_line,
'\n');
1504 return (lf && lf[1] && strchr(
"ACGTU", lf[1])) ? lf+1 :
NULp;
1506 inline int count_hits(
const char *design_result) {
1507 const char *target = strstr(design_result,
"\nTarget");
1509 const char *hit = next_line(target+1);
1514 hit = next_line(hit);
1521 void TEST_SLOW_design_probe() {
1524 bool use_gene_ptserver =
false;
1528 const char *arguments[] = {
1530 "designnames=ClnCorin#CltBotul#CPPParap#ClfPerfr",
1531 "designmintargets=100",
1533 const char *expected =
1534 "Probe design parameters:\n"
1535 "Length of probe 18\n"
1536 "Temperature [ 0.0 -400.0]\n"
1537 "GC-content [30.0 - 80.0]\n"
1538 "E.Coli position [any]\n"
1539 "Max. nongroup hits 0\n"
1540 "Min. group hits 100% (max. rejected coverage: 75%)\n"
1541 "Target le apos ecol qual grps G+C temp Probe sequence | Decrease T by n*.3C -> probe matches n non group species\n"
1542 "CGAAAGGAAGAUUAAUAC 18 A=94 82 77 4 33.3 48.0 GUAUUAAUCUUCCUUUCG | - - - - - - - - - - - - - - - - - - - -\n"
1543 "GAAAGGAAGAUUAAUACC 18 A+ 1 83 77 4 33.3 48.0 GGUAUUAAUCUUCCUUUC | - - - - - - - - - - - - - - - - - - - -\n"
1544 "UCAAGUCGAGCGAUGAAG 18 B=18 17 61 4 50.0 54.0 CUUCAUCGCUCGACUUGA | - - - - - - - - - - - - - - - 2 2 2 2 2\n"
1545 "AUCAAGUCGAGCGAUGAA 18 B- 1 16 45 4 44.4 52.0 UUCAUCGCUCGACUUGAU | - - - - - - - - - - - 2 2 2 2 2 2 2 2 2\n";
1547 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1548 hits_len_18 = count_hits(expected);
1553 char *positions = extract_locations(expected);
1561 const char *arguments[] = {
1563 "designnames=ClnCorin#CltBotul#CPPParap#ClfPerfr",
1564 "designmintargets=100",
1565 "designprobelength=17",
1567 const char *expected =
1568 "Probe design parameters:\n"
1569 "Length of probe 17\n"
1570 "Temperature [ 0.0 -400.0]\n"
1571 "GC-content [30.0 - 80.0]\n"
1572 "E.Coli position [any]\n"
1573 "Max. nongroup hits 0\n"
1574 "Min. group hits 100% (max. rejected coverage: 75%)\n"
1575 "Target le apos ecol qual grps G+C temp Probe sequence | Decrease T by n*.3C -> probe matches n non group species\n"
1576 "CAAGUCGAGCGAUGAAG 17 A=19 18 65 4 52.9 52.0 CUUCAUCGCUCGACUUG | - - - - - - - - - - - - - - - - 2 2 2 2\n"
1577 "UCAAGUCGAGCGAUGAA 17 A- 1 17 49 4 47.1 50.0 UUCAUCGCUCGACUUGA | - - - - - - - - - - - - 2 2 2 2 2 2 2 2\n"
1578 "AUCAAGUCGAGCGAUGA 17 A- 2 16 33 4 47.1 50.0 UCAUCGCUCGACUUGAU | - - - - - - - - 2 2 2 2 2 2 2 2 2 2 2 4\n";
1580 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1581 hits_len_17 = count_hits(expected);
1587 const char *arguments[] = {
1589 "designnames=ClnCorin#CltBotul#CPPParap#ClfPerfr",
1590 "designmintargets=100",
1591 "designprobelength=16",
1593 const char *expected =
1594 "Probe design parameters:\n"
1595 "Length of probe 16\n"
1596 "Temperature [ 0.0 -400.0]\n"
1597 "GC-content [30.0 - 80.0]\n"
1598 "E.Coli position [any]\n"
1599 "Max. nongroup hits 0\n"
1600 "Min. group hits 100% (max. rejected coverage: 75%)\n"
1601 "Target le apos ecol qual grps G+C temp Probe sequence | Decrease T by n*.3C -> probe matches n non group species\n"
1602 "CGAAAGGAAGAUUAAU 16 A=94 82 77 4 31.2 42.0 AUUAAUCUUCCUUUCG | - - - - - - - - - - - - - - - - - - - -\n"
1603 "AAGGAAGAUUAAUACC 16 A+ 3 85 77 4 31.2 42.0 GGUAUUAAUCUUCCUU | - - - - - - - - - - - - - - - - - - - -\n"
1604 "AAGUCGAGCGAUGAAG 16 B=20 19 69 4 50.0 48.0 CUUCAUCGCUCGACUU | - - - - - - - - - - - - - - - - - 2 2 2\n"
1605 "CAAGUCGAGCGAUGAA 16 B- 1 18 49 4 50.0 48.0 UUCAUCGCUCGACUUG | - - - - - - - - - - - - 2 2 2 2 2 2 2 2\n"
1606 "UCAAGUCGAGCGAUGA 16 B- 2 17 37 4 50.0 48.0 UCAUCGCUCGACUUGA | - - - - - - - - - 2 2 2 2 2 2 2 2 2 2 2\n"
1607 "AUCAAGUCGAGCGAUG 16 B- 3 16 21 4 50.0 48.0 CAUCGCUCGACUUGAU | - - - - - 2 2 2 2 2 2 2 2 2 2 2 2 9 9 9\n";
1609 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1610 hits_len_16 = count_hits(expected);
1616 const char *arguments[] = {
1618 "designnames=ClnCorin#CltBotul#CPPParap#ClfPerfr",
1619 "designmintargets=100",
1620 "designprobelength=16",
1621 "designmaxprobelength=18",
1623 const char *expected =
1624 "Probe design parameters:\n"
1625 "Length of probe 16-18\n"
1626 "Temperature [ 0.0 -400.0]\n"
1627 "GC-content [30.0 - 80.0]\n"
1628 "E.Coli position [any]\n"
1629 "Max. nongroup hits 0\n"
1630 "Min. group hits 100% (max. rejected coverage: 75%)\n"
1631 "Target le apos ecol qual grps G+C temp Probe sequence | Decrease T by n*.3C -> probe matches n non group species\n"
1632 "CGAAAGGAAGAUUAAU 16 A=94 82 77 4 31.2 42.0 AUUAAUCUUCCUUUCG | - - - - - - - - - - - - - - - - - - - -\n"
1633 "CGAAAGGAAGAUUAAUAC 18 A+ 0 82 77 4 33.3 48.0 GUAUUAAUCUUCCUUUCG | - - - - - - - - - - - - - - - - - - - -\n"
1634 "GAAAGGAAGAUUAAUACC 18 A+ 1 83 77 4 33.3 48.0 GGUAUUAAUCUUCCUUUC | - - - - - - - - - - - - - - - - - - - -\n"
1635 "AAGGAAGAUUAAUACC 16 A+ 3 85 77 4 31.2 42.0 GGUAUUAAUCUUCCUU | - - - - - - - - - - - - - - - - - - - -\n"
1636 "AAGUCGAGCGAUGAAG 16 B=20 19 69 4 50.0 48.0 CUUCAUCGCUCGACUU | - - - - - - - - - - - - - - - - - 2 2 2\n"
1637 "CAAGUCGAGCGAUGAAG 17 B- 1 18 65 4 52.9 52.0 CUUCAUCGCUCGACUUG | - - - - - - - - - - - - - - - - 2 2 2 2\n"
1638 "UCAAGUCGAGCGAUGAAG 18 B- 2 17 61 4 50.0 54.0 CUUCAUCGCUCGACUUGA | - - - - - - - - - - - - - - - 2 2 2 2 2\n"
1639 "UCAAGUCGAGCGAUGAA 17 B- 2 17 49 4 47.1 50.0 UUCAUCGCUCGACUUGA | - - - - - - - - - - - - 2 2 2 2 2 2 2 2\n"
1640 "CAAGUCGAGCGAUGAA 16 B- 1 18 49 4 50.0 48.0 UUCAUCGCUCGACUUG | - - - - - - - - - - - - 2 2 2 2 2 2 2 2\n"
1641 "AUCAAGUCGAGCGAUGAA 18 B- 3 16 45 4 44.4 52.0 UUCAUCGCUCGACUUGAU | - - - - - - - - - - - 2 2 2 2 2 2 2 2 2\n"
1642 "UCAAGUCGAGCGAUGA 16 B- 2 17 37 4 50.0 48.0 UCAUCGCUCGACUUGA | - - - - - - - - - 2 2 2 2 2 2 2 2 2 2 2\n"
1643 "AUCAAGUCGAGCGAUGA 17 B- 3 16 33 4 47.1 50.0 UCAUCGCUCGACUUGAU | - - - - - - - - 2 2 2 2 2 2 2 2 2 2 2 4\n"
1644 "AUCAAGUCGAGCGAUG 16 B- 3 16 21 4 50.0 48.0 CAUCGCUCGACUUGAU | - - - - - 2 2 2 2 2 2 2 2 2 2 2 2 9 9 9\n";
1646 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1647 combined_hits = count_hits(expected);
1655 const char *arguments[] = {
1657 "designnames=VbhChole#VblVulni",
1658 "designmintargets=50",
1659 "designmingc=60",
"designmaxgc=75",
1662 const char *expected =
1663 "Probe design parameters:\n"
1664 "Length of probe 18\n"
1665 "Temperature [ 0.0 -400.0]\n"
1666 "GC-content [60.0 - 75.0]\n"
1667 "E.Coli position [any]\n"
1668 "Max. nongroup hits 0 (lowest rejected nongroup hits: 1)\n"
1669 "Min. group hits 50%\n"
1670 "Target le apos ecol qual grps G+C temp Probe sequence | Decrease T by n*.3C -> probe matches n non group species\n"
1671 "AGUCGAGCGGCAGCACAG 18 A=21 20 39 2 66.7 60.0 CUGUGCUGCCGCUCGACU | - - - - - - - - - - - - - - - - - - - -\n"
1672 "GUCGAGCGGCAGCACAGA 18 A+ 1 21 39 2 66.7 60.0 UCUGUGCUGCCGCUCGAC | - - - - - - - - - - - - - - - - - - - -\n"
1673 "UCGAGCGGCAGCACAGAG 18 A+ 2 21 39 2 66.7 60.0 CUCUGUGCUGCCGCUCGA | - - - - - - - - - - - - - - - - - - - -\n"
1674 "AAGUCGAGCGGCAGCACA 18 A- 1 19 25 2 61.1 58.0 UGUGCUGCCGCUCGACUU | - - - - - - - - - - - - 1 1 1 1 1 1 1 1\n"
1675 "CGAGCGGCAGCACAGAGA 18 A+ 3 21 20 1 66.7 60.0 UCUCUGUGCUGCCGCUCG | - - - - - - - - - - - - - - - - - - - -\n"
1676 "CGAGCGGCAGCACAGAGG 18 A+ 3 21 20 1 72.2 62.0 CCUCUGUGCUGCCGCUCG | - - - - - - - - - - - - - - - - - - - -\n"
1677 "GAGCGGCAGCACAGAGAA 18 A+ 4 21 20 1 61.1 58.0 UUCUCUGUGCUGCCGCUC | - - - - - - - - - - - - - - - - - - - -\n"
1678 "GAGCGGCAGCACAGAGGA 18 A+ 4 21 20 1 66.7 60.0 UCCUCUGUGCUGCCGCUC | - - - - - - - - - - - - - - - - - - - -\n"
1679 "AGCGGCAGCACAGAGGAA 18 A+ 5 21 20 1 61.1 58.0 UUCCUCUGUGCUGCCGCU | - - - - - - - - - - - - - - - - - - - -\n"
1680 "GCGGCAGCACAGAGAAAC 18 A+ 6 22 20 1 61.1 58.0 GUUUCUCUGUGCUGCCGC | - - - - - - - - - - - - - - - - - - - -\n"
1681 "GCGGCAGCACAGAGGAAC 18 A+ 6 22 20 1 66.7 60.0 GUUCCUCUGUGCUGCCGC | - - - - - - - - - - - - - - - - - - - -\n"
1682 "CGGCAGCACAGAGGAACU 18 A+ 7 23 20 1 61.1 58.0 AGUUCCUCUGUGCUGCCG | - - - - - - - - - - - - - - - - - - - -\n"
1683 "CUUGUUCCUUGGGUGGCG 18 B=52 47 20 1 61.1 58.0 CGCCACCCAAGGAACAAG | - - - - - - - - - - - - - - - - - - - -\n"
1684 "CUUGUUUCUCGGGUGGCG 18 B+ 0 47 20 1 61.1 58.0 CGCCACCCGAGAAACAAG | - - - - - - - - - - - - - - - - - - - -\n"
1685 "UGUUCCUUGGGUGGCGAG 18 B+ 2 49 20 1 61.1 58.0 CUCGCCACCCAAGGAACA | - - - - - - - - - - - - - - - - - - - -\n"
1686 "UGUUUCUCGGGUGGCGAG 18 B+ 2 49 20 1 61.1 58.0 CUCGCCACCCGAGAAACA | - - - - - - - - - - - - - - - - - - - -\n"
1687 "GUUCCUUGGGUGGCGAGC 18 B+ 3 50 20 1 66.7 60.0 GCUCGCCACCCAAGGAAC | - - - - - - - - - - - - - - - - - - - -\n"
1688 "GUUUCUCGGGUGGCGAGC 18 B+ 3 50 20 1 66.7 60.0 GCUCGCCACCCGAGAAAC | - - - - - - - - - - - - - - - - - - - -\n"
1689 "UUCCUUGGGUGGCGAGCG 18 B+10 57 20 1 66.7 60.0 CGCUCGCCACCCAAGGAA | - - - - - - - - - - - - - - - - - - - -\n"
1690 "UUUCUCGGGUGGCGAGCG 18 B+10 57 20 1 66.7 60.0 CGCUCGCCACCCGAGAAA | - - - - - - - - - - - - - - - - - - - -\n"
1691 "UCCUUGGGUGGCGAGCGG 18 B+11 58 20 1 72.2 62.0 CCGCUCGCCACCCAAGGA | - - - - - - - - - - - - - - - - - - - -\n"
1692 "UUCUCGGGUGGCGAGCGG 18 B+11 58 20 1 72.2 62.0 CCGCUCGCCACCCGAGAA | - - - - - - - - - - - - - - - - - - - -\n"
1693 "CAAGUCGAGCGGCAGCAC 18 A- 2 18 13 2 66.7 60.0 GUGCUGCCGCUCGACUUG | - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1694 "UCAAGUCGAGCGGCAGCA 18 A- 3 17 3 2 61.1 58.0 UGCUGCCGCUCGACUUGA | - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3\n";
1696 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1701 const char *arguments_loc[] = {
1704 "designnames=CPPParap#PsAAAA00",
1705 "designmintargets=50",
1706 "designmingc=0",
"designmaxgc=100",
1707 "designmintemp=30",
"designmaxtemp=100",
1709 "designprobelength=9",
1712 const char *expected_loc =
1713 "A=29B=51B+1C=99A+8D=112E=80E+2E+3E+4B-1A-5B-6B-5F=124F+1B-2E-7B+0C-5E+2E-1D-1E+6E+7E+8G=89C-2A-1H=61A-6C-1C-3E+3B+3B+4B+5E+5C+1E+4E+6E+7E+8C-7C-6E+5H+1H+2E-6C-4I=152I+1A-7";
1715 TEST_ARB_PROBE_FILT(
ARRAY_ELEMS(arguments_loc), arguments_loc, extract_locations, expected_loc);
1720 const char *arguments[] = {
1722 "designnames=CPPParap#PsAAAA00",
1723 "designmintargets=50",
1724 "designmingc=0",
"designmaxgc=100",
1725 "designmintemp=30",
"designmaxtemp=100",
1727 "designprobelength=9",
1730 const char *expected =
1731 "Probe design parameters:\n"
1732 "Length of probe 9\n"
1733 "Temperature [30.0 -100.0]\n"
1734 "GC-content [ 0.0 -100.0]\n"
1735 "E.Coli position [any]\n"
1736 "Max. nongroup hits 7 (lowest rejected nongroup hits: 9)\n"
1737 "Min. group hits 50%\n"
1738 "Target le apos ecol qual grps G+C temp Probe | Decrease T by n*.3C -> probe matches n non group species\n"
1739 "GAGCGGAUG 9 A= 29 24 20 1 66.7 30.0 CAUCCGCUC | - - - - - - - - - - - - - - - - - - - -\n"
1740 "UGCUCCUGG 9 B= 51 46 20 1 66.7 30.0 CCAGGAGCA | - - - - - - - - - - - - - - - - - - - -\n"
1741 "GCUCCUGGA 9 B+ 1 47 20 1 66.7 30.0 UCCAGGAGC | - - - - - - - - - - - - - - - - - - - -\n"
1742 "CGGGCGCUA 9 C= 99 87 20 1 77.8 32.0 UAGCGCCCG | - - - - - - - - - - - - - - - - - - - -\n"
1743 "GAAGGGAGC 9 A+ 8 32 20 1 66.7 30.0 GCUCCCUUC | 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2\n"
1744 "CGCAUACGC 9 D=112 100 20 1 66.7 30.0 GCGUAUGCG | 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n"
1745 "CGGACGGGC 9 E= 80 69 20 1 88.9 34.0 GCCCGUCCG | 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3\n"
1746 "GGACGGGCC 9 E+ 2 70 20 1 88.9 34.0 GGCCCGUCC | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n"
1747 "GACGGGCCU 9 E+ 3 71 20 1 77.8 32.0 AGGCCCGUC | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n"
1748 "ACGGGCCUU 9 E+ 4 72 20 1 66.7 30.0 AAGGCCCGU | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n"
1749 "UCCUUCGGG 9 B- 1 45 20 1 66.7 30.0 CCCGAAGGA | 2 2 2 2 2 2 2 2 2 2 2 2 3 4 4 4 4 4 4 4\n"
1750 "CGAGCGAUG 9 A- 5 21 20 1 66.7 30.0 CAUCGCUCG | 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5\n"
1751 "GGGAGCUUG 9 B- 6 40 20 1 66.7 30.0 CAAGCUCCC | 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5\n"
1752 "GGAGCUUGC 9 B- 5 41 20 1 66.7 30.0 GCAAGCUCC | 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5\n"
1753 "GCGAUUGGG 9 F=124 111 20 1 66.7 30.0 CCCAAUCGC | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 6 6\n"
1754 "CGAUUGGGG 9 F+ 1 112 20 1 66.7 30.0 CCCCAAUCG | 3 3 3 3 3 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6\n"
1755 "GCUUGCUCC 9 B- 2 44 20 1 66.7 30.0 GGAGCAAGC | 4 4 4 4 4 4 5 5 5 5 5 5 5 7 7 7 7 8 8 8\n"
1756 "UUAGCGGCG 9 E- 7 62 19 1 66.7 30.0 CGCCGCUAA | 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 11 11\n"
1757 "CCUUCGGGA 9 B+ 0 46 18 1 66.7 30.0 UCCCGAAGG | 2 2 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 5 13\n"
1758 "GGAAACGGG 9 C- 5 82 17 1 66.7 30.0 CCCGUUUCC | - - - - - - - - - - - - - - - - 3 3 3 3\n"
1759 "GGACGGACG 9 E+ 2 70 17 1 77.8 32.0 CGUCCGUCC | 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 10 10 14 14\n"
1760 "GCGGACGGG 9 E- 1 68 17 1 88.9 34.0 CCCGUCCGC | 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 13 13 13 13\n"
1761 "CCGCAUACG 9 D- 1 99 16 1 66.7 30.0 CGUAUGCGG | 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 5 5 5 5 5\n"
1762 "GGACGUCCG 9 E+ 6 74 14 1 77.8 32.0 CGGACGUCC | - - - - - - - - - - - - - 1 1 1 1 3 3 3\n"
1763 "GACGUCCGG 9 E+ 7 75 14 1 77.8 32.0 CCGGACGUC | - - - - - - - - - - - - - 1 1 1 1 2 2 14\n"
1764 "ACGUCCGGA 9 E+ 8 76 14 1 66.7 30.0 UCCGGACGU | - - - - - - - - - - - - - 1 1 11 11 12 12 17\n"
1765 "CGUCCGGAA 9 G= 89 77 14 1 66.7 30.0 UUCCGGACG | - - - - - - - - - - - - - 1 1 1 1 2 2 2\n"
1766 "AACGGGCGC 9 C- 2 85 14 1 77.8 32.0 GCGCCCGUU | - - - - - - - - - - - - - 1 1 1 1 1 1 2\n"
1767 "CGAGCGGAU 9 A- 1 23 13 1 66.7 30.0 AUCCGCUCG | - - - - - - - - - - - - 3 3 3 3 3 3 3 3\n"
1768 "UUCAGCGGC 9 H= 61 56 13 1 66.7 30.0 GCCGCUGAA | 1 1 1 1 1 1 2 2 2 2 2 2 3 4 4 4 4 4 7 7\n"
1769 "UCGAGCGGA 9 A- 6 21 13 1 66.7 30.0 UCCGCUCGA | 3 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8\n"
1770 "ACGGGCGCU 9 C- 1 86 12 1 77.8 32.0 AGCGCCCGU | - - - - - - - - - - - 1 1 1 1 1 1 2 2 2\n"
1771 "AAACGGGCG 9 C- 3 84 9 1 66.7 30.0 CGCCCGUUU | - - - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1\n"
1772 "GACGGACGU 9 E+ 3 71 9 1 66.7 30.0 ACGUCCGUC | 2 2 2 2 2 2 2 2 13 13 13 13 13 13 13 14 14 14 14 14\n"
1773 "UCGGGAACG 9 B+ 3 49 7 1 66.7 30.0 CGUUCCCGA | - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1774 "CGGGAACGG 9 B+ 4 50 7 1 77.8 32.0 CCGUUCCCG | - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1775 "GGGAACGGA 9 B+ 5 51 7 1 66.7 30.0 UCCGUUCCC | - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1776 "CGGACGUCC 9 E+ 5 73 7 1 77.8 32.0 GGACGUCCG | - - - - - - 1 1 1 1 1 1 1 3 3 3 3 12 12 12\n"
1777 "GGGCGCUAA 9 C+ 1 88 7 1 66.7 30.0 UUAGCGCCC | - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1778 "ACGGACGUC 9 E+ 4 72 7 1 66.7 30.0 GACGUCCGU | - - - - - - 2 2 3 3 3 4 4 4 4 5 5 5 5 13\n"
1779 "GGGCCUUCC 9 E+ 6 74 7 1 77.8 32.0 GGAAGGCCC | - - - - - - 2 2 2 2 2 3 3 3 3 3 3 3 3 4\n"
1780 "GGCCUUCCG 9 E+ 7 75 7 1 77.8 32.0 CGGAAGGCC | - - - - - - 2 2 2 2 2 3 3 3 3 3 3 3 3 3\n"
1781 "GCCUUCCGA 9 E+ 8 76 7 1 66.7 30.0 UCGGAAGGC | - - - - - - 2 2 2 2 2 3 3 3 3 3 3 3 3 3\n"
1782 "CCGGAAACG 9 C- 7 80 7 1 66.7 30.0 CGUUUCCGG | - - - - - - 2 2 2 2 2 2 2 6 7 9 9 10 10 10\n"
1783 "CGGAAACGG 9 C- 6 81 7 1 66.7 30.0 CCGUUUCCG | - - - - - - 2 2 4 4 4 4 4 4 5 5 6 6 6 6\n"
1784 "CGGGCCUUC 9 E+ 5 73 7 1 77.8 32.0 GAAGGCCCG | 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n"
1785 "UCAGCGGCG 9 H+ 1 57 7 1 77.8 32.0 CGCCGCUGA | 2 2 2 2 2 2 6 6 6 6 6 6 6 6 6 6 7 7 7 7\n"
1786 "CAGCGGCGG 9 H+ 2 58 7 1 88.9 34.0 CCGCCGCUG | 2 2 2 2 2 2 6 6 6 6 6 6 6 7 12 12 12 12 12 12\n"
1787 "UAGCGGCGG 9 E- 6 63 7 1 77.8 32.0 CCGCCGCUA | 4 4 4 4 4 4 10 10 10 10 10 10 12 14 14 14 14 14 14 14\n"
1788 "GAAACGGGC 9 C- 4 83 5 1 66.7 30.0 GCCCGUUUC | - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1789 "GCCGUAGGA 9 I=152 138 3 1 66.7 30.0 UCCUACGGC | 1 1 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 12 12\n"
1790 "CCGUAGGAG 9 I+ 1 139 3 1 66.7 30.0 CUCCUACGG | 1 1 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11\n"
1791 "GUCGAGCGA 9 A- 7 21 3 1 66.7 30.0 UCGCUCGAC | 3 3 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 13\n";
1793 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1798 #else // !defined(ARB_64)
1811 const char *arguments[] = {
1813 "designnames=CPPParap#PsAAAA00",
1814 "designmintargets=50",
1815 "designmingc=0",
"designmaxgc=100",
1816 "designmintemp=30",
"designmaxtemp=100",
1819 "designprobelength=8",
1822 const char *expected =
1823 "Probe design parameters:\n"
1824 "Length of probe 8\n"
1825 "Temperature [30.0 -100.0]\n"
1826 "GC-content [ 0.0 -100.0]\n"
1827 "E.Coli position [any]\n"
1828 "Max. nongroup hits 15\n"
1829 "Min. group hits 50%\n"
1830 "Target le apos ecol qual grps G+C temp Probe | Decrease T by n*.3C -> probe matches n non group species\n"
1831 "GGCGGACG 8 A=78 67 39 2 87.5 30.0 CGUCCGCC | 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13\n"
1832 "GCGGACGG 8 A+ 1 68 39 2 87.5 30.0 CCGUCCGC | 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13\n"
1833 "AGCGGCGG 8 A- 3 64 39 2 87.5 30.0 CCGCCGCU | 11 11 11 11 11 11 11 14 14 14 14 14 14 14 14 14 14 14 14 14\n"
1834 "GCGGCGGA 8 A- 2 65 39 2 87.5 30.0 UCCGCCGC | 10 10 11 11 11 11 11 14 14 14 14 14 14 14 14 14 14 14 14 14\n"
1835 "CGGCGGAC 8 A- 1 66 39 2 87.5 30.0 GUCCGCCG | 10 10 10 10 10 10 10 13 13 13 13 13 13 13 14 14 14 14 14 14\n"
1836 "CGGACGGG 8 A+ 2 69 20 1 87.5 30.0 CCCGUCCG | 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n"
1837 "GGACGGGC 8 A+ 4 70 20 1 87.5 30.0 GCCCGUCC | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n"
1838 "GACGGGCC 8 A+ 5 71 20 1 87.5 30.0 GGCCCGUC | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n"
1840 "ACGGGCGC 8 B=98 86 13 1 87.5 30.0 GCGCCCGU | - - - - - - - - - - - - 1 1 1 1 1 1 1 1\n"
1841 "CGGGCGCU 8 B+ 1 87 13 1 87.5 30.0 AGCGCCCG | - - - - - - - - - - - - 1 1 1 1 1 1 1 1\n"
1842 "CAGCGGCG 8 C=63 58 8 1 87.5 30.0 CGCCGCUG | 2 2 2 2 2 2 2 6 6 6 6 6 6 6 8 8 8 8 8 8\n";
1843 #else // !defined(RES_64)
1844 "ACGGGCGC 8 B=98 86 13 1 87.5 30.0 GCGCCCGU | - - - - - - - - - - - - 1 1 1 1 1 1 1 2\n"
1845 "CGGGCGCU 8 B+ 1 87 13 1 87.5 30.0 AGCGCCCG | - - - - - - - - - - - - 1 1 1 1 1 1 1 2\n"
1846 "CAGCGGCG 8 C=63 58 8 1 87.5 30.0 CGCCGCUG | 2 2 2 2 2 2 2 6 6 6 6 6 6 6 8 8 8 8 8 10\n";
1849 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1854 const char *arguments[] = {
1856 "designnames=CPPParap#PsAAAA00",
1857 "designmintargets=50",
1858 "designmingc=0",
"designmaxgc=100",
1859 "designmintemp=30",
"designmaxtemp=100",
1861 "designprobelength=8",
1862 "designminpos=65",
"designmaxpos=69",
1865 const char *expected =
1866 "Probe design parameters:\n"
1867 "Length of probe 8\n"
1868 "Temperature [30.0 -100.0]\n"
1869 "GC-content [ 0.0 -100.0]\n"
1870 "E.Coli position [ 65 - 69]\n"
1871 "Max. nongroup hits 15\n"
1872 "Min. group hits 50%\n"
1873 "Target le apos ecol qual grps G+C temp Probe | Decrease T by n*.3C -> probe matches n non group species\n"
1874 "GGCGGACG 8 A=78 67 39 2 87.5 30.0 CGUCCGCC | 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13\n"
1875 "GCGGACGG 8 A+ 1 68 39 2 87.5 30.0 CCGUCCGC | 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13\n"
1876 "GCGGCGGA 8 A- 2 65 39 2 87.5 30.0 UCCGCCGC | 10 10 11 11 11 11 11 14 14 14 14 14 14 14 14 14 14 14 14 14\n"
1877 "CGGCGGAC 8 A- 1 66 39 2 87.5 30.0 GUCCGCCG | 10 10 10 10 10 10 10 13 13 13 13 13 13 13 14 14 14 14 14 14\n"
1878 "CGGACGGG 8 A+ 2 69 20 1 87.5 30.0 CCCGUCCG | 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n";
1880 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1884 const char *arguments[] = {
1886 "designnames=ClnCorin#CPPParap#ClfPerfr",
1887 "designprobelength=16",
1888 "designmintargets=100",
1891 const char *expected =
1892 "Probe design parameters:\n"
1893 "Length of probe 16\n"
1894 "Temperature [ 0.0 -400.0]\n"
1895 "GC-content [30.0 - 80.0]\n"
1896 "E.Coli position [any]\n"
1897 "Max. nongroup hits 2 (lowest rejected nongroup hits: 6)\n"
1898 "Min. group hits 100% (max. rejected coverage: 67%)\n"
1899 "Target le apos ecol qual grps G+C temp Probe sequence | Decrease T by n*.3C -> probe matches n non group species\n"
1900 "CGAAAGGAAGAUUAAU 16 A=94 82 58 3 31.2 42.0 AUUAAUCUUCCUUUCG | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1901 "AAGGAAGAUUAAUACC 16 A+ 3 85 58 3 31.2 42.0 GGUAUUAAUCUUCCUU | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1902 "AAGUCGAGCGAUGAAG 16 B=20 19 52 3 50.0 48.0 CUUCAUCGCUCGACUU | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3\n"
1903 "CAAGUCGAGCGAUGAA 16 B- 1 18 37 3 50.0 48.0 UUCAUCGCUCGACUUG | 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3\n"
1904 "GUCGAGCGAUGAAGUU 16 B+ 2 21 31 3 50.0 48.0 AACUUCAUCGCUCGAC | - - - - - - - - - - 1 1 1 1 1 1 1 1 1 1\n"
1905 "UCAAGUCGAGCGAUGA 16 B- 2 17 28 3 50.0 48.0 UCAUCGCUCGACUUGA | 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3\n"
1906 "AGUCGAGCGAUGAAGU 16 B+ 1 20 19 3 50.0 48.0 ACUUCAUCGCUCGACU | - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1907 "AUCAAGUCGAGCGAUG 16 B- 3 16 16 3 50.0 48.0 CAUCGCUCGACUUGAU | 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 10 10 10\n"
1908 "GAUCAAGUCGAGCGAU 16 B- 4 15 4 3 50.0 48.0 AUCGCUCGACUUGAUC | - 2 2 2 3 3 3 3 10 10 10 10 10 10 10 10 10 10 10 10\n"
1909 "UGAUCAAGUCGAGCGA 16 B- 5 14 4 3 50.0 48.0 UCGCUCGACUUGAUCA | - 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10\n";
1911 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1915 const char *arguments[] = {
1917 "designnames=ClnCorin#Unknown1#CPPParap#ClfPerfr#Unknown2",
1918 "designprobelength=16",
1919 "designmintargets=100",
1922 "designsequence=---CGAAAGGAAGAUUAAU------------------AAGUCGAGCGAUGAAG-CAAGUCGAGCGAUGAA-GUCGAGCGAUGAAGUU-UCAAGUCGAGCGAUGA-AGUCGAGCGAUGAAGU-AUCAAGUCGAGCGAUG-GAUCAAGUCGAGCGAU-UGAUCAAGUCGAGCGA",
1923 "designsequence=---CGAAAGGAAGAUUAAU-AAGGAAGAUUAAUACC-AAGUCGAGCGAUGAAG-CAAGUCGAGCGAUGAA-GUCGAGCGAUGAAGUU-UCAAGUCGAGCGAUGA-AGUCGAGCGAUGAAGU-AUCAAGUCGAGCGAUG------------------UGAUCAAGUCGAGCGA",
1925 const char *expected =
1926 "Probe design parameters:\n"
1927 "Length of probe 16\n"
1928 "Temperature [ 0.0 -400.0]\n"
1929 "GC-content [30.0 - 80.0]\n"
1930 "E.Coli position [any]\n"
1931 "Max. nongroup hits 2\n"
1932 "Min. group hits 100% (max. rejected coverage: 80%)\n"
1933 "Target le apos ecol qual grps G+C temp Probe sequence | Decrease T by n*.3C -> probe matches n non group species\n"
1934 "CGAAAGGAAGAUUAAU 16 A=94 82 96 5 31.2 42.0 AUUAAUCUUCCUUUCG | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1936 "AAGUCGAGCGAUGAAG 16 B=20 19 86 5 50.0 48.0 CUUCAUCGCUCGACUU | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3\n"
1937 "CAAGUCGAGCGAUGAA 16 B- 1 18 61 5 50.0 48.0 UUCAUCGCUCGACUUG | 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3\n"
1938 "GUCGAGCGAUGAAGUU 16 B+ 2 21 51 5 50.0 48.0 AACUUCAUCGCUCGAC | - - - - - - - - - - 1 1 1 1 1 1 1 1 1 1\n"
1939 "UCAAGUCGAGCGAUGA 16 B- 2 17 46 5 50.0 48.0 UCAUCGCUCGACUUGA | 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3\n"
1940 "AGUCGAGCGAUGAAGU 16 B+ 1 20 31 5 50.0 48.0 ACUUCAUCGCUCGACU | - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1941 "AUCAAGUCGAGCGAUG 16 B- 3 16 26 5 50.0 48.0 CAUCGCUCGACUUGAU | 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 10 10 10\n"
1943 "UGAUCAAGUCGAGCGA 16 B- 5 14 6 5 50.0 48.0 UCGCUCGACUUGAUCA | - 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10\n";
1945 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1948 const char *arguments[] = {
1950 "designnames=VbrFurni",
1951 "designprobelength=8",
1955 const char *expected =
1956 "Probe design parameters:\n"
1957 "Length of probe 8\n"
1958 "Temperature [ 0.0 -400.0]\n"
1959 "GC-content [80.0 -100.0]\n"
1960 "E.Coli position [any]\n"
1961 "Max. nongroup hits 0 (lowest rejected nongroup hits: 2)\n"
1962 "Min. group hits 50%\n"
1963 "Target le apos ecol qual grps G+C temp Probe | Decrease T by n*.3C -> probe matches n non group species\n"
1965 "CGGCAGCG 8 A=28 23 20 1 87.5 30.0 CGCUGCCG | - - - - - - - - - - - - - - - - - - - -\n"
1966 #else // !defined(RES_64)
1967 "CGGCAGCG 8 A=28 23 20 1 87.5 30.0 CGCUGCCG | - - - - - - - - - - - - - - - - - - - 3\n"
1969 "UGGGCGGC 8 B=67 60 8 1 87.5 30.0 GCCGCCCA | - - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1\n"
1971 "CGGCGAGC 8 B+ 4 60 8 1 87.5 30.0 GCUCGCCG | - - - - - - - 2 2 2 2 2 2 2 3 3 3 3 3 3\n"
1972 #else // !defined(RES_64)
1973 "CGGCGAGC 8 B+ 4 60 8 1 87.5 30.0 GCUCGCCG | - - - - - - - 2 2 2 2 2 2 2 4 4 4 4 4 5\n"
1975 "GGGCGGCG 8 B+ 1 60 8 1 100.0 32.0 CGCCGCCC | - - - - - - - 3 3 3 3 3 3 3 3 3 3 3 3 3\n"
1976 "GGCGGCGA 8 B+ 2 60 8 1 87.5 30.0 UCGCCGCC | - - - - - - - 3 3 3 3 3 3 3 3 3 3 3 3 3\n"
1977 "GCGGCGAG 8 B+ 3 60 3 1 87.5 30.0 CUCGCCGC | - - 1 1 1 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4\n";
1979 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
1982 const char *arguments[] = {
1984 "designnames=HllHalod#VbhChole#VblVulni#VbrFurni#PtVVVulg",
1985 "designprobelength=14",
1986 "designmintargets=100",
1991 const char *expected =
1992 "Probe design parameters:\n"
1993 "Length of probe 14\n"
1994 "Temperature [ 0.0 -400.0]\n"
1995 "GC-content [70.0 -100.0]\n"
1996 "E.Coli position [any]\n"
1997 "Max. nongroup hits 4\n"
1998 "Min. group hits 100% (max. rejected coverage: 80%)\n"
1999 "Target le apos ecol qual grps G+C temp Probe sequence | Decrease T by n*.3C -> probe matches n non group species\n"
2000 "GAGCGGCGGACGGA 14 A=75 64 21 5 78.6 50.0 UCCGUCCGCCGCUC | - - - - 1 1 1 1 1 1 5 5 9 9 10 10 10 10 10 10\n"
2001 "CGAGCGGCGGACGG 14 A- 1 63 21 5 85.7 52.0 CCGUCCGCCGCUCG | - - - - 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 9\n"
2002 "AGCGGCGGACGGAC 14 A+ 0 64 21 5 78.6 50.0 GUCCGUCCGCCGCU | 4 7 7 7 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10\n";
2004 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
2007 const char *arguments[] = {
2009 "designnames=HllHalod#VbhChole#VblVulni#VbrFurni#PtVVVulg",
2010 "designprobelength=14",
2011 "designmintargets=100",
2016 const char *expected =
"";
2018 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
2023 void TEST_SLOW_probe_design_errors() {
2026 bool use_gene_ptserver =
false;
2028 const char *arguments[] = {
2030 "designnames=CPPParap#PsAAAA00",
2031 "designprobelength=3",
2033 const char *expected_error =
"Specified min. probe length 3 is below the min. allowed probe length of 8";
2035 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2038 const char *arguments[] = {
2040 "designnames=CPPParap#PsAAAA00",
2041 "designprobelength=15",
2042 "designmaxprobelength=12",
2044 const char *expected_error =
"Max. probe length 12 is below the specified min. probe length of 15";
2046 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2049 const char *expected_error =
"Sequence contains only 0 bp. Impossible design request for one of the added sequences";
2051 const char *arguments[] = {
2054 "designprobelength=16",
2056 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2059 const char *arguments[] = {
2061 "designsequence=-------------",
2062 "designprobelength=16",
2064 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2068 const char *arguments[] = {
2070 "designsequence=ACGTACGTACGTACGT",
2071 "designprobelength=16",
2073 const char *expected_error =
"Got 0 unknown marked species, but 1 custom sequence was added (has to match)";
2074 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2077 const char *arguments[] = {
2079 "designnames=Unknown",
2080 "designprobelength=16",
2082 const char *expected_error =
"No species marked - no probes designed";
2083 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2086 const char *arguments[] = {
2088 "designnames=Unknown#CPPParap",
2089 "designprobelength=16",
2091 const char *expected_error =
"Got 1 unknown marked species, but 0 custom sequences were added (has to match)";
2092 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2095 const char *expected_error =
"Sequence contains only 0 bp. Impossible design request for one of the added sequences";
2097 const char *arguments[] = {
2099 "designnames=Unknown",
2101 "designprobelength=16",
2103 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2106 const char *arguments[] = {
2108 "designnames=Unknown",
2109 "designsequence=-------------",
2110 "designprobelength=16",
2112 TEST_ARB_PROBE__REPORTS_ERROR(
ARRAY_ELEMS(arguments), arguments, expected_error);
2117 void TEST_SLOW_match_designed_probe() {
2120 bool use_gene_ptserver =
false;
2121 const char *arguments[] = {
2123 "matchsequence=UCAAGUCGAGCGAUGAAG",
2125 CCP expected =
" name---- fullname mis N_mis wmis pos ecoli rev 'UCAAGUCGAGCGAUGAAG'\1"
2126 "ClnCorin\1" " ClnCorin 0 0 0.0 18 17 0 .GAGUUUGA-==================-UUCCUUCGG\1"
2127 "CltBotul\1" " CltBotul 0 0 0.0 18 17 0 ........A-==================-CUUCUUCGG\1"
2128 "CPPParap\1" " CPPParap 0 0 0.0 18 17 0 AGAGUUUGA-==================-UUCCUUCGG\1"
2129 "ClfPerfr\1" " ClfPerfr 0 0 0.0 18 17 0 AGAGUUUGA-==================-UUUCCUUCG\1";
2131 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
2134 void TEST_SLOW_get_existing_probes() {
2137 bool use_gene_ptserver =
false;
2139 const char *arguments[] = {
2142 "iterate_amount=10",
2145 "AAACCGGGGCTAATACCGGA;AAACGACTGTTAATACCGCA;AAACGATGGAAGCTTGCTTC;AAACGATGGCTAATACCGCA;AAACGGATTAGCGGCGGGAC;"
2146 "AAACGGGCGCTAATACCGCA;AAACGGTCGCTAATACCGGA;AAACGGTGGCTAATACCGCA;AAACGTACGCTAATACCGCA;AAACTCAAGCTAATACCGCA";
2148 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
2151 const char *arguments[] = {
2154 "iterate_amount=20",
2155 "iterate_separator=:",
2158 "AAACCGGGGCTAATA:AAACGACTGTTAATA:AAACGATGGAAGCTT:AAACGATGGCTAATA:AAACGGATTAGCGGC:AAACGGGCGCTAATA:AAACGGTCGCTAATA:"
2159 "AAACGGTGGCTAATA:AAACGTACGCTAATA:AAACTCAAGCTAATA:AAACTCAGGCTAATA:AAACTGGAGAGTTTG:AAACTGTAGCTAATA:AAACTTGTTTCTCGG:"
2160 "AAAGAGGTGCTAATA:AAAGCTTGCTTTCTT:AAAGGAACGCTAATA:AAAGGAAGATTAATA:AAAGGACAGCTAATA:AAAGGGACTTCGGTC";
2162 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
2165 const char *arguments[] = {
2169 "iterate_readable=0",
2172 "\2\2\2\3\3\4\4\4\4\3;\2\2\2\3\4\2\3\5\4\5;\2\2\2\3\4\2\5\4\4\2;\2\2\2\3\4\2\5\4\4\3;\2\2\2\3\4\4\2\5\5\2";
2174 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
2177 const char *arguments[] = {
2180 "iterate_amount=70",
2184 "AAA;AAC;AAG;AAU;ACA;ACC;ACG;ACU;AGA;AGC;AGG;AGU;AUA;AUC;AUG;AUU;"
2185 "CAA;CAC;CAG;CAU;CCA;CCC;CCG;CCU;CGA;CGC;CGG;CGU;CUA;CUC;CUG;CUU;"
2186 "GAA;GAC;GAG;GAU;GCA;GCC;GCG;GCU;GGA;GGC;GGG;GGU;GUA;GUC;GUG;GUU;"
2187 "UAA;UAC;UAG;UAU;UCA;UCC;UCG;UCU;UGA;UGC;UGG;UGU;UUA;UUC;UUG;UUU";
2189 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
2192 const char *arguments[] = {
2195 "iterate_amount=20",
2203 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments, expected);
2209 void TEST_SLOW_index_dump() {
2210 for (
int use_gene_ptserver = 0; use_gene_ptserver <= 1; use_gene_ptserver++) {
2211 const char *dumpfile = use_gene_ptserver ?
"index_gpt.dump" :
"index_pt.dump";
2214 const char *arguments[] = {
2218 TEST_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments,
"ok");
2220 #if defined(TEST_AUTO_UPDATE)
2221 TEST_COPY_FILE(dumpfile, dumpfile_exp);
2222 #else // !defined(TEST_AUTO_UPDATE)
2227 free((
char*)arguments[1]);
2232 #undef TEST_AUTO_UPDATE
2240 using namespace std;
2242 typedef set<string> Matches;
2244 inline void parseMatches(
char*& answer, Matches& matches) {
2249 for (
size_t i = 1; i<match_results.
size(); i += 2) {
2250 if (match_results[i][0]) {
2251 matches.insert(match_results[i]);
2256 inline void getMatches(
const char *
probe, Matches& matches) {
2257 bool use_gene_ptserver =
false;
2259 const char *arguments[] = {
2263 TEST_RUN_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments);
2264 parseMatches(answer, matches);
2268 inline string matches2hitlist(
const Matches& matches) {
2270 if (!matches.empty()) {
2271 for (Matches::const_iterator m = matches.begin(); m != matches.end(); ++m) {
2272 hitlist = hitlist +
',' + *m;
2274 hitlist = hitlist.substr(1);
2279 inline void extract_first_but_not_second(
const Matches& first,
const Matches& second, Matches&
result) {
2280 set_difference(first.begin(), first.end(),
2281 second.begin(), second.end(),
2282 inserter(result, result.begin()));
2289 #if defined(TEST_INDEX_COMPLETENESS)
2291 void TEST_SLOW_find_unmatched_probes() {
2292 bool use_gene_ptserver =
false;
2297 const char *arguments[] = {
2300 "iterate_amount=1000000",
2303 TEST_RUN_ARB_PROBE(
ARRAY_ELEMS(arguments), arguments);
2309 for (
size_t lp = 0; lp<fullProbes.
size(); ++lp) {
2310 const char *fullProbe = fullProbes[lp];
2312 size_t fullLen = strlen(fullProbe);
2316 getMatches(fullProbe, fullHits);
2319 bool fewerHitsSeen =
false;
2321 for (
size_t subLen = fullLen-1; !fewerHitsSeen && subLen >= 10; --subLen) {
2323 subProbe[subLen] = 0;
2325 for (
size_t pos = 0; pos+subLen <= fullLen; ++pos) {
2326 Matches subHits, onlyFull;
2328 memcpy(subProbe, fullProbe+pos, subLen);
2329 getMatches(subProbe, subHits);
2330 extract_first_but_not_second(fullHits, subHits, onlyFull);
2332 if (!onlyFull.empty()) {
2333 fprintf(stderr,
"TEST_PARTIAL_COVERS_FULL_PROBE__BROKEN(\"%s\", \"%s\");\n", subProbe, fullProbe);
2334 fewerHitsSeen =
true;
2346 using namespace std;
2353 Matches matchFull, matchPart;
2354 getMatches(full, matchFull);
2355 getMatches(part, matchPart);
2360 extract_first_but_not_second(matchFull, matchPart, onlyFirst);
2362 string only_hit_by_full = matches2hitlist(onlyFirst);
2367 return all().ofgroup(expected);
2370 #define TEST_PARTIAL_COVERS_FULL_PROBE(part,full) TEST_EXPECTATION(partial_covers_full_probe(part, full))
2371 #define TEST_PARTIAL_COVERS_FULL_PROBE__BROKEN(part,full) TEST_EXPECTATION__BROKEN(partial_covers_full_probe(part, full))
2373 void TEST_SLOW_unmatched_probes() {
2374 TEST_PARTIAL_COVERS_FULL_PROBE(
"CCUCCUUUCU",
"GAUUAAUACCCCUCCUUUCU");
2376 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUC",
"GGGGAACCUGCGGUUGGAUC");
2377 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCA",
"GGGAACCUGCGGUUGGAUCA");
2378 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCAC",
"GGAACCUGCGGUUGGAUCAC");
2379 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCACC",
"GAACCUGCGGUUGGAUCACC");
2380 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCACCU",
"AACCUGCGGUUGGAUCACCU");
2381 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCACCUC",
"ACCUGCGGUUGGAUCACCUC");
2382 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCACCUCC",
"CCUGCGGUUGGAUCACCUCC");
2383 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCACCUCCU",
"CUGCGGUUGGAUCACCUCCU");
2384 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCACCUCCUU",
"UGCGGUUGGAUCACCUCCUU");
2385 TEST_PARTIAL_COVERS_FULL_PROBE(
"CGGUUGGAUCACCUCCUUA",
"GCGGUUGGAUCACCUCCUUA");
2387 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUC",
"GGGGAACCUGGCGCUGGAUC");
2388 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCA",
"GGGAACCUGGCGCUGGAUCA");
2389 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCAC",
"GGAACCUGGCGCUGGAUCAC");
2390 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCACC",
"GAACCUGGCGCUGGAUCACC");
2391 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCACCU",
"AACCUGGCGCUGGAUCACCU");
2392 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCACCUC",
"ACCUGGCGCUGGAUCACCUC");
2393 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCACCUCC",
"CCUGGCGCUGGAUCACCUCC");
2394 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCACCUCCU",
"CUGGCGCUGGAUCACCUCCU");
2395 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCACCUCCUU",
"UGGCGCUGGAUCACCUCCUU");
2396 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCGCUGGAUCACCUCCUUU",
"GGCGCUGGAUCACCUCCUUU");
2398 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCAC",
"GGAACCUGCGGCUGGAUCAC");
2399 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCACC",
"GAACCUGCGGCUGGAUCACC");
2400 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCACCU",
"AACCUGCGGCUGGAUCACCU");
2401 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCACCUC",
"ACCUGCGGCUGGAUCACCUC");
2402 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCACCUCC",
"CCUGCGGCUGGAUCACCUCC");
2403 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCACCUCCU",
"CUGCGGCUGGAUCACCUCCU");
2404 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCACCUCCUU",
"UGCGGCUGGAUCACCUCCUU");
2405 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCACCUCCUUU",
"GCGGCUGGAUCACCUCCUUU");
2406 TEST_PARTIAL_COVERS_FULL_PROBE(
"GCUGGAUCACCUCCUUUC",
"CGGCUGGAUCACCUCCUUUC");
2409 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAG",
"AAUUGAAGAGUUUGAUCAAG");
2410 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGU",
"AUUGAAGAGUUUGAUCAAGU");
2411 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGUC",
"UUGAAGAGUUUGAUCAAGUC");
2412 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGUCG",
"UGAAGAGUUUGAUCAAGUCG");
2413 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGUCGA",
"GAAGAGUUUGAUCAAGUCGA");
2414 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGUCGAG",
"AAGAGUUUGAUCAAGUCGAG");
2415 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGUCGAGC",
"AGAGUUUGAUCAAGUCGAGC");
2416 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGUCGAGCG",
"GAGUUUGAUCAAGUCGAGCG");
2417 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGUCGAGCGG",
"AGUUUGAUCAAGUCGAGCGG");
2418 TEST_PARTIAL_COVERS_FULL_PROBE(
"UUUGAUCAAGUCGAGCGGU",
"GUUUGAUCAAGUCGAGCGGU");
2421 void TEST_SLOW_variable_defaults_in_server() {
2442 MAIN_LOCS, PT_LOCS, locs,
2446 #define LOCAL(rvar) prev_read_##rvar
2449 #define FREE_LOCAL_long(rvar)
2450 #define FREE_LOCAL_charp(rvar) free(LOCAL(rvar))
2451 #define FREE_LOCAL(type,rvar) FREE_LOCAL_##type(rvar)
2453 #define TEST__READ(type,rvar,expected) \
2455 TEST_EXPECT_ZERO(aisc_get(link, PT_LOCS, locs, rvar, &(LOCAL(rvar)), NULp)); \
2456 TEST_EXPECT_EQUAL(LOCAL(rvar), expected); \
2457 FREE_LOCAL(type,rvar); \
2459 #define TEST_WRITE(type,rvar,val) \
2460 TEST_EXPECT_ZERO(aisc_put(link, PT_LOCS, locs, rvar, (type)val, NULp))
2461 #define TEST_CHANGE(type,rvar,val) \
2463 TEST_WRITE(type, rvar, val); \
2464 TEST__READ(type, rvar, val); \
2466 #define TEST_DEFAULT_CHANGE(ctype,type,remote_variable,default_value,other_value) \
2468 ctype DEFAULT_VALUE = default_value; \
2469 ctype OTHER_VALUE = other_value; \
2470 type LOCAL(remote_variable); \
2471 TEST__READ(type, remote_variable, DEFAULT_VALUE); \
2472 TEST_CHANGE(type, remote_variable, OTHER_VALUE); \
2473 TEST_CHANGE(type, remote_variable, DEFAULT_VALUE); \
2476 TEST_DEFAULT_CHANGE(
const long,
long, LOCS_MATCH_ALSO_REVCOMP, 1, 67);
2477 typedef char *charp;
2478 typedef const char *ccharp;
2479 TEST_DEFAULT_CHANGE(ccharp, charp, LOCS_LOGINTIME,
"notime",
"sometime");
2486 #endif // UNIT_TESTS
static const char * AP_probe_pt_look_for_server(ARB_ERROR &error)
int ARB_main(int argc, char *argv[])
const char * DESIGNSEQUENCE
#define is_less_than(val)
#define implicated(hypothesis, conclusion)
return string(buffer, length)
static char * AP_probe_design_event(ARB_ERROR &error)
const char * ITERATE_SEPARATOR
int aisc_close(aisc_com *link, AISC_Object &object)
#define TEST_SETUP_GLOBAL_ENVIRONMENT(modulename)
#define AISC_MAX_STRING_LEN
char * ARB_strdup(const char *str)
GB_ERROR arb_look_and_start_server(long magic_number, const char *arb_tcp_env)
static int init_local_com_struct()
int aisc_nput(aisc_com *link, int o_type, const AISC_Object &object,...)
static char * AP_dump_index_event(ARB_ERROR &error)
void cat(const char *from)
#define ARRAY_ELEMS(array)
static const char * getString(const char *param, const char *val, const char *description)
static char * AP_probe_match_event(ARB_ERROR &error)
GBS_strstruct * GBS_stropen(long init_size)
int aisc_put(aisc_com *link, int o_type, const AISC_Object &object,...)
GB_ERROR GB_await_error()
#define TEST_EXPECT(cond)
const char * GBS_read_arb_tcp(const char *env)
TYPE * ARB_alloc(size_t nelem)
static const char ** pargv
static bool parseCommandLine(int argc, const char *const *const argv)
#define TEST_REJECT_NULL(n)
void GBS_strcat(GBS_strstruct *strstr, const char *ptr)
static void error(const char *msg)
GB_CSTR GB_path_in_ARBHOME(const char *relative_path)
void expect_no_error() const
void GBT_splitNdestroy_string(ConstStrArray &names, char *&namelist, const char *separator, bool dropEmptyTokens)
expectation_group & add(const expectation &e)
#define TEST_EXPECT_ZERO_OR_SHOW_ERRNO(iocond)
#define does_differ_from_NULL()
static char * execute(ARB_ERROR &error)
#define TEST_EXPECT_ZERO(cond)
#define __ATTR__REDUCED_OPTIMIZE
#define AISC_MAGIC_NUMBER
void GBS_chrcat(GBS_strstruct *strstr, char ch)
fputs(TRACE_PREFIX, stderr)
static int getInt(const char *param, int val, int min, int max, const char *description)
GB_CSTR GB_getenvUSER(void)
aisc_com * aisc_open(const char *path, AISC_Object &main_obj, long magic, GB_ERROR *error)
static char * AP_probe_iterate_event(ARB_ERROR &error)
char * GBS_strclose(GBS_strstruct *strstr)
const char * GBS_static_string(const char *str)
#define TEST_EXPECT_NO_ERROR(call)
int aisc_get(aisc_com *link, int o_type, const AISC_Object &object,...)
PTserverConnection(ARB_ERROR &error)
std::string extract(const std::string &s) const
const char * GBS_ptserver_tag(int id)
#define TEST_EXPECT_TEXTFILES_EQUAL(fgot, fwant)
#define TEST_EXPECT_EQUAL(expr, want)
int aisc_create(aisc_com *link, int father_type, const AISC_Object &father, int attribute, int object_type, AISC_Object &object,...)
char * GBS_global_string_copy(const char *templat,...)
GB_write_int const char s