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