Example Program
Index countChildren
Example for using a countChildren and countOccurrences for indices.
This example shows how to iterate over a suffix tree and print the number of children and the number of occurrences of the node representatitves.
An example to demonstrate the functions countChildren and countOccurrences
1#include <iostream>
2#include <seqan/index.h>
3
4using namespace seqan;
5
6int main()
7{
We begin with a String to store our sequence.
8    String<char> myString = "How many wood would a woodchuck chuck. A woodchuck chucks as much wood as a woodchuck could";
9
Then we create an Index of this StringSet.
10    typedef Index<String<char> > TMyIndex;
11    TMyIndex myIndex(myString);
12
we will use a TopDown Iterator that supports parent links, ommits empty edges and traverses the index in preorder to print out the number of children at each node (not the number of leafs in the subtree).
13    Iterator<TMyIndex, TopDown<ParentLinks<PreorderEmptyEdges> > >::Type tdIterator(myIndex);
14    Size<TMyIndex>::Type count;
15
16    while (!atEnd(tdIterator))
17    {
We print out the representatives of all nodes that have more than 3 children and the number of occurrences. Also, we print a message if a node is a leaf.
18        count = countChildren(tdIterator);
19        if (count >= 3)
20        {
21            std::cout << "Representative " << representative(tdIterator) << " has " <<  count << " children  and ";
22            std::cout << countOccurrences(tdIterator) << " occurrences " << std::endl;
23        }
24        if (isLeaf(tdIterator))
25            std::cout << "The node is a leaf " << std::endl;
26
27        tdIterator++;
28    }
29
30    return 0;
31}
Output
Representative  has 17 children  and 91 occurrences 
Representative   has 5 children  and 16 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
Representative a has 3 children  and 5 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
Representative c has 3 children  and 12 occurrences 
The node is a leaf 
Representative chuck has 3 children  and 5 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
Representative ck has 3 children  and 5 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
Representative d has 3 children  and 7 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
Representative huck has 3 children  and 5 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
Representative k has 3 children  and 5 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
Representative o has 4 children  and 13 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
Representative uck has 3 children  and 5 occurrences 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf 
The node is a leaf
SeqAn - Sequence Analysis Library - www.seqan.de
 

Page built @2013/07/11 09:12:35