Expand description
Represent kmers with statically know length in compact integer types
A kmer is a DNA sequence with statically-known length K. The sequence is stored the smallest possible integer type
Efficient methods for reverse complement and shifting new bases into the left or right of a sequence are provided.
Kmers implement Eq to test if two kmers represent the same string.
Kmers implement Ord, which corresponds to the natural lexicographic ordering.
use debruijn::*;
use debruijn::kmer::*;
let k1 = Kmer16::from_ascii(b"ACGTACGTACGTACGT");
// Reverse complement
let rc_k1 = k1.rc();
// Double reverse complement
let k1_copy = rc_k1.rc();
assert_eq!(k1, k1_copy);
// Push one base onto the left
assert_eq!(k1.extend_left(base_to_bits(b'T')), Kmer16::from_ascii(b"TACGTACGTACGTACG"));
// Generate a set of kmers from a string, then sort
let mut all_kmers = Kmer16::kmers_from_ascii(b"TACGTACGTACGTACGTT");
all_kmers.sort();
assert_eq!(all_kmers,
vec![
Kmer16::from_ascii(b"ACGTACGTACGTACGT"),
Kmer16::from_ascii(b"CGTACGTACGTACGTT"),
Kmer16::from_ascii(b"TACGTACGTACGTACG")
]);Structs§
- IntKmer
- A Kmer sequence with a statically know K. K will fill the underlying integer type.
- K2
- Marker trait for generating K=6 Kmers
- K3
- Marker trait for generating K=3 Kmers
- K4
- Marker trait for generating K=4 Kmers
- K5
- Marker trait for generating K=5 Kmers
- K6
- Marker trait for generating K=6 Kmers
- K7
- Marker trait for generating K=7 Kmers
- K9
- Marker trait for generating K=9 Kmers
- K10
- Marker trait for generating K=10 Kmers
- K11
- Marker trait for generating K=11 Kmers
- K12
- Marker trait for generating K=12 Kmers
- K13
- Marker trait for generating K=13 Kmers
- K14
- Marker trait for generating K=14 Kmers
- K15
- Marker trait for generating K=15 Kmers
- K17
- Marker trait for generating K=17 Kmers
- K18
- Marker trait for generating K=18 Kmers
- K19
- Marker trait for generating K=19 Kmers
- K20
- Marker trait for generating K=20 Kmers
- K21
- Marker trait for generating K=21 Kmers
- K22
- Marker trait for generating K=22 Kmers
- K23
- Marker trait for generating K=23 Kmers
- K24
- Marker trait for generating K=24 Kmers
- K25
- Marker trait for generating K=25 Kmers
- K26
- Marker trait for generating K=26 Kmers
- K27
- Marker trait for generating K=27 Kmers
- K28
- Marker trait for generating K=28 Kmers
- K29
- Marker trait for generating K=29 Kmers
- K30
- Marker trait for generating K=30 Kmers
- K31
- Marker trait for generating K=31 Kmers
- K33
- Marker trait for generating K=33 Kmers
- K34
- Marker trait for generating K=34 Kmers
- K35
- Marker trait for generating K=35 Kmers
- K36
- Marker trait for generating K=36 Kmers
- K37
- Marker trait for generating K=37 Kmers
- K38
- Marker trait for generating K=38 Kmers
- K39
- Marker trait for generating K=39 Kmers
- K40
- Marker trait for generating K=40 Kmers
- K41
- Marker trait for generating K=41 Kmers
- K42
- Marker trait for generating K=42 Kmers
- K43
- Marker trait for generating K=43 Kmers
- K44
- Marker trait for generating K=44 Kmers
- K45
- Marker trait for generating K=45 Kmers
- K46
- Marker trait for generating K=46 Kmers
- K47
- Marker trait for generating K=47 Kmers
- K48
- Marker struct for generating K=48 Kmers
- K49
- Marker struct for generating K=49 Kmers
- K50
- Marker struct for generating K=50 Kmers
- K51
- Marker struct for generating K=51 Kmers
- K52
- Marker struct for generating K=52 Kmers
- K53
- Marker struct for generating K=53 Kmers
- K54
- Marker struct for generating K=54 Kmers
- K55
- Marker struct for generating K=55 Kmers
- K56
- Marker struct for generating K=56 Kmers
- K57
- Marker struct for generating K=57 Kmers
- K58
- Marker struct for generating K=58 Kmers
- K59
- Marker struct for generating K=59 Kmers
- K60
- Marker struct for generating K=60 Kmers
- K61
- Marker struct for generating K=61 Kmers
- K62
- Marker struct for generating K=62 Kmers
- K63
- Marker struct for generating K=63 Kmers
- VarInt
Kmer - A fixed-length Kmer sequence that may not fill the bits of T
Traits§
- IntHelp
- Trait for specialized integer operations used in DeBruijn Graph
- Kmer
Size - Helper trait for declaring the K value of a Kmer. Will be removed when const generics are available
Type Aliases§
- Kmer2
- 2-base kmer, backed by a single u8
- Kmer3
- 3-base kmer, backed by a single u8
- Kmer4
- 4-base kmer, backed by a single u8
- Kmer5
- 5-base kmer, backed by a single u16
- Kmer6
- 6-base kmer, backed by a single u16
- Kmer7
- 7-base kmer, backed by a single u16
- Kmer8
- 8-base kmer, backed by a single u16
- Kmer9
- 9-base kmer, backed by a single u32
- Kmer10
- 10-base kmer, backed by a single u32
- Kmer11
- 11-base kmer, backed by a single u32
- Kmer12
- 12-base kmer, backed by a single u32
- Kmer13
- 13-base kmer, backed by a single u32
- Kmer14
- 14-base kmer, backed by a single u32
- Kmer15
- 15-base kmer, backed by a single u32
- Kmer16
- 16-base kmer, backed by a single u32
- Kmer17
- 17-base kmer, backed by a single u64
- Kmer18
- 18-base kmer, backed by a single u64
- Kmer19
- 19-base kmer, backed by a single u64
- Kmer20
- 20-base kmer, backed by a single u64
- Kmer21
- 21-base kmer, backed by a single u64
- Kmer22
- 22-base kmer, backed by a single u64
- Kmer23
- 23-base kmer, backed by a single u64
- Kmer24
- 24-base kmer, backed by a single u64
- Kmer25
- 25-base kmer, backed by a single u64
- Kmer26
- 25-base kmer, backed by a single u64
- Kmer27
- 27-base kmer, backed by a single u64
- Kmer28
- 28-base kmer, backed by a single u64
- Kmer29
- 29-base kmer, backed by a single u64
- Kmer30
- 30-base kmer, backed by a single u64
- Kmer31
- 31-base kmer, backed by a single u64
- Kmer32
- 32-base kmer, backed by a single u64
- Kmer33
- 33-base kmer, backed by a single u128
- Kmer34
- 34-base kmer, backed by a single u128
- Kmer35
- 35-base kmer, backed by a single u128
- Kmer36
- 36-base kmer, backed by a single u128
- Kmer37
- 37-base kmer, backed by a single u128
- Kmer38
- 38-base kmer, backed by a single u128
- Kmer39
- 39-base kmer, backed by a single u128
- Kmer40
- 40-base kmer, backed by a single u128
- Kmer41
- 41-base kmer, backed by a single u128
- Kmer42
- 42-base kmer, backed by a single u128
- Kmer43
- 43-base kmer, backed by a single u128
- Kmer44
- 44-base kmer, backed by a single u128
- Kmer45
- 45-base kmer, backed by a single u128
- Kmer46
- 46-base kmer, backed by a single u128
- Kmer47
- 47-base kmer, backed by a single u128
- Kmer48
- 48-base kmer, backed by a single u128
- Kmer49
- 49-base kmer, backed by a single u128
- Kmer50
- 50-base kmer, backed by a single u128
- Kmer51
- 51-base kmer, backed by a single u128
- Kmer52
- 52-base kmer, backed by a single u128
- Kmer53
- 53-base kmer, backed by a single u128
- Kmer54
- 54-base kmer, backed by a single u128
- Kmer55
- 55-base kmer, backed by a single u128
- Kmer56
- 56-base kmer, backed by a single u128
- Kmer57
- 57-base kmer, backed by a single u128
- Kmer58
- 58-base kmer, backed by a single u128
- Kmer59
- 59-base kmer, backed by a single u128
- Kmer60
- 60-base kmer, backed by a single u128
- Kmer61
- 61-base kmer, backed by a single u128
- Kmer62
- 62-base kmer, backed by a single u128
- Kmer63
- 63-base kmer, backed by a single u128
- Kmer64
- 64-base kmer, backed by a single u128