SeqAn3 3.2.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-2022, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2022, 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
50 seqan3::detail::strong_type<int32_t, extension_score, seqan3::detail::strong_type_skill::convert>
51{
53 using base_t = seqan3::detail::strong_type<int32_t, extension_score, seqan3::detail::strong_type_skill::convert>;
54 using base_t::base_t; // Import the base class constructors
55};
56
75{
76public:
78 int32_t open_score{0};
80 int32_t extension_score{-1};
81
85 constexpr gap_cost_affine() = default;
86 constexpr gap_cost_affine(gap_cost_affine const &) = default;
87 constexpr gap_cost_affine(gap_cost_affine &&) = default;
88 constexpr gap_cost_affine & operator=(gap_cost_affine const &) = default;
89 constexpr gap_cost_affine & operator=(gap_cost_affine &&) = default;
90 ~gap_cost_affine() = default;
91
105 open_score(std::move(open_score)),
107 {}
109
112 static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::gap};
113};
114
115} // namespace seqan3::align_cfg
A configuration element for the affine gap cost scheme.
Definition: align_config_gap_cost_affine.hpp:75
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:103
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:51
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:53
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