0
|
1 /*****************************************************************************
|
|
2 multiBamCov.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 #ifndef MULTICOVBAM_H
|
|
13 #define MULTICOVBAM_H
|
|
14
|
|
15 #include "bedFile.h"
|
|
16 #include "api/BamMultiReader.h"
|
|
17 using namespace BamTools;
|
|
18
|
|
19
|
|
20 #include <vector>
|
|
21 #include <iostream>
|
|
22 #include <fstream>
|
|
23 #include <stdlib.h>
|
|
24 using namespace std;
|
|
25
|
|
26
|
|
27
|
|
28 class MultiCovBam {
|
|
29
|
|
30 public:
|
|
31
|
|
32 // constructor
|
|
33 MultiCovBam(const vector<string> &bam_files, const string bed_file,
|
|
34 int minQual, bool properOnly,
|
|
35 bool keepDuplicates, bool keepFailedQC);
|
|
36
|
|
37 // destructor
|
|
38 ~MultiCovBam(void);
|
|
39
|
|
40 void CollectCoverage();
|
|
41
|
|
42 private:
|
|
43
|
|
44 //------------------------------------------------
|
|
45 // private attributes
|
|
46 //------------------------------------------------
|
|
47 vector<string> _bam_files;
|
|
48 string _bed_file;
|
|
49 BedFile *_bed;
|
|
50
|
|
51 // attributes to control what is counted
|
|
52 int _minQual;
|
|
53 bool _properOnly;
|
|
54 bool _keepDuplicates;
|
|
55 bool _keepFailedQC;
|
|
56
|
|
57
|
|
58 map<string, int> bamFileMap;
|
|
59
|
|
60 void LoadBamFileMap(void);
|
|
61 void ReportCounts(const vector<int> &counts);
|
|
62 };
|
|
63
|
|
64 #endif /* MULTIBAMCOV_H */
|