SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
align_config_gap_cost_affine.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2020, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2020, Knut Reinert & MPI für molekulare Genetik
4 // This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5 // shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6 // -----------------------------------------------------------------------------------------------------
7 
16 #pragma once
17 
21 
22 namespace seqan3::align_cfg
23 {
24 // ------------------------------------------------------------------
25 // seqan3::align_cfg::open_score
26 // ------------------------------------------------------------------
27 
33 struct open_score : seqan3::detail::strong_type<int32_t, open_score, seqan3::detail::strong_type_skill::convert>
34 {
36  using base_t = seqan3::detail::strong_type<int32_t, open_score, seqan3::detail::strong_type_skill::convert>;
37  using base_t::base_t; // Import the base class constructors
38 };
39 
40  // ------------------------------------------------------------------
41  // seqan3::align_cfg::extension_score
42  // ------------------------------------------------------------------
43 
49  struct extension_score : seqan3::detail::strong_type<int32_t,
50  extension_score,
51  seqan3::detail::strong_type_skill::convert>
52  {
54  using base_t = seqan3::detail::strong_type<int32_t, extension_score, seqan3::detail::strong_type_skill::convert>;
55  using base_t::base_t; // Import the base class constructors
56  };
57 
73 class gap_cost_affine : public pipeable_config_element<gap_cost_affine>
74 {
75 public:
77  int32_t open_score{0};
79  int32_t extension_score{-1};
80 
84  constexpr gap_cost_affine() = default;
85  constexpr gap_cost_affine(gap_cost_affine const &)= default;
86  constexpr gap_cost_affine(gap_cost_affine &&) = default;
87  constexpr gap_cost_affine & operator=(gap_cost_affine const &) = default;
88  constexpr gap_cost_affine & operator=(gap_cost_affine &&) = default;
89  ~gap_cost_affine() = default;
90 
106 
109  static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::gap};
110 };
111 
112 } // namespace seqan3::align_cfg
strong_type.hpp
Provides basic data structure for strong types.
seqan3::align_cfg::gap_cost_affine::~gap_cost_affine
~gap_cost_affine()=default
Defaulted.
seqan3::align_cfg::open_score::base_t
seqan3::detail::strong_type< int32_t, open_score, seqan3::detail::strong_type_skill::convert > base_t
The type of the strong type base class.
Definition: align_config_gap_cost_affine.hpp:36
pipeable_config_element.hpp
Provides seqan3::pipeable_config_element.
seqan3::align_cfg::gap_cost_affine::gap_cost_affine
constexpr gap_cost_affine(gap_cost_affine &&)=default
Defaulted.
seqan3::align_cfg::gap_cost_affine::gap_cost_affine
constexpr gap_cost_affine()=default
Defaulted.
seqan3::align_cfg::gap_cost_affine
A configuration element for the affine gap cost scheme.
Definition: align_config_gap_cost_affine.hpp:74
seqan3::views::move
auto const move
A view that turns lvalue-references into rvalue-references.
Definition: move.hpp:68
seqan3::align_cfg::extension_score::base_t
seqan3::detail::strong_type< int32_t, extension_score, seqan3::detail::strong_type_skill::convert > base_t
The type of the strong type base class.
Definition: align_config_gap_cost_affine.hpp:54
seqan3::align_cfg::gap_cost_affine::operator=
constexpr gap_cost_affine & operator=(gap_cost_affine const &)=default
Defaulted.
seqan3::align_cfg
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:23
seqan3::align_cfg::gap_cost_affine::gap_cost_affine
constexpr gap_cost_affine(seqan3::align_cfg::open_score open_score, seqan3::align_cfg::extension_score extension_score)
Construction from strongly typed open score and extension score.
Definition: align_config_gap_cost_affine.hpp:102
std
SeqAn specific customisations in the standard namespace.
seqan3::align_cfg::open_score
A strong type of underlying type int32_t that represents a score (usually negative) that is incurred ...
Definition: align_config_gap_cost_affine.hpp:34
seqan3::align_cfg::extension_score
A strong type of underlying type int32_t that represents the score (usually negative) of any characte...
Definition: align_config_gap_cost_affine.hpp:52
seqan3::align_cfg::gap_cost_affine::operator=
constexpr gap_cost_affine & operator=(gap_cost_affine &&)=default
Defaulted.
seqan3::align_cfg::gap_cost_affine::gap_cost_affine
constexpr gap_cost_affine(gap_cost_affine const &)=default
Defaulted.
detail.hpp
Provides some utility functions for the alignment configurations.