annotate BEDTools-Version-2.14.3/src/utils/bedFilePE/bedFilePE.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 #ifndef BEDFILEPE_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
2 #define BEDFILEPE_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
3
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
4 #include <vector>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
5 #include <map>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
6 #include <string>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
7 #include <iostream>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
8 #include <fstream>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
9 #include <sstream>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
10 #include <cstring>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
11 #include <algorithm>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
12 #include "bedFile.h"
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
13 #include "lineFileUtilities.h"
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
14
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
15 using namespace std;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
16
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
17
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
18 /*
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
19 Structure for paired-end records
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
20 */
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
21 struct BEDPE {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
22
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
23 // UCSC BED fields
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
24 string chrom1;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
25 CHRPOS start1;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
26 CHRPOS end1;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
27
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
28 string chrom2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
29 CHRPOS start2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
30 CHRPOS end2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
31
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
32 string name;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
33 string score;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
34
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
35 string strand1;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
36 string strand2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
37
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
38 vector<string> otherFields;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
39 };
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
40
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
41
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
42
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
43
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
44 //************************************************
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
45 // BedFile Class methods and elements
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
46 //************************************************
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
47 class BedFilePE {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
48
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
49 public:
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
50
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
51 // Constructor
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
52 BedFilePE(string &);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
53
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
54 // Destructor
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
55 ~BedFilePE(void);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
56
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
57 // Open a BEDPE file for reading (creates an istream pointer)
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
58 void Open(void);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
59
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
60 // Close an opened BEDPE file.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
61 void Close(void);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
62
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
63 // Get the next BED entry in an opened BED file.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
64 BedLineStatus GetNextBedPE (BEDPE &bedpe, int &lineNum);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
65
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
66
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
67 // Methods
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
68
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
69 void reportBedPETab(const BEDPE &a);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
70 void reportBedPENewLine(const BEDPE &a);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
71 void loadBedPEFileIntoMap();
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
72 void splitBedPEIntoBeds(const BEDPE &a, const int &lineNum, MATE *bedEntry1, MATE *bedEntry2);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
73
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
74
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
75 void FindOverlapsPerBin(int bEnd, string chrom, CHRPOS start, CHRPOS end, string name, string strand,
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
76 vector<MATE> &hits, float overlapFraction, bool forceStrand, bool enforceDiffNames);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
77
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
78
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
79 string bedFile;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
80 unsigned int bedType;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
81
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
82 masterMateMap bedMapEnd1;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
83 masterMateMap bedMapEnd2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
84
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
85 private:
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
86 istream *_bedStream;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
87
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
88 // methods
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
89 BedLineStatus parseLine (BEDPE &bedpe, const vector<string> &lineVector, int &lineNum);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
90 bool parseBedPELine (BEDPE &bed, const vector<string> &lineVector, const int &lineNum);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
91 };
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
92
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
93 #endif /* BEDFILEPE_H */