SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
align_config_method.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 
22 
23 namespace seqan3::align_cfg
24 {
25 
42 class method_local : public pipeable_config_element<method_local>
43 {
44 public:
48  method_local() = default;
49  method_local(method_local const &) = default;
50  method_local(method_local &&) = default;
51  method_local & operator=(method_local const &) = default;
53  ~method_local() = default;
54 
58  static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::local};
59 };
60 
64 struct 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 
74 struct 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 
84 struct 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 
94 struct 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 
105 class method_global : public pipeable_config_element<method_global>
106 {
107 public:
111  method_global() = default;
112  method_global(method_global const &) = default;
113  method_global(method_global &&) = default;
114  method_global & operator=(method_global const &) = default;
116  ~method_global() = default;
117 
131  seqan3::align_cfg::free_end_gaps_sequence2_trailing free_sequence2_trailing) noexcept :
132  free_end_gaps_sequence1_leading{free_sequence1_leading.get()},
133  free_end_gaps_sequence2_leading{free_sequence2_leading.get()},
134  free_end_gaps_sequence1_trailing{free_sequence1_trailing.get()},
135  free_end_gaps_sequence2_trailing{free_sequence2_trailing.get()}
136  {}
138 
147 
150  static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::global};
151 };
152 
153 } // namespace seqan3::align_cfg
seqan3::align_cfg::free_end_gaps_sequence1_trailing
A strong type representing free_end_gaps_sequence1_trailing of the seqan3::align_cfg::method_global.
Definition: align_config_method.hpp:85
seqan3::align_cfg::method_local::method_local
method_local(method_local &&)=default
Defaulted.
seqan3::align_cfg::method_global::free_end_gaps_sequence2_trailing
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:146
seqan3::align_cfg::method_local::method_local
method_local(method_local const &)=default
Defaulted.
seqan3::align_cfg::free_end_gaps_sequence2_leading::base_t
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
seqan3::align_cfg::free_end_gaps_sequence1_leading::base_t
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
seqan3::align_cfg::free_end_gaps_sequence2_leading
A strong type representing free_end_gaps_sequence2_leading of the seqan3::align_cfg::method_global.
Definition: align_config_method.hpp:75
seqan3::align_cfg::method_local
Sets the local alignment method.
Definition: align_config_method.hpp:43
seqan3::align_cfg::method_global::~method_global
~method_global()=default
Defaulted.
seqan3::align_cfg::free_end_gaps_sequence1_trailing::base_t
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
strong_type.hpp
Provides basic data structure for strong types.
seqan3::align_cfg::free_end_gaps_sequence1_leading
A strong type representing free_end_gaps_sequence1_leading of the seqan3::align_cfg::method_global.
Definition: align_config_method.hpp:65
seqan3::align_cfg::method_global::operator=
method_global & operator=(method_global &&)=default
Defaulted.
pipeable_config_element.hpp
Provides seqan3::pipeable_config_element.
seqan3::align_cfg::free_end_gaps_sequence2_trailing::base_t
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
seqan3::align_cfg::method_global::method_global
method_global(method_global const &)=default
Defaulted.
seqan3::align_cfg::method_global::method_global
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:128
seqan3::align_cfg::method_local::~method_local
~method_local()=default
seqan3::align_cfg
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:23
seqan3::align_cfg::method_global::method_global
method_global()=default
Defaulted.
seqan3::align_cfg::method_global::operator=
method_global & operator=(method_global const &)=default
Defaulted.
seqan3::align_cfg::free_end_gaps_sequence2_trailing
A strong type representing free_end_gaps_sequence2_trailing of the seqan3::align_cfg::method_global.
Definition: align_config_method.hpp:95
seqan3::align_cfg::method_local::operator=
method_local & operator=(method_local &&)=default
Defaulted.
empty_type.hpp
Provides seqan3::detail::empty_type.
seqan3::align_cfg::method_global::free_end_gaps_sequence1_trailing
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:144
seqan3::align_cfg::method_global
Sets the global alignment method.
Definition: align_config_method.hpp:106
seqan3::align_cfg::method_local::method_local
method_local()=default
Defaulted.
seqan3::align_cfg::method_local::operator=
method_local & operator=(method_local const &)=default
Defaulted.
seqan3::align_cfg::method_global::method_global
method_global(method_global &&)=default
Defaulted.
detail.hpp
Provides some utility functions for the alignment configurations.