Mercurial > repos > aaronquinlan > multi_intersect
diff BEDTools-Version-2.14.3/src/shuffleBed/shuffleBed.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/shuffleBed/shuffleBed.h Thu Nov 03 10:25:04 2011 -0400 @@ -0,0 +1,76 @@ +/***************************************************************************** + shuffleBed.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 <vector> +#include <iostream> +#include <fstream> +#include <map> +#include <cstdlib> +#include <ctime> +#include <sys/time.h> +#include <unistd.h> +#include <sys/types.h> +using namespace std; + +const int MAX_TRIES = 1000000; + +//************************************************ +// Class methods and elements +//************************************************ +class BedShuffle { + +public: + + // constructor + BedShuffle(string &bedFile, string &genomeFile, string &excludeFile, string &includeFile, + bool haveSeed, bool haveExclude, bool haveInclude, bool sameChrom, + float overlapFraction, int seed); + + // destructor + ~BedShuffle(void); + +private: + + string _bedFile; + string _genomeFile; + string _excludeFile; + string _includeFile; + float _overlapFraction; + int _seed; + bool _sameChrom; + bool _haveExclude; + bool _haveInclude; + bool _haveSeed; + + + // The BED file from which to compute coverage. + BedFile *_bed; + BedFile *_exclude; + BedFile *_include; + + GenomeFile *_genome; + + vector<string> _chroms; + int _numChroms; + vector<string> _includeChroms; + int _numIncludeChroms; + + // methods + void Shuffle(); + void ShuffleWithExclusions(); + void ShuffleWithInclusions(); + + void ChooseLocus(BED &); + void ChooseLocusFromInclusionFile(BED &); +};