| 628 | |
| 629 | template<typename GraphT> |
| 630 | static inline ContigType |
| 631 | getContigType(const Path<Vertex>& contigPath, const GraphT& dbg) |
| 632 | { |
| 633 | if (edge(contigPath.back(), contigPath.front(), dbg).second) { |
| 634 | |
| 635 | Vertex v = contigPath.front().clone(); |
| 636 | v.shift(ANTISENSE, contigPath.back().kmer().getBase(0)); |
| 637 | |
| 638 | if (v.kmer() == contigPath.back().kmer()) |
| 639 | return CT_CIRCULAR; |
| 640 | else |
| 641 | return CT_HAIRPIN; |
| 642 | } |
| 643 | |
| 644 | return CT_LINEAR; |
| 645 | } |
| 646 | |
| 647 | /** Special case behaviour for circular/hairpin contigs */ |
| 648 | template<typename GraphT> |