annotate BEDTools-Version-2.14.3/src/unionBedGraphs/intervalItem.h @ 0:dfcd8b6c1bda

Uploaded
author aaronquinlan
date Thu, 03 Nov 2011 10:25:04 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
1 /*****************************************************************************
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
2 intervalItem.h
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
3
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
4 (c) 2010 - Assaf Gordon
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
5 Hall Laboratory
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
6 Department of Biochemistry and Molecular Genetics
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
7 University of Virginia
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
8 aaronquinlan@gmail.com
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
9
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
10 Licenced under the GNU General Public License 2.0 license.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
11 ******************************************************************************/
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
12 #ifndef INTERVALITEM_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
13 #define INTERVALITEM_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
14
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
15 #include <string>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
16 #include <queue>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
17
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
18 enum COORDINATE_TYPE {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
19 START,
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
20 END
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
21 };
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
22
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
23 /*
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
24 An interval item in the priority queue.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
25
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
26 An IntervalItem can mark either a START position or an END position.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
27 */
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
28 class IntervalItem
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
29 {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
30 private:
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
31 IntervalItem();
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
32
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
33 public:
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
34 int source_index; // which source BedGraph file this came from
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
35 COORDINATE_TYPE coord_type; // is this the start or the end position?
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
36 CHRPOS coord;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
37 std::string depth;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
38
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
39 IntervalItem(int _index, COORDINATE_TYPE _type, CHRPOS _coord, std::string _depth) :
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
40 source_index(_index),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
41 coord_type(_type),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
42 coord(_coord),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
43 depth(_depth)
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
44 {}
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
45
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
46 IntervalItem(const IntervalItem &other) :
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
47 source_index(other.source_index),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
48 coord_type(other.coord_type),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
49 coord(other.coord),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
50 depth(other.depth)
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
51 {}
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
52
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
53 bool operator< ( const IntervalItem& other ) const
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
54 {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
55 return this->coord > other.coord;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
56 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
57 };
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
58
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
59 // our priority queue
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
60 typedef std::priority_queue<IntervalItem> INTERVALS_PRIORITY_QUEUE;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
61
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
62 #endif