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