gatb.core-API-0.0.0
|
Entry point for kmer management. More...
#include <Model.hpp>
Classes | |
struct | Count |
Structure associating a kmer value with an abundance value. More... | |
class | KmerCanonical |
Kmer type for the ModelCanonical class. More... | |
class | KmerDirect |
Kmer type for the ModelDirect class. More... | |
class | KmerMinimizer |
Kmer type for the ModelMinimizer class. More... | |
class | ModelAbstract |
class | ModelCanonical |
Model that handles "canonical" kmers, ie the minimum value of the direct kmer and its reverse complement. More... | |
class | ModelDirect |
Model that handles "direct" kmers, ie sequences of nucleotides. The associated value of such a kmer is computed as a polynom P(X) with X=4 and where the coefficients are in [0..3]. By convention, we use A=0, C=1, T=2 and G=3. More... | |
class | ModelMinimizer |
Model that handles kmers of the Model type + a minimizer. More... | |
Public Types | |
typedef tools::math::LargeInt<(span+31)/32 > | Type |
Entry point for kmer management.
This structure is only a container for other types defined inside. The specificity is that this structure is templated by a 'span' integer that represents the maximal kmer size supported (actually, the max value is 'span-1').
Inside this structure, we have the following main elements:
This structure must be used only with for 4 values (32,64,96,128 for instance, see Model.cpp), otherwise a compilation error occurs (more values could be added in the future).
A default value of 32 is defined for the template parameter, so writing 'Kmer<>::Model' represents a model that supports kmers of size up to 31 (included).
typedef tools::math::LargeInt<(span+31)/32> Type |
Alias type for the integer value of a kmer. We use the LargeInt class for supporting big integers. Note that the template parameter 'span' represents the maximal kmer size supported by the Kmer class. A conversion to the template parameter of LargeInt is done.