annotate BEDTools-Version-2.14.3/src/multiIntersectBed/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
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
31
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
32 public:
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
33 int source_index; // which source BedGraph file this came from
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
34 COORDINATE_TYPE coord_type; // is this the start or the end position?
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
35 CHRPOS coord;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
36
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
37 IntervalItem () :
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
38 source_index(-1),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
39 coord_type(START),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
40 coord(0)
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
41 {}
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
42
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
43 IntervalItem(int _index, COORDINATE_TYPE _type, CHRPOS _coord) :
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
44 source_index(_index),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
45 coord_type(_type),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
46 coord(_coord)
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
47 {}
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
48
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
49 IntervalItem(const IntervalItem &other) :
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
50 source_index(other.source_index),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
51 coord_type(other.coord_type),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
52 coord(other.coord)
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
53 {}
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
54
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
55 bool operator< ( const IntervalItem& other ) const
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
56 {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
57 return this->coord > other.coord;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
58 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
59 };
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
60
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
61 // our priority queue
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
62 typedef std::priority_queue<IntervalItem> INTERVALS_PRIORITY_QUEUE;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
63
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
64 #endif