Mercurial > repos > aaronquinlan > multi_intersect
diff BEDTools-Version-2.14.3/src/utils/genomeFile/genomeFile.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/utils/genomeFile/genomeFile.h Thu Nov 03 10:25:04 2011 -0400 @@ -0,0 +1,62 @@ +/***************************************************************************** + genomeFile.h + + (c) 2009 - Aaron Quinlan + Hall Laboratory + Department of Biochemistry and Molecular Genetics + University of Virginia + aaronquinlan@gmail.com + + Licensed under the GNU General Public License 2.0 license. +******************************************************************************/ +#ifndef GENOMEFILE_H +#define GENOMEFILE_H + +#include <map> +#include <string> +#include <iostream> +#include <sstream> +#include <fstream> +#include <cstring> +#include <cstdio> +#include "api/BamReader.h" +#include "api/BamAux.h" +using namespace BamTools; + +using namespace std; + + +// typedef for mapping b/w chrom name and it's size in b.p. +typedef map<string, int, std::less<string> > chromToSizes; + + +class GenomeFile { + +public: + + // Constructor using a file + GenomeFile(const string &genomeFile); + + // Constructor using a vector of BamTools RefVector + GenomeFile(const RefVector &genome); + + // Destructor + ~GenomeFile(void); + + // load a GENOME file into a map keyed by chrom. value is size of chrom. + void loadGenomeFileIntoMap(); + + int getChromSize(const string &chrom); // return the size of a chromosome + vector<string> getChromList(); // return a list of chrom names + int getNumberOfChroms(); // return the number of chroms + string getGenomeFileName(); // return the name of the genome file + + + +private: + string _genomeFile; + chromToSizes _chromSizes; + vector<string> _chromList; +}; + +#endif /* GENOMEFILE_H */