From da54ba34a3da91d74973d2119f143967a144672d Mon Sep 17 00:00:00 2001
From: Aaron <aaronquinlan@gmail.com>
Date: Tue, 14 Jun 2011 09:53:21 -0400
Subject: [PATCH] mergeBed now _always_ reports in BED format (i.e., zero-based
 starts), regardless of input type.

---
 src/mergeBed/mergeBed.cpp   |  6 ++++--
 src/mergeBed/mergeMain.cpp  | 13 +++++++++----
 src/utils/bedFile/bedFile.h |  3 +--
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/mergeBed/mergeBed.cpp b/src/mergeBed/mergeBed.cpp
index 934a1bca..393eefea 100644
--- a/src/mergeBed/mergeBed.cpp
+++ b/src/mergeBed/mergeBed.cpp
@@ -168,7 +168,8 @@ BedMerge::~BedMerge(void) {
 void BedMerge::Report(string chrom, int start, int end, 
                       const vector<string> &names, const vector<string> &scores, int mergeCount) 
 {
-    if (_bed->isZeroBased == false) {start++;}
+    // ARQ: removed to force all output to be zero-based, BED format, reagrdless of input type
+    //if (_bed->isZeroBased == false) {start++;}
     
     printf("%s\t%d\t%d", chrom.c_str(), start, end);
     // just the merged intervals
@@ -205,7 +206,8 @@ void BedMerge::ReportStranded(string chrom, int start, int end,
                               const vector<string> &names, const vector<string> &scores,
                               int mergeCount, string strand) 
 {
-    if (_bed->isZeroBased == false) {start++;}
+    // ARQ: removed to force all output to be zero-based, BED format, reagrdless of input type
+    //if (_bed->isZeroBased == false) {start++;}
     
     printf("%s\t%d\t%d", chrom.c_str(), start, end);
     // just the merged intervals
diff --git a/src/mergeBed/mergeMain.cpp b/src/mergeBed/mergeMain.cpp
index fc435843..03ee9355 100644
--- a/src/mergeBed/mergeMain.cpp
+++ b/src/mergeBed/mergeMain.cpp
@@ -145,12 +145,17 @@ void ShowHelp(void) {
 
     cerr << "\t-nms\t"                   << "Report the names of the merged features separated by semicolons." << endl << endl;
     
-    cerr << "\t-scores [STRING]\t"       << "Report the scores of the merged features. Specify one of " << endl;
+    cerr << "\t-scores\t"                << "Report the scores of the merged features. Specify one of " << endl;
     cerr                                 << "\t\tthe following options for reporting scores:" << endl;
-    cerr                                 << "\t\t\t    sum, min, max," << endl;
-    cerr                                 << "\t\t\t    mean, median, mode, antimode," << endl;
-    cerr                                 << "\t\t\t    collapse (i.e., print a semicolon-separated list)," << endl << endl;
+    cerr                                 << "\t\t  sum, min, max," << endl;
+    cerr                                 << "\t\t  mean, median, mode, antimode," << endl;
+    cerr                                 << "\t\t  collapse (i.e., print a semicolon-separated list)," << endl;
+    cerr                                 << "\t\t- (INTEGER)" << endl << endl;
     
+    cerr << "Notes: " << endl;
+    cerr << "\t(1) All output, regardless of input type (e.g., GFF or VCF)" << endl;
+    cerr << "\t    will in BED format with zero-based starts" << endl << endl;
+
 
     // end the program here
     exit(1);
diff --git a/src/utils/bedFile/bedFile.h b/src/utils/bedFile/bedFile.h
index 491d7bca..8d80113f 100644
--- a/src/utils/bedFile/bedFile.h
+++ b/src/utils/bedFile/bedFile.h
@@ -697,7 +697,6 @@ private:
         if (numFields == this->bedType) {
             if (this->bedType >= 8 && _isGff) {
                 bed.chrom = lineVector[0];
-                // substract 1 to force the start to be BED-style
                 bed.start  = atoi(lineVector[3].c_str());
                 bed.end    = atoi(lineVector[4].c_str());
                 bed.name   = lineVector[2];
@@ -714,7 +713,7 @@ private:
                     bed.end++;
                     bed.zeroLength = true;
                 }
-                // GFF uses 1-based starts
+                // GFF uses 1-based starts, covert to zero-based
                 bed.start--;
             }
             else {
-- 
GitLab