Mercurial > repos > aaronquinlan > multi_intersect
diff BEDTools-Version-2.14.3/src/genomeCoverageBed/genomeCoverageBed.h @ 0:dfcd8b6c1bda
Uploaded
author | aaronquinlan |
---|---|
date | Thu, 03 Nov 2011 10:25:04 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BEDTools-Version-2.14.3/src/genomeCoverageBed/genomeCoverageBed.h Thu Nov 03 10:25:04 2011 -0400 @@ -0,0 +1,104 @@ +/***************************************************************************** +genomeCoverage.h + +(c) 2009 - Aaron Quinlan +Hall Laboratory +Department of Biochemistry and Molecular Genetics +University of Virginia +aaronquinlan@gmail.com + +Licenced under the GNU General Public License 2.0 license. +******************************************************************************/ +#include "bedFile.h" +#include "genomeFile.h" + +#include "BamAncillary.h" +#include "api/BamReader.h" +#include "api/BamAux.h" +using namespace BamTools; + +#include <vector> +#include <set> +#include <iostream> +#include <fstream> +using namespace std; + + +//*********************************************** +// Typedefs +//*********************************************** +typedef map<int, DEPTH, less<int> > depthMap; +typedef map<string, depthMap, less<string> > chromDepthMap; + +typedef map<int, unsigned int, less<int> > histMap; +typedef map<string, histMap, less<string> > chromHistMap; + +//************************************************ +// Class methods and elements +//************************************************ +class BedGenomeCoverage { + +public: + + // constructor + BedGenomeCoverage(string bedFile, string genomeFile, + bool eachBase, bool startSites, + bool bedGraph, bool bedGraphAll, + int max, float scale, + bool bamInput, bool obeySplits, + bool filterByStrand, string requestedStrand, + bool only_5p_end, bool only_3p_end, + bool eachBaseZeroBased, + bool add_gb_track_line, string gb_track_line_opts); + + // destructor + ~BedGenomeCoverage(void); + +private: + + // data (parms) + string _bedFile; + string _genomeFile; + bool _bamInput; + bool _eachBase; + bool _eachBaseZeroBased; + bool _startSites; + bool _bedGraph; + bool _bedGraphAll; + int _max; + float _scale; + bool _obeySplits; + bool _filterByStrand; + bool _only_5p_end; + bool _only_3p_end; + bool _add_gb_track_line; + string _gb_track_line_opts; + string _requestedStrand; + + BedFile *_bed; + GenomeFile *_genome; + + // data for internal processing + chromDepthMap _chromCov; + string _currChromName ; + vector<DEPTH> _currChromCoverage; + chromHistMap _currChromDepthHist; + int _currChromSize ; + set<string> _visitedChromosomes; + + + // methods + void CoverageBed(); + void CoverageBam(string bamFile); + void LoadBamHeaderIntoGenomeFile(const string &bamFile); + void ReportChromCoverage(const vector<DEPTH> &, const int &chromSize, const string &chrom, chromHistMap&); + void ReportGenomeCoverage(chromHistMap &chromDepthHist); + void ReportChromCoverageBedGraph(const vector<DEPTH> &chromCov, const int &chromSize, const string &chrom); + void ResetChromCoverage(); + void StartNewChrom (const string& chrom); + void AddCoverage (int start, int end); + void AddBlockedCoverage(const vector<BED> &bedBlocks); + void PrintFinalCoverage(); + void PrintTrackDefinitionLine(); +}; +