7 const char Query::ALPHABET_DNA[] = {'A', 'C', 'G', 'T', 'N'};
10 Query::Query(TextCollection const *tc_)
11 : pat(0), patlen(0), tc(tc_), debug(false), klimit(0),
12 textlen(tc->getLength()), ALPHABET(ALPHABET_DNA)
19 for (int i = 0; i < patlen / 2; ++i) {
21 pat[i] = pat[patlen - i - 1];
22 pat[patlen - i - 1] = c;
29 for (int i = 0; i < patlen; ++i)
32 case('A'): pat[i] = 'T'; break;
33 case('C'): pat[i] = 'G'; break;
34 case('G'): pat[i] = 'C'; break;
35 case('T'): pat[i] = 'A'; break;
36 case('a'): pat[i] = 't'; break;
37 case('c'): pat[i] = 'g'; break;
38 case('g'): pat[i] = 'c'; break;
39 case('a'): pat[i] = 't'; break;
40 case('N'): pat[i] = 'N'; break;
41 case('n'): pat[i] = 'n'; break;
43 std::cerr << "Query::align(): invalid alphabet ("<< pat[i] << ") given!" << std::endl;
49 TextCollection::document_result Query::align(uchar const *p, unsigned k)
53 this->patlen = std::strlen((char const *)p);
56 while (!smin.empty()) smin.pop();
57 while (!smax.empty()) smax.pop();
64 // Search reverse complemented?
67 this->pat = p->c_str();
68 while (!smin.empty()) smin.pop();
69 while (!smax.empty()) smax.pop();
76 revcmp(); // Restore orig string
79 TextCollection::document_result dr(result.begin(), result.end());