10 GroupInfo() { m = 0; starts.clear(); gids = NULL; }
11 ~GroupInfo() { m = 0; starts.clear(); if (gids != NULL) delete[] gids; }
13 void load(const char*);
15 int getm() const { return m; }
17 int gidAt(int sid) const {
18 assert(sid > 0 && sid < starts.back());
22 // sp : start position
23 int spAt(int gid) const {
24 assert(gid >= 0 && gid <= m);
30 std::vector<int> starts; // genes' start positions
34 void GroupInfo::load(const char* groupF) {
35 FILE *fi = fopen(groupF, "r");
38 if (fi == NULL) { fprintf(stderr, "Cannot open %s! It may not exist.\n", groupF); exit(-1); }
41 while(fscanf(fi, "%d", &pos) == 1) {
42 starts.push_back(pos);
46 m = starts.size() - 1;
47 gids = new int[starts.back()];
48 for (int i = 0; i < m; i++) {
49 for (int j = starts[i]; j < starts[i + 1]; j++) {
55 #endif /* GROUPINFO_H_ */