SeqAn3  3.0.3
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 {
37  using base_t::base_t; // Import the base class constructors
38 };
39 
40  // ------------------------------------------------------------------
41  // seqan3::align_cfg::extension_score
42  // ------------------------------------------------------------------
43 
50  extension_score,
51  seqan3::detail::strong_type_skill::convert>
52  {
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 
110 };
111 
112 } // namespace seqan3::align_cfg
Provides some utility functions for the alignment configurations.
A configuration element for the affine gap cost scheme.
Definition: align_config_gap_cost_affine.hpp:74
constexpr gap_cost_affine()=default
Defaulted.
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
constexpr gap_cost_affine & operator=(gap_cost_affine const &)=default
Defaulted.
constexpr gap_cost_affine(gap_cost_affine &&)=default
Defaulted.
constexpr gap_cost_affine(gap_cost_affine const &)=default
Defaulted.
constexpr gap_cost_affine & operator=(gap_cost_affine &&)=default
Defaulted.
~gap_cost_affine()=default
Defaulted.
CRTP base class to declare a strong typedef for a regular type to avoid ambiguous parameter settings ...
Definition: strong_type.hpp:182
align_config_id
An internal enum to check for a consistent configuration object.
Definition: detail.hpp:24
@ gap
ID for the gap_cost_affine option.
auto const move
A view that turns lvalue-references into rvalue-references.
Definition: move.hpp:70
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:25
SeqAn specific customisations in the standard namespace.
Provides seqan3::pipeable_config_element.
Provides basic data structure for strong types.
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
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