fn() globalAlignmentScore
Computes the best global pairwise alignment score.

Defined in <seqan/align.h>
Signature TScoreVal globalAlignmentScore([exec,] subject, query, scoringScheme[, alignConfig][, lowerDiag, upperDiag]); TScoreVal globalAlignmentScore(strings, scoringScheme[, alignConfig][, lowerDiag, upperDiag][, algorithmTag]); TScoreVal globalAlignmentScore(seqH, seqV, {MyersBitVector | MyersHirschberg}); TScoreVal globalAlignmentScore(strings, {MyersBitVector | MyersHirschberg});


exec Policy to select execution mode of alignment algorithm.
subject Subject sequence(s) (horizontal in alignment matrix). Must satisfy ContainerConcept or container-of-container concept.
query Query sequence(s) (vertical in alignment matrix). Must satisfy ContainerConcept or container-of-container concept.
strings A StringSet containing two sequences. Type: StringSet.
alignConfig The AlignConfig to use for the alignment. Type: AlignConfig
scoringScheme The scoring scheme to use for the alignment. Note that the user is responsible for ensuring that the scoring scheme is compatible with algorithmTag. Type: Score.
lowerDiag Optional lower diagonal. Types: int
upperDiag Optional upper diagonal. Types: int
algorithmTag The Tag for picking the alignment algorithm. Types: PairwiseLocalAlignmentAlgorithms.

Return Values

TScoreVal Score value of the resulting alignment (Metafunction: Value of the type of scoringScheme). If subject and query are sets the function returns a set of scores representing the score for each pairwise alignment (subject[i] with query[i]).

Detailed Description

This function does not perform the (linear time) traceback step after the (mostly quadratic time) dynamic programming step. Note that Myers' bit-vector algorithm does not compute an alignment (only in the Myers-Hirschberg variant) but scores can be computed using globalAlignmentScore. Global alignment score can be either used with two sequences or two sets of sequences of equal size.

The same limitations to algorithms as in globalAlignment apply. Furthermore, the MyersBitVector and MyersHirschberg variants can only be used without any other parameter.

Parallel execution

Some of the global alingment score functions are parallelized and vectorized and work on sets of sequences. The parallelization mode can be selected via the ExecutionPolicy as first argument. Following execution modes are possible: sequential, parallel, wave-front, vectorized, parallel+vectorized and wave-front+vectorized.

The wave-front execution can be selected via the WavefrontExecutionPolicy, which can also be combined with a vectorized execution. In addition the wave-front execution parallelizes a single pairwise alignment, while the standard Parallel specialization does only parallelizes the sequence set via chunking. Note, the banded version is at the moment only supported for the following execution modes: sequential, parallel, vectorized and parallel+vectorized. At the moment the vectorized version only works reliable if all subject sequences and respectively all query sequences have the same length.

Data Races

thread-safe. No shared state is modified during the execution and concurrent invocations of this function on the same data does not cause any race conditions.

See Also