1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
//![create-string]
#include <iostream>
#include <seqan/basic.h>
#include <seqan/stream.h>
using namespace seqan;
int main()
{
typedef String<AminoAcid> TAminoAcidString;
TAminoAcidString sourceSeq = "MQDRVKRPMNAFIVWSRDQRRKMALEN";
//![create-string]
//![iterate-and-replace]
typedef Iterator<TAminoAcidString>::Type TIter;
TIter itEnd = end(sourceSeq);
for (TIter it = begin(sourceSeq); it != itEnd; goNext(it))
{
if (value(it) == 'R')
value(it) = 'A';
std::cout << value(it) << ',';
}
std::cout << std::endl;
//![iterate-and-replace]
//![count-occurrences]
typedef Size<TAminoAcidString>::Type TSize;
typedef String<TSize> TCounterString;
TCounterString counter;
TSize alphSize = ValueSize<AminoAcid>::VALUE;
resize(counter, alphSize, 0);
for (TIter it = begin(sourceSeq); it != itEnd; goNext(it))
value(counter, ordValue(value(it))) += 1;
//![count-occurrences]
//![frequency-table]
typedef Iterator<TCounterString>::Type TCounterIter;
TCounterIter countIt = begin(counter);
TCounterIter countItEnd = end(counter);
for (TSize pos = 0; countIt != countItEnd; ++countIt, ++pos)
std::cout << AminoAcid(pos) << ':' << value(countIt) << std::endl;
return 0;
}
//![frequency-table]
|