diff --git a/src/mergeBed/mergeBed.cpp b/src/mergeBed/mergeBed.cpp index 934a1bca41481d79c63639b472a81c5d7b25587c..393eefeaffa7928c147e4569bdd81b7cdec0a1c2 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 fc4358432e782541d640488a5a6b2a1c597f00bf..03ee935511763992ad5503f2c34d2222570c2516 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 491d7bcabe3e0c8a4e56c262805050b1ab2db109..8d80113f65f44004eda251b6acd7e81aefb24252 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 {