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 */