SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::align_cfg::method_global Class Reference

Sets the global alignment method. More...

#include <seqan3/alignment/configuration/align_config_method.hpp>

+ Inheritance diagram for seqan3::align_cfg::method_global:

Public Member Functions

Constructors, destructor and assignment
 method_global ()=default
 Defaulted.
 
 method_global (method_global const &)=default
 Defaulted.
 
 method_global (method_global &&)=default
 Defaulted.
 
method_globaloperator= (method_global const &)=default
 Defaulted.
 
method_globaloperator= (method_global &&)=default
 Defaulted.
 
 ~method_global ()=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.
 

Public Attributes

bool free_end_gaps_sequence1_leading {false}
 If set to true, leading gaps in sequence1 are not penalised when computing the optimal alignment.
 
bool free_end_gaps_sequence1_trailing {false}
 If set to true, trailing gaps in sequence1 are not penalised when computing the optimal alignment.
 
bool free_end_gaps_sequence2_leading {false}
 If set to true, leading gaps in sequence2 are not penalised when computing the optimal alignment.
 
bool free_end_gaps_sequence2_trailing {false}
 If set to true, trailing gaps in sequence2 are not penalised when computing the optimal alignment.
 

Detailed Description

Sets the global alignment method.

There are several methods for sequence alignment. We distinguish between local and global alignments. The semi-global alignment is implemented as a variation of the global alignment.

Global Alignment:

--T--CC-C-AGT--TATGT-CAGGGGACACG-A-GCATGCAGA-GAC
| || | || | | | ||| || | | | | |||| |
AATTGCCGCC-GTCGT-T-TTCAG----CA-GTTATG-T-CAGAT--C

Finding the optimal global alignment of two sequences is solved by the Needleman-Wunsch algorithm.
Semi-global Alignment (e.g. overlapping sequences):

TCCCAGTTATGTCAGgggacacgagcatgcagagac
|||||||||||||||
aattgccgccgtcgttttTCCCAGTTATGTCAG

The semi-global alignment is a specially configured global alignment, namely we do not penalize gaps at the ends of the alignment. Semi-global alignments are often used in genome assembly applications when trying to find matching overlaps.

Example

// SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
// SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
// SPDX-License-Identifier: CC0-1.0
using namespace seqan3::literals;
int main()
{
// configure a global alignment for DNA sequences
auto seq1 = "TCGT"_dna4;
auto seq2 = "ACGA"_dna4;
for (auto res : seqan3::align_pairwise(std::tie(seq1, seq2), min_cfg))
seqan3::debug_stream << res.score() << '\n'; // print out the alignment score
}
Provides global and local alignment configurations.
Provides seqan3::align_cfg::scoring_scheme.
Provides pairwise alignment function.
A configuration element for the affine gap cost scheme.
Definition align_config_gap_cost_affine.hpp:72
Sets the global alignment method.
Definition align_config_method.hpp:119
Sets the scoring scheme for the alignment algorithm.
Definition align_config_scoring_scheme.hpp:42
A data structure for managing and computing the score of two nucleotides.
Definition nucleotide_scoring_scheme.hpp:35
Provides seqan3::debug_stream and related types.
Provides seqan3::dna4, container aliases and string literals.
constexpr auto align_pairwise(sequence_t &&seq, alignment_config_t const &config)
Computes the pairwise alignment for a pair of sequences or a range over sequence pairs.
Definition align_pairwise.hpp:131
debug_stream_type debug_stream
A global instance of seqan3::debug_stream_type.
Definition debug_stream.hpp:37
The SeqAn namespace for literals.
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
SeqAn specific customisations in the standard namespace.
Provides seqan3::nucleotide_scoring_scheme.
A strong type of underlying type int32_t that represents the score (usually negative) of any characte...
Definition align_config_gap_cost_affine.hpp:48
A strong type of underlying type int32_t that represents a score (usually negative) that is incurred ...
Definition align_config_gap_cost_affine.hpp:31
A strong type of underlying type score_type that represents the score of two matching characters.
Definition scoring_scheme_base.hpp:38
A strong type of underlying type score_type that represents the score two different characters.
Definition scoring_scheme_base.hpp:63
T tie(T... args)
Remarks
For a complete overview, take a look at Pairwise Alignments.

Constructor & Destructor Documentation

◆ method_global()

constexpr seqan3::align_cfg::method_global::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 
)
inlineconstexprnoexcept

Construct method_global with a specific free end gap configuration.

Parameters
[in]free_sequence1_leadingAn instance of seqan3::align_cfg::free_end_gaps_sequence1_leading that indicates whether leading gaps in sequence1 should be free (not penalised).
[in]free_sequence2_leadingAn instance of seqan3::align_cfg::free_end_gaps_sequence2_leading that indicates whether leading gaps in sequence2 should be free (not penalised).
[in]free_sequence1_trailingAn instance of seqan3::align_cfg::free_end_gaps_sequence1_trailing that indicates whether trailing gaps in sequence1 should be free (not penalised).
[in]free_sequence2_trailingAn instance of seqan3::align_cfg::free_end_gaps_sequence2_trailing that indicates whether trailing gaps in sequence2 should be free (not penalised).

The documentation for this class was generated from the following file:
Hide me