SeqAn3 3.1.0
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-2021, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2021, 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
22namespace seqan3::align_cfg
23{
24// ------------------------------------------------------------------
25// seqan3::align_cfg::open_score
26// ------------------------------------------------------------------
27
33struct 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
76{
77public:
79 int32_t open_score{0};
81 int32_t extension_score{-1};
82
86 constexpr gap_cost_affine() = default;
87 constexpr gap_cost_affine(gap_cost_affine const &)= default;
88 constexpr gap_cost_affine(gap_cost_affine &&) = default;
89 constexpr gap_cost_affine & operator=(gap_cost_affine const &) = default;
90 constexpr gap_cost_affine & operator=(gap_cost_affine &&) = default;
91 ~gap_cost_affine() = default;
92
108
111 static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::gap};
112};
113
114} // namespace seqan3::align_cfg
A configuration element for the affine gap cost scheme.
Definition: align_config_gap_cost_affine.hpp:76
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:104
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 const &)=default
Defaulted.
constexpr gap_cost_affine & operator=(gap_cost_affine &&)=default
Defaulted.
~gap_cost_affine()=default
Defaulted.
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
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
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::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
Adds pipe interface to configuration elements.
Definition: pipeable_config_element.hpp:32