Mercurial > repos > aaronquinlan > multi_intersect
diff BEDTools-Version-2.14.3/src/mergeBed/mergeBed.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/mergeBed/mergeBed.h Thu Nov 03 10:25:04 2011 -0400 @@ -0,0 +1,59 @@ +/***************************************************************************** + mergeBed.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 <vector> +#include <algorithm> +#include <numeric> +#include <iostream> +#include <fstream> +#include <limits.h> +#include <stdlib.h> + +using namespace std; + + +//************************************************ +// Class methods and elements +//************************************************ +class BedMerge { + +public: + + // constructor + BedMerge(string &bedFile, bool numEntries, + int maxDistance, bool forceStrand, + bool reportNames, bool reportScores, const string &scoreOp); + + // destructor + ~BedMerge(void); + + void MergeBed(); + void MergeBedStranded(); + +private: + + string _bedFile; + bool _numEntries; + bool _forceStrand; + bool _reportNames; + bool _reportScores; + string _scoreOp; + int _maxDistance; + // instance of a bed file class. + BedFile *_bed; + + void Report(string chrom, int start, int end, const vector<string> &names, const vector<string> &scores, int mergeCount); + void ReportStranded(string chrom, int start, int end, const vector<string> &names, const vector<string> &scores, int mergeCount, string strand); + void ReportMergedNames(const vector<string> &names); + void ReportMergedScores(const vector<string> &scores); + +};