| 50 | /** Return the kmer which are adjacent to this kmer. */ |
| 51 | template <typename V, typename SymbolSet> |
| 52 | void generateSequencesFromExtension( |
| 53 | const V& currSeq, |
| 54 | extDirection dir, |
| 55 | SymbolSet extension, |
| 56 | std::vector<V>& outseqs) |
| 57 | { |
| 58 | typedef typename SymbolSet::Symbol Symbol; |
| 59 | |
| 60 | std::vector<V> extensions; |
| 61 | V extSeq(currSeq); |
| 62 | extSeq.shift(dir); |
| 63 | |
| 64 | // Check for the existance of the 4 possible extensions |
| 65 | for (unsigned i = 0; i < SymbolSet::NUM; ++i) { |
| 66 | // Does this sequence have an extension? |
| 67 | Symbol x(i); |
| 68 | if (extension.checkBase(x)) { |
| 69 | extSeq.setLastBase(dir, x); |
| 70 | outseqs.push_back(extSeq); |
| 71 | } |
| 72 | } |
| 73 | } |
| 74 | |
| 75 | /** Return the adjacency of this sequence. |
| 76 | * @param considerMarks when true, treat a marked vertex as having |
no test coverage detected