cuSBF
Loading...
Searching...
No Matches
Static Public Member Functions | Static Public Attributes | List of all members
cusbf::DnaTripletAlphabet Struct Reference

An alphabet that encodes non-overlapping DNA triplets as single symbols. More...

Static Public Member Functions

constexpr __host__ __device__ static __forceinline__ uint8_t encode (const char *input)
 

Static Public Attributes

static constexpr uint64_t symbolWidth = 3
 
static constexpr uint64_t symbolCount = 64
 
static constexpr uint8_t invalidSymbol = 0xFFu
 
static constexpr uint8_t separator = 'N'
 
static constexpr char validBytes [] = "ACGT"
 

Detailed Description

An alphabet that encodes non-overlapping DNA triplets as single symbols.

Each triplet is encoded as a 6-bit value. Invalid bytes in any triplet position produce invalidSymbol.

Definition at line 138 of file Alphabet.cuh.

Member Function Documentation

◆ encode()

constexpr __host__ __device__ static __forceinline__ uint8_t cusbf::DnaTripletAlphabet::encode ( const char *  input)
inlinestaticconstexpr

Definition at line 145 of file Alphabet.cuh.

147 {
148 const uint8_t a = DnaAlphabet::encode(input + 0);
149 const uint8_t b = DnaAlphabet::encode(input + 1);
150 const uint8_t c = DnaAlphabet::encode(input + 2);
151 const uint8_t valid = (a != invalidSymbol) & (b != invalidSymbol) & (c != invalidSymbol);
152 const uint8_t packed = (a << 4u) | (b << 2u) | c;
153 const uint8_t mask = -valid;
154 return (packed & mask) | (invalidSymbol & ~mask);
155 }
constexpr __host__ __device__ static __forceinline__ uint8_t encode(const char *input)
Definition Alphabet.cuh:120
static constexpr uint8_t invalidSymbol
Definition Alphabet.cuh:141
Here is the call graph for this function:

Member Data Documentation

◆ invalidSymbol

constexpr uint8_t cusbf::DnaTripletAlphabet::invalidSymbol = 0xFFu
staticconstexpr

Definition at line 141 of file Alphabet.cuh.

◆ separator

constexpr uint8_t cusbf::DnaTripletAlphabet::separator = 'N'
staticconstexpr

Definition at line 142 of file Alphabet.cuh.

◆ symbolCount

constexpr uint64_t cusbf::DnaTripletAlphabet::symbolCount = 64
staticconstexpr

Definition at line 140 of file Alphabet.cuh.

◆ symbolWidth

constexpr uint64_t cusbf::DnaTripletAlphabet::symbolWidth = 3
staticconstexpr

Definition at line 139 of file Alphabet.cuh.

◆ validBytes

constexpr char cusbf::DnaTripletAlphabet::validBytes[] = "ACGT"
staticconstexpr

Definition at line 143 of file Alphabet.cuh.


The documentation for this struct was generated from the following file: