Loading...
Searching...
No Matches
align_config_method.hpp
Go to the documentation of this file.
// SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
// SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
// SPDX-License-Identifier: BSD-3-Clause
#pragma once
#include <seqan3/alignment/configuration/detail.hpp>
#include <seqan3/core/configuration/pipeable_config_element.hpp>
#include <seqan3/core/detail/empty_type.hpp>
#include <seqan3/core/detail/strong_type.hpp>
namespace seqan3::align_cfg
{
class method_local : private pipeable_config_element
{
public:
method_local() = default;
method_local(method_local const &) = default;
method_local(method_local &&) = default;
method_local & operator=(method_local const &) = default;
method_local & operator=(method_local &&) = default;
~method_local() = default;
static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::local};
};
struct free_end_gaps_sequence1_leading : public seqan3::detail::strong_type<bool, free_end_gaps_sequence1_leading>
{
using base_t = seqan3::detail::strong_type<bool, free_end_gaps_sequence1_leading>;
using base_t::base_t; // Import the base class constructors
};
struct free_end_gaps_sequence2_leading : public seqan3::detail::strong_type<bool, free_end_gaps_sequence2_leading>
{
using base_t = seqan3::detail::strong_type<bool, free_end_gaps_sequence2_leading>;
using base_t::base_t; // Import the base class constructors
};
struct free_end_gaps_sequence1_trailing : public seqan3::detail::strong_type<bool, free_end_gaps_sequence1_trailing>
{
using base_t = seqan3::detail::strong_type<bool, free_end_gaps_sequence1_trailing>;
using base_t::base_t; // Import the base class constructors
};
struct free_end_gaps_sequence2_trailing : public seqan3::detail::strong_type<bool, free_end_gaps_sequence2_trailing>
{
using base_t = seqan3::detail::strong_type<bool, free_end_gaps_sequence2_trailing>;
using base_t::base_t; // Import the base class constructors
};
class method_global : private pipeable_config_element
{
public:
method_global() = default;
method_global(method_global const &) = default;
method_global(method_global &&) = default;
method_global & operator=(method_global const &) = default;
method_global & operator=(method_global &&) = default;
~method_global() = default;
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 :
free_end_gaps_sequence1_leading{free_sequence1_leading.get()},
free_end_gaps_sequence2_leading{free_sequence2_leading.get()},
free_end_gaps_sequence1_trailing{free_sequence1_trailing.get()},
free_end_gaps_sequence2_trailing{free_sequence2_trailing.get()}
{}
bool free_end_gaps_sequence1_leading{false};
bool free_end_gaps_sequence2_leading{false};
bool free_end_gaps_sequence1_trailing{false};
bool free_end_gaps_sequence2_trailing{false};
static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::global};
};
} // namespace seqan3::align_cfg
detail.hpp
Provides some utility functions for the alignment configurations.
seqan3::align_cfg::method_global::method_global
method_global()=default
Defaulted.
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:157
seqan3::align_cfg::method_global::operator=
method_global & operator=(method_global const &)=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:159
seqan3::align_cfg::method_global::free_end_gaps_sequence2_leading
bool free_end_gaps_sequence2_leading
If set to true, leading gaps in sequence2 are not penalised when computing the optimal alignment.
Definition align_config_method.hpp:155
seqan3::align_cfg::method_global::method_global
method_global(method_global const &)=default
Defaulted.
seqan3::align_cfg::method_global::free_end_gaps_sequence1_leading
bool free_end_gaps_sequence1_leading
If set to true, leading gaps in sequence1 are not penalised when computing the optimal alignment.
Definition align_config_method.hpp:153
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:141
seqan3::align_cfg::method_global::operator=
method_global & operator=(method_global &&)=default
Defaulted.
seqan3::align_cfg::method_global::~method_global
~method_global()=default
Defaulted.
seqan3::align_cfg::method_global::method_global
method_global(method_global &&)=default
Defaulted.
seqan3::align_cfg::method_local::method_local
method_local(method_local const &)=default
Defaulted.
seqan3::align_cfg::method_local::~method_local
~method_local()=default
Defaulted.
seqan3::align_cfg::method_local::method_local
method_local()=default
Defaulted.
seqan3::align_cfg::method_local::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_local::operator=
method_local & operator=(method_local &&)=default
Defaulted.
empty_type.hpp
Provides seqan3::detail::empty_type.
seqan3::align_cfg
A special sub namespace for the alignment configurations.
Definition align_config_band.hpp:22
pipeable_config_element.hpp
Provides seqan3::pipeable_config_element.
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::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_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::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
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::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_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::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::pipeable_config_element
Adds pipe interface to configuration elements.
Definition pipeable_config_element.hpp:29
Hide me