SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
align_config_method.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
3// SPDX-License-Identifier: BSD-3-Clause
4
14#pragma once
15
20
21namespace seqan3::align_cfg
22{
23
42{
43public:
47 method_local() = default;
48 method_local(method_local const &) = default;
49 method_local(method_local &&) = default;
50 method_local & operator=(method_local const &) = default;
52 ~method_local() = default;
53
55
58 static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::local};
59};
60
64struct free_end_gaps_sequence1_leading : public seqan3::detail::strong_type<bool, free_end_gaps_sequence1_leading>
65{
67 using base_t = seqan3::detail::strong_type<bool, free_end_gaps_sequence1_leading>;
68 using base_t::base_t; // Import the base class constructors
69};
70
74struct free_end_gaps_sequence2_leading : public seqan3::detail::strong_type<bool, free_end_gaps_sequence2_leading>
75{
77 using base_t = seqan3::detail::strong_type<bool, free_end_gaps_sequence2_leading>;
78 using base_t::base_t; // Import the base class constructors
79};
80
84struct free_end_gaps_sequence1_trailing : public seqan3::detail::strong_type<bool, free_end_gaps_sequence1_trailing>
85{
87 using base_t = seqan3::detail::strong_type<bool, free_end_gaps_sequence1_trailing>;
88 using base_t::base_t; // Import the base class constructors
89};
90
94struct free_end_gaps_sequence2_trailing : public seqan3::detail::strong_type<bool, free_end_gaps_sequence2_trailing>
95{
97 using base_t = seqan3::detail::strong_type<bool, free_end_gaps_sequence2_trailing>;
98 using base_t::base_t; // Import the base class constructors
99};
100
119{
120public:
124 method_global() = default;
125 method_global(method_global const &) = default;
127 method_global & operator=(method_global const &) = default;
129 ~method_global() = default;
130
144 seqan3::align_cfg::free_end_gaps_sequence2_trailing free_sequence2_trailing) noexcept :
145 free_end_gaps_sequence1_leading{free_sequence1_leading.get()},
146 free_end_gaps_sequence2_leading{free_sequence2_leading.get()},
147 free_end_gaps_sequence1_trailing{free_sequence1_trailing.get()},
148 free_end_gaps_sequence2_trailing{free_sequence2_trailing.get()}
149 {}
151
160
163 static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::global};
164};
165
166} // namespace seqan3::align_cfg
Provides some utility functions for the alignment configurations.
Sets the global alignment method.
Definition align_config_method.hpp:119
method_global()=default
Defaulted.
bool free_end_gaps_sequence1_trailing
If set to true, trailing gaps in sequence1 are not penalised when computing the optimal alignment.
Definition align_config_method.hpp:157
method_global & operator=(method_global const &)=default
Defaulted.
bool free_end_gaps_sequence2_trailing
If set to true, trailing gaps in sequence2 are not penalised when computing the optimal alignment.
Definition align_config_method.hpp:159
method_global(method_global const &)=default
Defaulted.
constexpr method_global(seqan3::align_cfg::free_end_gaps_sequence1_leading free_sequence1_leading, seqan3::align_cfg::free_end_gaps_sequence2_leading free_sequence2_leading, seqan3::align_cfg::free_end_gaps_sequence1_trailing free_sequence1_trailing, seqan3::align_cfg::free_end_gaps_sequence2_trailing free_sequence2_trailing) noexcept
Construct method_global with a specific free end gap configuration.
Definition align_config_method.hpp:141
method_global & operator=(method_global &&)=default
Defaulted.
~method_global()=default
Defaulted.
method_global(method_global &&)=default
Defaulted.
Sets the local alignment method.
Definition align_config_method.hpp:42
method_local(method_local const &)=default
Defaulted.
~method_local()=default
Defaulted.
method_local()=default
Defaulted.
method_local(method_local &&)=default
Defaulted.
method_local & operator=(method_local const &)=default
Defaulted.
method_local & operator=(method_local &&)=default
Defaulted.
Provides seqan3::detail::empty_type.
A special sub namespace for the alignment configurations.
Definition align_config_band.hpp:22
Provides seqan3::pipeable_config_element.
Provides basic data structure for strong types.
A strong type representing free_end_gaps_sequence1_leading of the seqan3::align_cfg::method_global.
Definition align_config_method.hpp:65
seqan3::detail::strong_type< bool, free_end_gaps_sequence1_leading > base_t
The type of the strong type base class.
Definition align_config_method.hpp:67
A strong type representing free_end_gaps_sequence1_trailing of the seqan3::align_cfg::method_global.
Definition align_config_method.hpp:85
seqan3::detail::strong_type< bool, free_end_gaps_sequence1_trailing > base_t
The type of the strong type base class.
Definition align_config_method.hpp:87
A strong type representing free_end_gaps_sequence2_leading of the seqan3::align_cfg::method_global.
Definition align_config_method.hpp:75
seqan3::detail::strong_type< bool, free_end_gaps_sequence2_leading > base_t
The type of the strong type base class.
Definition align_config_method.hpp:77
A strong type representing free_end_gaps_sequence2_trailing of the seqan3::align_cfg::method_global.
Definition align_config_method.hpp:95
seqan3::detail::strong_type< bool, free_end_gaps_sequence2_trailing > base_t
The type of the strong type base class.
Definition align_config_method.hpp:97
Adds pipe interface to configuration elements.
Definition pipeable_config_element.hpp:29
Hide me