annotate BEDTools-Version-2.14.3/src/windowBed/windowBed.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 windowBed.h
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
3
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
4 (c) 2009 - Aaron Quinlan
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 WINDOWBED_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
13 #define WINDOWBED_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
14
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
15 #include "api/BamReader.h"
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
16 #include "api/BamWriter.h"
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
17 #include "api/BamAux.h"
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
18 using namespace BamTools;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
19
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
20 #include "bedFile.h"
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
21 #include <vector>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
22 #include <iostream>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
23 #include <fstream>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
24
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
25 using namespace std;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
26
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
27 //************************************************
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
28 // Class methods and elements
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
29 //************************************************
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
30 class BedWindow {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
31
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
32 public:
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
33
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
34 // constructor
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
35 BedWindow(string bedAFile, string bedBFile, int leftSlop, int rightSlop,
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
36 bool anyHit, bool noHit, bool writeCount, bool strandWindows,
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
37 bool matchOnSameStrand, bool matchOnDiffStrand, bool bamInput, bool bamOutput, bool isUncompressedBam);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
38
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
39 // destructor
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
40 ~BedWindow(void);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
41
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
42 private:
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
43
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
44 string _bedAFile;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
45 string _bedBFile;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
46 bool _anyHit;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
47 bool _writeCount;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
48 int _leftSlop;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
49 int _rightSlop;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
50 bool _noHit;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
51 bool _strandWindows;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
52 bool _matchOnSameStrand;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
53 bool _matchOnDiffStrand;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
54 bool _bamInput;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
55 bool _bamOutput;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
56 bool _isUncompressedBam;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
57
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
58 // instance of a bed file class.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
59 BedFile *_bedA, *_bedB;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
60
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
61 // methods
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
62 void WindowIntersectBed();
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
63 void WindowIntersectBam(string bamFile);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
64 void FindWindowOverlaps(const BED &a, vector<BED> &hits);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
65 bool FindOneOrMoreWindowOverlaps(const BED &a);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
66 void AddWindow(const BED &a, CHRPOS &fudgeStart, CHRPOS &fudgeEnd);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
67
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
68 };
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
69 #endif /* WINDOWBED_H */