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)
 Maps three DNA bytes to a 6-bit triplet index, or invalidSymbol.
 

Static Public Attributes

static constexpr uint64_t symbolWidth = 3
 Input bytes per encoded symbol (one DNA triplet).
 
static constexpr uint64_t symbolCount = 64
 Number of packed triplet symbols.
 
static constexpr uint8_t invalidSymbol = 0xFFu
 Sentinel returned by encode for invalid triplets.
 
static constexpr uint8_t separator = 'N'
 Separator byte between concatenated records.
 
static constexpr char validBytes [] = "ACGT"
 Representative valid bytes for compile-time separator checks.
 

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 150 of file Alphabet.cuh.

Member Function Documentation

◆ encode()

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

Maps three DNA bytes to a 6-bit triplet index, or invalidSymbol.

Parameters
inputPointer to three raw bytes.

Definition at line 167 of file Alphabet.cuh.

169 {
170 const uint8_t a = DnaAlphabet::encode(input + 0);
171 const uint8_t b = DnaAlphabet::encode(input + 1);
172 const uint8_t c = DnaAlphabet::encode(input + 2);
173 const uint8_t valid = (a != invalidSymbol) & (b != invalidSymbol) & (c != invalidSymbol);
174 const uint8_t packed = (a << 4u) | (b << 2u) | c;
175 const uint8_t mask = -valid;
176 return (packed & mask) | (invalidSymbol & ~mask);
177 }
constexpr __host__ __device__ static __forceinline__ uint8_t encode(const char *input)
Maps one byte to a 2-bit symbol index, or invalidSymbol.
Definition Alphabet.cuh:132
static constexpr uint8_t invalidSymbol
Sentinel returned by encode for invalid triplets.
Definition Alphabet.cuh:156
Here is the call graph for this function:

Member Data Documentation

◆ invalidSymbol

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

Sentinel returned by encode for invalid triplets.

Definition at line 156 of file Alphabet.cuh.

◆ separator

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

Separator byte between concatenated records.

Definition at line 158 of file Alphabet.cuh.

◆ symbolCount

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

Number of packed triplet symbols.

Definition at line 154 of file Alphabet.cuh.

◆ symbolWidth

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

Input bytes per encoded symbol (one DNA triplet).

Definition at line 152 of file Alphabet.cuh.

◆ validBytes

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

Representative valid bytes for compile-time separator checks.

Definition at line 160 of file Alphabet.cuh.


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