1 /*****************************************************************************
2   shiftBed.h
3 
4   (c) 2016 - David Richardson
5   European Molecular Biology Laboratory, European Bioinformatics Institute
6   davidr@ebi.ac.uk
7 
8   Licenced under the GNU General Public License 2.0 license.
9 ******************************************************************************/
10 
11 #include "bedFile.h"
12 #include "GenomeFile.h"
13 
14 #include <vector>
15 #include <iostream>
16 #include <fstream>
17 #include <map>
18 #include <cstdlib>
19 #include <ctime>
20 using namespace std;
21 
22 
23 //************************************************
24 // Class methods and elements
25 //************************************************
26 class BedShift {
27 
28 public:
29 
30     // constructor
31     BedShift(string &bedFile, string &genomeFile, float shiftMinus, float shiftPlus, bool fractional, bool printHeader);
32 
33     // destructor
34     ~BedShift(void);
35 
36 
37 
38 private:
39 
40     string _bedFile;
41     string _genomeFile;
42 
43     float  _shiftMinus;
44     float  _shiftPlus;
45     bool   _fractional;
46     bool   _printHeader;
47 
48     BedFile *_bed;
49     GenomeFile *_genome;
50 
51     // methods
52 
53     void ShiftBed();
54 
55     // method to add requested "slop" to a single BED entry
56     void AddShift(BED &bed);
57 };
58