Example #1
0
NodeEndRef NodeEndTable::find(const Kmer &kmer) const
{
        // chose a representative kmer
        Kmer kmerRC = kmer.getReverseComplement();
        bool reverse = (doubleStranded) && (kmerRC < kmer);
        const Kmer &repKmer = (reverse) ? kmerRC : kmer;

        return NodeEndRef(table.find(repKmer), reverse);
}
Example #2
0
bool NodeEndTable::insert(const Kmer& kmer, NodeID nodeID)
{
        assert(nodeID != 0);    // forbidden value

        // chose a representative kmer
        Kmer kmerRC = kmer.getReverseComplement();
        bool reverse = (doubleStranded) && (kmerRC < kmer);
        const Kmer &repKmer = (reverse) ? kmerRC : kmer;

        if (reverse)
                nodeID = -nodeID;

        return table.insert(Value(repKmer, NodeEndMD(nodeID))).second;
}