SeqAn3
seqan3::dssp9 Class Reference

The protein structure alphabet of the characters "HGIEBTSCX". More...

#include <seqan3/alphabet/structure/dssp9.hpp>

Inheritance diagram for seqan3::dssp9:
[legend]

Public Types

Member types
using char_type = char
 The type of the alphabet when converted to char (e.g. via to_char()).
 
using rank_type = detail::min_viable_uint_t< size - 1 >
 The type of the alphabet when represented as a number (e.g. via to_rank()).
 

Public Member Functions

Constructors, destructor and assignment
constexpr dssp9 ()
 
constexpr dssp9 (dssp9 const &)=default
 
constexpr dssp9 (dssp9 &&)=default
 
constexpr dssp9operator= (dssp9 const &)=default
 
constexpr dssp9operator= (dssp9 &&)=default
 
 ~dssp9 ()=default
 
Read functions
constexpr char_type to_char () const noexcept
 Return the letter as a character of char_type. More...
 
constexpr rank_type to_rank () const noexcept
 Return the letter's numeric value (rank in the alphabet). More...
 
Write functions
constexpr dssp9assign_char (std::conditional_t< std::Same< char_type, void >, char, char_type > const c) noexcept
 Assign from a character. More...
 
constexpr dssp9assign_rank (rank_type const c) noexcept
 Assign from a numeric value. More...
 

Static Public Attributes

static detail::min_viable_uint_t< size > constexpr value_size
 The size of the alphabet, i.e. the number of different values it can take.
 
Letter values

Static member "letters" that can be assigned to the alphabet or used in aggregate initialization.

Similar to an Enum interface. Don't worry about the internal_type.

static const dssp9 H = dssp9{}.assign_char('H')
 
static const dssp9 B = dssp9{}.assign_char('B')
 
static const dssp9 E = dssp9{}.assign_char('E')
 
static const dssp9 G = dssp9{}.assign_char('G')
 
static const dssp9 I = dssp9{}.assign_char('I')
 
static const dssp9 T = dssp9{}.assign_char('T')
 
static const dssp9 S = dssp9{}.assign_char('S')
 
static const dssp9 C = dssp9{}.assign_char('C')
 
static const dssp9 X = dssp9{}.assign_char('X')
 

Related Functions

(Note that these are not member functions.)

std::vector< dssp9operator""_dssp9 (const char *str, std::size_t len)
 dssp9 literal More...
 
Requirements for seqan3::alphabet_concept

You can expect these functions on all types that implement seqan3::alphabet_concept.

template<typename alphabet_type >
using underlying_char_t = typename underlying_char< alphabet_type >::type
 The char_type of the alphabet. [type metafunction shortcut]. More...
 
char_type to_char (alphabet_concept const alph)
 Returns the alphabet letter's value in character representation. More...
 
alphabet_concept && assign_char (alphabet_concept &&alph, char_type const chr)
 Returns the alphabet letter's value in character representation. More...
 
Requirements for seqan3::semi_alphabet_concept

You can expect these functions on all types that implement seqan3::semi_alphabet_concept.

template<typename semi_alphabet_type >
using underlying_rank_t = typename underlying_rank< semi_alphabet_type >::type
 The rank_type of the semi_alphabet. [type metafunction shortcut]. More...
 
template<typename alphabet_type >
constexpr auto alphabet_size_v = alphabet_size<alphabet_type>::value
 The size of the alphabet. [value metafunction shortcut]. More...
 
rank_type to_rank (semi_alphabet_concept const alph)
 Returns the alphabet letter's value in rank representation. More...
 
semi_alphabet_concept && assign_rank (semi_alphabet_concept &&alph, rank_type const rank)
 Returns the alphabet letter's value in rank representation. More...
 
Requirements for std::Swappable

You can expect these functions on all types that implement std::Swappable.

void swap (t &lhs, t &rhs)
 Swaps the contents of two objects. More...
 
Requirements for std::EqualityComparable

You can expect these functions on all types that implement std::Equality_comparable.

bool operator== (type const &lhs, type const &rhs)
 (In-)Equality comparison. More...
 
bool operator!= (type const &lhs, type const &rhs)
 (In-)Equality comparison. More...
 
Requirements for std::StrictTotallyOrdered

You can expect these functions on all types that implement std::StrictTotallyOrdered.

bool operator< (type const &lhs, type const &rhs)
 Less-than, greater-than and -or-equal comparisons. More...
 
bool operator<= (type const &lhs, type const &rhs)
 Less-than, greater-than and -or-equal comparisons. More...
 
bool operator> (type const &lhs, type const &rhs)
 Less-than, greater-than and -or-equal comparisons. More...
 
bool operator>= (type const &lhs, type const &rhs)
 Less-than, greater-than and -or-equal comparisons. More...
 

Detailed Description

The protein structure alphabet of the characters "HGIEBTSCX".

The DSSP annotation links structure elements to protein sequences. Originally created with 7 letters as a file format for the DSSP program (http://www.cmbi.ru.nl/dssp.html), it is also used in the stockholm file format for structure alignments, extended by the characters C and X (https://en.wikipedia.org/wiki/Stockholm_format).

The letter abbreviations are as follows:

H = alpha helix B = beta bridge E = strand G = helix-3 I = helix-5 T = turn S = bend C = coil/loop X = unknown

Usage
The following code example creates a dssp9 vector, modifies it, and prints the result to stdout.
// create vector
std::vector<dssp9> vec{dssp9::E, dssp9::H, dssp9::H, dssp9::H, dssp9::T, dssp9::G};
// modify and print
vec[1] = dssp9::C;
for (dssp9 chr : vec)
debug_stream << to_char(chr); // ECHHTG
debug_stream << "\n";

Member Function Documentation

◆ assign_char()

constexpr dssp9 & seqan3::alphabet_base< dssp9 , size, char >::assign_char ( std::conditional_t< std::Same< char_type, void >, char, char_type > const  c)
inlinenoexceptinherited

Assign from a character.

Satisfies the seqan3::alphabet_concept::assign_char() requirement via the seqan3::assign_char() wrapper.

Complexity

Constant.

Exceptions

Guaranteed not to throw.

◆ assign_rank()

constexpr dssp9 & seqan3::alphabet_base< dssp9 , size, char >::assign_rank ( rank_type const  c)
inlinenoexceptinherited

Assign from a numeric value.

Satisfies the seqan3::semi_alphabet_concept::assign_rank() requirement via the seqan3::assign_rank() wrapper.

Complexity

Constant.

Exceptions

Guaranteed not to throw.

◆ to_char()

constexpr char_type seqan3::alphabet_base< dssp9 , size, char >::to_char ( ) const
inlinenoexceptinherited

Return the letter as a character of char_type.

Satisfies the seqan3::alphabet_concept::to_char() requirement via the seqan3::to_char() wrapper.

Complexity

Constant.

Exceptions

Guaranteed not to throw.

◆ to_rank()

constexpr rank_type seqan3::alphabet_base< dssp9 , size, char >::to_rank ( ) const
inlinenoexceptinherited

Return the letter's numeric value (rank in the alphabet).

Satisfies the seqan3::semi_alphabet_concept::to_rank() requirement via the to_rank() wrapper.

Complexity

Constant.

Exceptions

Guaranteed not to throw.

Friends And Related Function Documentation

◆ operator""_dssp9()

std::vector< dssp9 > operator""_dssp9 ( const char *  str,
std::size_t  len 
)
related

dssp9 literal

Returns
std::vector<seqan3::dssp9>

You can use this string literal to easily assign to a vector of dssp9 characters:

std::vector<dssp9> foo{"EHHHHT"_dssp9};
std::vector<dssp9> bar = "EHHHHT"_dssp9;
auto bax = "EHHHHT"_dssp9;

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