File: strings.cpp

package info (click to toggle)
seqan2 2.4.0%2Bdfsg-16
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 224,180 kB
  • sloc: cpp: 256,886; ansic: 91,672; python: 8,330; sh: 995; xml: 570; makefile: 252; awk: 51; javascript: 21
file content (43 lines) | stat: -rw-r--r-- 1,301 bytes parent folder | download | duplicates (7)
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]