| 170 | } |
| 171 | |
| 172 | std::vector<Sequence> |
| 173 | getTreeSequences( |
| 174 | const ContigNode& start, |
| 175 | const int overlap, |
| 176 | const int maxLength, |
| 177 | const bool forward, |
| 178 | const int maxPaths) |
| 179 | { |
| 180 | assert(overlap >= 0); |
| 181 | assert(maxLength > 0); |
| 182 | assert(maxPaths >= 1); |
| 183 | |
| 184 | auto traces = getTreeTraces(start, overlap, maxLength, forward, maxPaths); |
| 185 | |
| 186 | std::vector<Sequence> sequences; |
| 187 | sequences.reserve(traces.size()); |
| 188 | |
| 189 | for (const auto& trace : traces) { |
| 190 | Sequence sequence; |
| 191 | sequence.reserve(trace.size() * EXPECTED_BASES_PER_NODE); |
| 192 | if (forward) { |
| 193 | for (Trace::const_iterator it = trace.begin(); !(it == trace.end()); it++) { |
| 194 | sequence += it->treeSequence(); |
| 195 | } |
| 196 | } else { |
| 197 | for (Trace::const_reverse_iterator it = trace.rbegin(); !(it == trace.rend()); it++) { |
| 198 | sequence += it->treeSequence(); |
| 199 | } |
| 200 | } |
| 201 | sequences.push_back(sequence); |
| 202 | } |
| 203 | |
| 204 | return sequences; |
| 205 | } |
no test coverage detected