fn() computeAlignmentStatsCompute alignment statistics.
Compute alignment statistics.
| Defined in | <seqan/align.h> |
|---|---|
| Signature |
TScoreVal computeAlignmentStats(stats, align, scoringScheme);
TScoreVal computeAlignmentStats(stats, row0, row1, scoringScheme);
|
Parameters
stats
|
The AlignmentStats object to store alignment statistics in. |
|---|---|
align
|
The Align object to score. |
row0
|
The first row (Gaps object). |
row1
|
The second row (Gaps object). |
score
|
The Score object to use for the scoring scheme. |
Return Values
TScoreVal |
The score value of the alignment, of the same type as the value type of scoringScheme |
|---|
Detailed Description
Examples
#include <iostream>
#include <seqan/align.h>
#include <seqan/sequence.h>
using namespace seqan2;
int main()
{
// Create an alignment between subject and query.
Peptide subject =
"MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASE"
"DLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKIPVKYLEFISECIIQVLQSKH"
"PGDFGADAQGAMNKALELFRKDMASNYK";
Peptide query =
"MSLTKTERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHFDLHPGSA"
"QLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRVDPVNFKLLSHCLLVTLAARF"
"PADFTAEAHAAWDKFLSVTEKYR";
Align<Peptide> align;
resize(rows(align), 2);
setSource(row(align, 0), subject);
setSource(row(align, 1), query);
Blosum62 scoringScheme(-1, -12);
globalAlignment(align, scoringScheme);
// Compute the statistics of the alignment.
AlignmentStats stats;
computeAlignmentStats(stats, align, scoringScheme);
std::cout << align
<< "score: " << stats.alignmentScore << "\n"
<< "gap opens: " << stats.numGapOpens << "\n"
<< "gap extensions: " << stats.numGapExtensions << "\n"
<< "num insertions: " << stats.numInsertions << "\n"
<< "num deletions: " << stats.numDeletions << "\n"
<< "num matches: " << stats.numMatches << "\n"
<< "num mismatches: " << stats.numMismatches << "\n"
<< "num positive scores: " << stats.numPositiveScores << "\n"
<< "num negative scores: " << stats.numNegativeScores << "\n"
<< "percent similarity: " << stats.alignmentSimilarity << "\n"
<< "percent identity: " << stats.alignmentIdentity << "\n\n\n";
// Clip alignment rows and compute score of this view.
setClippedEndPosition(row(align, 0), 100);
setClippedEndPosition(row(align, 1), 100);
setClippedBeginPosition(row(align, 0), 5);
setClippedBeginPosition(row(align, 1), 5);
computeAlignmentStats(stats, align, scoringScheme);
std::cout << "Clipping alignment to (5, 100)\n"
<< align
<< "score: " << stats.alignmentScore << "\n"
<< "gap opens: " << stats.numGapOpens << "\n"
<< "gap extensions: " << stats.numGapExtensions << "\n"
<< "num insertions: " << stats.numInsertions << "\n"
<< "num deletions: " << stats.numDeletions << "\n"
<< "num matches: " << stats.numMatches << "\n"
<< "num mismatches: " << stats.numMismatches << "\n"
<< "num positive scores: " << stats.numPositiveScores << "\n"
<< "num negative scores: " << stats.numNegativeScores << "\n"
<< "percent similarity: " << stats.alignmentSimilarity << "\n"
<< "percent identity: " << stats.alignmentIdentity << "\n";
return 0;
}
The output is as follows:
0 . : . : . : . : . :
MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHL
| | | | | | | | ||| || | | |
MSLTKTERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHF---
50 . : . : . : . : . :
KSEDEMKASEDLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKI
| | | || | | | | | ||
---DLHPGSAQLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRV
100 . : . : . : . : .
PVKYLEFISECIIQVLQSKHPGDFGADAQGAMNKALELFRKDMASNYK
| | | | || | | | | | | |
DPVNFKLLSHCLLVTLAARFPADFTAEAHAAWDKFLSVTEK-----YR
score: 159
gap opens: 2
gap extensions: 9
num insertions: 11
num deletions: 0
num matches: 41
num mismatches: 96
num positive scores: 69
num negative scores: 68
percent similarity: 46.6216
percent identity: 27.7027
Clipping alignment to (5, 100)
0 . : . : . : . : . :
GEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDE
| | | | | | ||| || | | | |
TERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHF------DL
50 . : . : . : . : .
MKASEDLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKI
| | || | | | | | ||
HPGSAQLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRV
score: 99
gap opens: 1
gap extensions: 5
num insertions: 6
num deletions: 0
num matches: 26
num mismatches: 63
num positive scores: 43
num negative scores: 46
percent similarity: 45.2632
percent identity: 27.3684
Data Races
If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.