SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::detail::affine_cell_proxy< tuple_t > Class Template Reference

A proxy for an affine score matrix cell. More...

#include <seqan3/alignment/matrix/detail/affine_cell_proxy.hpp>

+ Inheritance diagram for seqan3::detail::affine_cell_proxy< tuple_t >:

Public Member Functions

Constructors, destructor and assignment
 affine_cell_proxy ()=default
 Defaulted.
 
 affine_cell_proxy (affine_cell_proxy const &)=default
 Defaulted.
 
 affine_cell_proxy (affine_cell_proxy &&)=default
 Defaulted.
 
affine_cell_proxyoperator= (affine_cell_proxy const &)=default
 Defaulted.
 
affine_cell_proxyoperator= (affine_cell_proxy &&)=default
 Defaulted.
 
 ~affine_cell_proxy ()=default
 Defaulted.
 
template<typename other_tuple_t >
requires std::constructible_from<tuple_t, other_tuple_t &&>
 affine_cell_proxy (other_tuple_t &&other)
 Converting constructor. Initialises from another tuple type.
 
template<typename other_tuple_t >
requires std::constructible_from<tuple_t, other_tuple_t const &>
 affine_cell_proxy (affine_cell_proxy< other_tuple_t > const &other)
 Converting copy-constructor.
 
template<typename other_tuple_t >
requires std::constructible_from<tuple_t, other_tuple_t>
 affine_cell_proxy (affine_cell_proxy< other_tuple_t > &&other)
 Converting move-constructor.
 
template<typename other_tuple_t >
requires std::assignable_from<tuple_t &, other_tuple_t &&>
affine_cell_proxyoperator= (other_tuple_t &&other)
 Converting assignment. Initialises from another tuple type.
 
template<typename other_tuple_t >
requires std::assignable_from<tuple_t &, other_tuple_t const &>
affine_cell_proxyoperator= (affine_cell_proxy< other_tuple_t > const &other)
 Converting copy-assignment.
 
template<typename other_tuple_t >
requires std::assignable_from<tuple_t &, other_tuple_t>
affine_cell_proxyoperator= (affine_cell_proxy< other_tuple_t > &&other)
 Converting move-assignment.
 
Score value accessor

Specific accessor function to get the respective score value from an affine matrix cell.

decltype(auto) best_score () &noexcept
 Access the best score of the wrapped score matrix cell.
 
decltype(auto) best_score () const &noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) best_score () &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) best_score () const &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) horizontal_score () &noexcept
 Access the horizontal score of the wrapped score matrix cell.
 
decltype(auto) horizontal_score () const &noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) horizontal_score () &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) horizontal_score () const &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) vertical_score () &noexcept
 Access the vertical score of the wrapped score matrix cell.
 
decltype(auto) vertical_score () const &noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) vertical_score () &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) vertical_score () const &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
Trace value accessor

Specific accessor function to get the respective trace value from an affine matrix cell.

decltype(auto) best_trace () &noexcept
 Access the optimal score of the wrapped score matrix cell.
 
decltype(auto) best_trace () const &noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) best_trace () &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) best_trace () const &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) horizontal_trace () &noexcept
 Access the horizontal score of the wrapped score matrix cell.
 
decltype(auto) horizontal_trace () const &noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) horizontal_trace () &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) horizontal_trace () const &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) vertical_trace () &noexcept
 Access the vertical score of the wrapped score matrix cell.
 
decltype(auto) vertical_trace () const &noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) vertical_trace () &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
decltype(auto) vertical_trace () const &&noexcept
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 

Private Types

using score_cell_type = std::conditional_t< affine_score_cell< tuple_t >, tuple_t, std::tuple_element_t< 0, tuple_t > >
 The type of the score cell.
 
using trace_cell_type = std::conditional_t< affine_score_and_trace_cell< tuple_t >, std::tuple_element_t< 1, tuple_t >, empty_type >
 The type of the trace cell (might be seqan3::detail::empty_type if not defined).
 

Private Member Functions

tuple_t & as_base () &noexcept
 Casts this to the base class type.
 

Static Private Member Functions

template<size_t index, typename this_t >
requires (index < 3)
static constexpr decltype(auto) get_score_impl (this_t &&me) noexcept
 Implements the get interface for the various calls to receive the score value.
 
template<size_t index, typename this_t >
requires (index < 3 && affine_score_and_trace_cell<tuple_t>)
static constexpr decltype(auto) get_trace_impl (this_t &&me) noexcept
 Implements the get interface for the various calls to receive the trace value.
 

Additional Inherited Members

Detailed Description

template<typename tuple_t>
requires (affine_score_cell<tuple_t> || affine_score_and_trace_cell<tuple_t>)
class seqan3::detail::affine_cell_proxy< tuple_t >

A proxy for an affine score matrix cell.

Template Parameters
tuple_tThe underlying cell type of the affine alignment matrix; must model seqan3::detail::affine_score_cell or seqan3::detail::affine_score_and_trace_cell.

This wrapper provides a uniform access to the different elements of the cell within an affine score matrix. This includes the best score, the horizontal gap score and the vertical gap score. In case of a combined alignment matrix including the trace matrix, the interface is extended to also access the best, horizontal, and vertical trace value.

Member Function Documentation

◆ get_score_impl()

template<typename tuple_t >
template<size_t index, typename this_t >
requires (index < 3)
static constexpr decltype(auto) seqan3::detail::affine_cell_proxy< tuple_t >::get_score_impl ( this_t &&  me)
inlinestaticconstexprprivatenoexcept

Implements the get interface for the various calls to receive the score value.

Template Parameters
indexThe index of the tuple element to get; must be smaller than 3.
this_tThe perfectly forwarded type of *this.
Parameters
[in]meThe instance of *this.
Returns
The score value from the given tuple index.

◆ get_trace_impl()

template<typename tuple_t >
template<size_t index, typename this_t >
requires (index < 3 && affine_score_and_trace_cell<tuple_t>)
static constexpr decltype(auto) seqan3::detail::affine_cell_proxy< tuple_t >::get_trace_impl ( this_t &&  me)
inlinestaticconstexprprivatenoexcept

Implements the get interface for the various calls to receive the trace value.

Template Parameters
indexThe index of the tuple element to get; must be smaller than 3.
this_tThe perfectly forwarded type of *this.
Parameters
[in]meThe instance of *this.
Returns
The trace value from the given tuple index.

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