iVar
suffix_tree.h
1 #include "iostream"
2 #include "algorithm"
3 #include "vector"
4 
5 #ifndef suffix_tree
6 #define suffix_tree
7 
8 const std::string alphabet = "ATGCRYSWKMBDHVN-X#@";
9 const unsigned int MAX_CHAR = alphabet.length();
10 const int MAX_SIZE = 300;
11 const int MIN_LENGTH = 3;
12 const int MAX_MISMATCHES = 2;
13 
15 public:
16  int begin, nchildren, *end;
17  suffix_node **children, *parent, *suffix_link;
18  suffix_node(int b, int *e, suffix_node *p, suffix_node *l);
19  bool is_leaf_node();
20  bool contains_child(int ext);
21  int get_length();
22  int get_depth();
23  std::string get_longest_common_substring(std::string s1, std::string s2);
24  std::string get_path(std::string s);
25  void extend_path(int *e);
26  suffix_node* add_child(int ext, int b, int *e, suffix_node* l);
27  void add_child(suffix_node* c, int ext);
28  suffix_node* get_child(int ext);
29  bool contains_depth(int depth);
30  void print(std::string s);
31  bool walk_next(int &beg, int &suffix_length);
32 };
33 
34 suffix_node* build_suffix_tree(std::string s);
35 std::string get_reverse_complement(std::string rev_read);
36 std::vector<std::string> read_adapters_from_fasta(std::string p, std::string n);
37 int trim_adapter(std::string f1, std::string f2, std::string adp_path, std::string p);
38 
39 #endif
Definition: suffix_tree.h:14