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

An alphabet for encoding protein sequences, consisting of the 20 standard amino acids plus common ambiguous and rare residue symbols: More...

Static Public Member Functions

constexpr __host__ __device__ static __forceinline__ uint8_t encode (const char *input)
 Maps one amino-acid letter to a 5-bit index, or invalidSymbol.
 

Static Public Attributes

static constexpr uint64_t symbolWidth = 1
 Input bytes per encoded symbol.
 
static constexpr uint64_t symbolCount = 26
 Number of letter symbols (A–Z).
 
static constexpr uint8_t invalidSymbol = 0xFFu
 Sentinel returned by encode for invalid input bytes.
 
static constexpr uint8_t separator = '*'
 Separator byte between concatenated records.
 
static constexpr char validBytes [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 Representative valid bytes for compile-time separator checks.
 

Detailed Description

An alphabet for encoding protein sequences, consisting of the 20 standard amino acids plus common ambiguous and rare residue symbols:

A through Z.

Each symbol is encoded as a unique 5-bit value from 0 to 25. Invalid bytes are encoded as 0xFF.

Definition at line 189 of file Alphabet.cuh.

Member Function Documentation

◆ encode()

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

Maps one amino-acid letter to a 5-bit index, or invalidSymbol.

Accepts A–Z in either case.

Parameters
inputPointer to one raw byte.

Definition at line 208 of file Alphabet.cuh.

210 {
211 const auto byte = static_cast<uint8_t>(input[0]);
212 const uint8_t upper = byte & 0xDFu;
213 const uint8_t letterIndex = upper - 'A';
214 const uint8_t valid = letterIndex < 26;
215 const uint8_t mask = -valid;
216 return (letterIndex & mask) | (invalidSymbol & ~mask);
217 }
static constexpr uint8_t invalidSymbol
Sentinel returned by encode for invalid input bytes.
Definition Alphabet.cuh:195

Member Data Documentation

◆ invalidSymbol

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

Sentinel returned by encode for invalid input bytes.

Definition at line 195 of file Alphabet.cuh.

◆ separator

constexpr uint8_t cusbf::ProteinAlphabet::separator = '*'
staticconstexpr

Separator byte between concatenated records.

Definition at line 197 of file Alphabet.cuh.

◆ symbolCount

constexpr uint64_t cusbf::ProteinAlphabet::symbolCount = 26
staticconstexpr

Number of letter symbols (A–Z).

Definition at line 193 of file Alphabet.cuh.

◆ symbolWidth

constexpr uint64_t cusbf::ProteinAlphabet::symbolWidth = 1
staticconstexpr

Input bytes per encoded symbol.

Definition at line 191 of file Alphabet.cuh.

◆ validBytes

constexpr char cusbf::ProteinAlphabet::validBytes[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
staticconstexpr

Representative valid bytes for compile-time separator checks.

Definition at line 199 of file Alphabet.cuh.


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