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);
+    
+};