18
|
1 #ifndef NC_LIST_CREATOR_HPP
|
|
2 #define NC_LIST_CREATOR_HPP
|
|
3
|
|
4 #include "ncList.hpp"
|
|
5 #include "table.hpp"
|
|
6 #include "genomicInterval.hpp"
|
|
7 #include <set>
|
|
8 #include <map>
|
|
9
|
|
10 typedef set<string> Chromosomes;
|
|
11 typedef map<string, NCList *> NCLists;
|
|
12
|
|
13 static const unsigned int H_CELL_SIZE = 2;
|
|
14 static const unsigned int L_CELL_SIZE = 4;
|
|
15 static const unsigned int T_CELL_SIZE = 5;
|
|
16
|
|
17 static const unsigned int START = 0;
|
|
18 static const unsigned int END = 1;
|
|
19 static const unsigned int LIST = 2;
|
|
20 static const unsigned int PARENT = 3;
|
|
21 static const unsigned int NEW = 4;
|
|
22 static const unsigned int LENGTH = 1;
|
|
23
|
|
24
|
|
25 class NCListCreator {
|
|
26
|
|
27 private:
|
|
28 string inputFileName;
|
|
29 Table *h, *l, *t;
|
|
30
|
|
31 string getFileName(string chromosome);
|
|
32 void buildLists(string chromosome);
|
|
33 void createTables(string chromosome);
|
|
34 void initLists(string chromosome);
|
|
35 void fillTables(string chromosome);
|
|
36 void labelLists();
|
|
37 void computeSubStart();
|
|
38 void computeAbsPosition();
|
|
39 void cleanFiles();
|
|
40 void transfer(string chromosome);
|
|
41 unsigned int nbLists, nbLines;
|
|
42
|
|
43
|
|
44 public:
|
|
45 Chromosomes chromosomes;
|
|
46 NCLists ncLists;
|
|
47
|
|
48 NCListCreator (string inputFileName);
|
|
49
|
|
50 void splitFile ();
|
|
51 void run ();
|
|
52
|
|
53 };
|
|
54
|
|
55 #endif
|
|
56
|
|
57
|