// ========================================================= // Convenience method for reporting merged blocks by strand // ========================================================= 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++;} printf("%s\t%d\t%d", chrom.c_str(), start, end); // just the merged intervals if (_numEntries == false && _reportNames == false && _reportScores == false) { printf("\t%s\n", strand.c_str()); } // merged intervals and counts else if (_numEntries == true && _reportNames == false && _reportScores == false) { printf("\t%d\t%s\n", mergeCount, strand.c_str()); } // merged intervals and names else if (_numEntries == false && _reportNames == true && _reportScores == false) { ReportMergedNames(names); printf("\t%s\n", strand.c_str()); } // merged intervals and scores else if (_numEntries == false && _reportNames == false && _reportScores == true) { ReportMergedScores(scores); printf("\t%s\n", strand.c_str()); } // merged intervals, names, and scores else if (_numEntries == false && _reportNames == true && _reportScores == true) { ReportMergedNames(names); ReportMergedScores(scores); printf("\t%s\n", strand.c_str()); } }
// =============================================== // Convenience method for reporting merged blocks // ================================================ void BedMerge::Report(string chrom, int start, int end, const vector<string> &names, const vector<string> &scores, int mergeCount) { // 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 if (_numEntries == false && _reportNames == false && _reportScores == false) { printf("\n"); } // merged intervals and counts else if (_numEntries == true && _reportNames == false && _reportScores == false) { printf("\t%d\n", mergeCount); } // merged intervals, counts, and scores else if (_numEntries == true && _reportNames == false && _reportScores == true) { printf("\t%d", mergeCount); ReportMergedScores(scores); printf("\n"); } // merged intervals, counts, and names else if (_numEntries == true && _reportNames == true && _reportScores == false) { ReportMergedNames(names); printf("\t%d\n", mergeCount); } // merged intervals, counts, names, and scores else if (_numEntries == true && _reportNames == true && _reportScores == true) { ReportMergedNames(names); ReportMergedScores(scores); printf("\t%d\n", mergeCount); } // merged intervals and names else if (_numEntries == false && _reportNames == true && _reportScores == false) { ReportMergedNames(names); printf("\n"); } // merged intervals and scores else if (_numEntries == false && _reportNames == false && _reportScores == true) { ReportMergedScores(scores); printf("\n"); } // merged intervals, names, and scores else if (_numEntries == false && _reportNames == true && _reportScores == true) { ReportMergedNames(names); ReportMergedScores(scores); printf("\n"); } }