| 0 | 1 /***************************************************************************** | 
|  | 2   flankBed.h | 
|  | 3 | 
|  | 4   (c) 2009 - Aaron Quinlan | 
|  | 5   Hall Laboratory | 
|  | 6   Department of Biochemistry and Molecular Genetics | 
|  | 7   University of Virginia | 
|  | 8   aaronquinlan@gmail.com | 
|  | 9 | 
|  | 10   Licenced under the GNU General Public License 2.0 license. | 
|  | 11 ******************************************************************************/ | 
|  | 12 | 
|  | 13 #include "bedFile.h" | 
|  | 14 #include "genomeFile.h" | 
|  | 15 | 
|  | 16 #include <vector> | 
|  | 17 #include <iostream> | 
|  | 18 #include <fstream> | 
|  | 19 #include <map> | 
|  | 20 #include <cstdlib> | 
|  | 21 #include <ctime> | 
|  | 22 using namespace std; | 
|  | 23 | 
|  | 24 | 
|  | 25 //************************************************ | 
|  | 26 // Class methods and elements | 
|  | 27 //************************************************ | 
|  | 28 class BedFlank { | 
|  | 29 | 
|  | 30 public: | 
|  | 31 | 
|  | 32     // constructor | 
|  | 33     BedFlank(string &bedFile, string &genomeFile, bool forceStrand, float leftSlop, float rightSlop, bool fractional); | 
|  | 34 | 
|  | 35     // destructor | 
|  | 36     ~BedFlank(void); | 
|  | 37 | 
|  | 38 | 
|  | 39 | 
|  | 40 private: | 
|  | 41 | 
|  | 42     string _bedFile; | 
|  | 43     string _genomeFile; | 
|  | 44 | 
|  | 45     bool   _forceStrand; | 
|  | 46     float  _leftFlank; | 
|  | 47     float  _rightFlank; | 
|  | 48     bool   _fractional; | 
|  | 49 | 
|  | 50     BedFile *_bed; | 
|  | 51     GenomeFile *_genome; | 
|  | 52 | 
|  | 53     // methods | 
|  | 54 | 
|  | 55     void FlankBed(); | 
|  | 56 | 
|  | 57     // method to grab requested flank w.r.t. a single BED entry | 
|  | 58     void AddFlank(BED &bed, int leftSlop, int rightSlop); | 
|  | 59 | 
|  | 60     // method to grab requested flank w.r.t. a single BED entry, | 
|  | 61     // while choosing flanks based on strand | 
|  | 62     void AddStrandedFlank(BED &bed, int leftSlop, int rightSlop); | 
|  | 63 }; |