Skip to content
Snippets Groups Projects
Commit e8909692 authored by Aaron's avatar Aaron
Browse files

Added -header to sortBed

parent 696f8a89
No related branches found
No related tags found
No related merge requests found
...@@ -15,9 +15,15 @@ ...@@ -15,9 +15,15 @@
// //
// Constructor // Constructor
// //
BedSort::BedSort(string &bedFile) { BedSort::BedSort(string &bedFile, bool printHeader) {
_bedFile = bedFile; _bedFile = bedFile;
_bed = new BedFile(bedFile); _bed = new BedFile(bedFile);
_bed->loadBedFileIntoMapNoBin();
// report the header first if asked.
if (printHeader == true) {
_bed->PrintHeader();
}
} }
// //
...@@ -29,10 +35,6 @@ BedSort::~BedSort(void) { ...@@ -29,10 +35,6 @@ BedSort::~BedSort(void) {
void BedSort::SortBed() { void BedSort::SortBed() {
// load the "B" bed file into a map so
// that we can easily compare "A" to it for overlaps
_bed->loadBedFileIntoMapNoBin();
// loop through each chromosome and merge their BED entries // loop through each chromosome and merge their BED entries
for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) { for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) {
...@@ -48,10 +50,6 @@ void BedSort::SortBed() { ...@@ -48,10 +50,6 @@ void BedSort::SortBed() {
void BedSort::SortBedBySizeAsc() { void BedSort::SortBedBySizeAsc() {
// load the "B" bed file into a map so
// that we can easily compare "A" to it for overlaps
_bed->loadBedFileIntoMapNoBin();
vector<BED> masterList; vector<BED> masterList;
masterList.reserve(1000000); masterList.reserve(1000000);
...@@ -79,10 +77,6 @@ void BedSort::SortBedBySizeAsc() { ...@@ -79,10 +77,6 @@ void BedSort::SortBedBySizeAsc() {
void BedSort::SortBedBySizeDesc() { void BedSort::SortBedBySizeDesc() {
// load the "B" bed file into a map so
// that we can easily compare "A" to it for overlaps
_bed->loadBedFileIntoMapNoBin();
vector<BED> masterList; vector<BED> masterList;
masterList.reserve(1000000); masterList.reserve(1000000);
...@@ -109,10 +103,6 @@ void BedSort::SortBedBySizeDesc() { ...@@ -109,10 +103,6 @@ void BedSort::SortBedBySizeDesc() {
void BedSort::SortBedByChromThenSizeAsc() { void BedSort::SortBedByChromThenSizeAsc() {
// load the "B" bed file into a map so
// that we can easily compare "A" to it for overlaps
_bed->loadBedFileIntoMapNoBin();
// loop through each chromosome and merge their BED entries // loop through each chromosome and merge their BED entries
for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) { for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) {
...@@ -129,10 +119,6 @@ void BedSort::SortBedByChromThenSizeAsc() { ...@@ -129,10 +119,6 @@ void BedSort::SortBedByChromThenSizeAsc() {
void BedSort::SortBedByChromThenSizeDesc() { void BedSort::SortBedByChromThenSizeDesc() {
// load the "B" bed file into a map so
// that we can easily compare "A" to it for overlaps
_bed->loadBedFileIntoMapNoBin();
// loop through each chromosome and merge their BED entries // loop through each chromosome and merge their BED entries
for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) { for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) {
...@@ -150,10 +136,6 @@ void BedSort::SortBedByChromThenSizeDesc() { ...@@ -150,10 +136,6 @@ void BedSort::SortBedByChromThenSizeDesc() {
void BedSort::SortBedByChromThenScoreAsc() { void BedSort::SortBedByChromThenScoreAsc() {
// load the "B" bed file into a map so
// that we can easily compare "A" to it for overlaps
_bed->loadBedFileIntoMapNoBin();
if (_bed->bedType >= 5) { if (_bed->bedType >= 5) {
// loop through each chromosome and merge their BED entries // loop through each chromosome and merge their BED entries
for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) { for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) {
...@@ -176,10 +158,6 @@ void BedSort::SortBedByChromThenScoreAsc() { ...@@ -176,10 +158,6 @@ void BedSort::SortBedByChromThenScoreAsc() {
void BedSort::SortBedByChromThenScoreDesc() { void BedSort::SortBedByChromThenScoreDesc() {
// load the "B" bed file into a map so
// that we can easily compare "A" to it for overlaps
_bed->loadBedFileIntoMapNoBin();
if (_bed->bedType >= 5) { if (_bed->bedType >= 5) {
// loop through each chromosome and merge their BED entries // loop through each chromosome and merge their BED entries
for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) { for (masterBedMapNoBin::iterator m = _bed->bedMapNoBin.begin(); m != _bed->bedMapNoBin.end(); ++m) {
......
...@@ -26,7 +26,7 @@ class BedSort { ...@@ -26,7 +26,7 @@ class BedSort {
public: public:
// constructor // constructor
BedSort(string &); BedSort(string &bedFile, bool printHeader);
// destructor // destructor
~BedSort(void); ~BedSort(void);
...@@ -44,7 +44,4 @@ private: ...@@ -44,7 +44,4 @@ private:
// instance of a bed file class. // instance of a bed file class.
BedFile *_bed; BedFile *_bed;
// methods
}; };
...@@ -40,7 +40,7 @@ int main(int argc, char* argv[]) { ...@@ -40,7 +40,7 @@ int main(int argc, char* argv[]) {
bool sortByChromThenSizeDesc = false; bool sortByChromThenSizeDesc = false;
bool sortByChromThenScoreAsc = false; bool sortByChromThenScoreAsc = false;
bool sortByChromThenScoreDesc = false; bool sortByChromThenScoreDesc = false;
bool printHeader = false;
for(int i = 1; i < argc; i++) { for(int i = 1; i < argc; i++) {
int parameterLength = (int)strlen(argv[i]); int parameterLength = (int)strlen(argv[i]);
...@@ -88,6 +88,9 @@ int main(int argc, char* argv[]) { ...@@ -88,6 +88,9 @@ int main(int argc, char* argv[]) {
sortByChromThenScoreDesc = true; sortByChromThenScoreDesc = true;
sortChoices++; sortChoices++;
} }
else if(PARAMETER_CHECK("-header", 7, parameterLength)) {
printHeader = true;
}
else { else {
cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl; cerr << endl << "*****ERROR: Unrecognized parameter: " << argv[i] << " *****" << endl << endl;
showHelp = true; showHelp = true;
...@@ -106,7 +109,7 @@ int main(int argc, char* argv[]) { ...@@ -106,7 +109,7 @@ int main(int argc, char* argv[]) {
if (!showHelp) { if (!showHelp) {
BedSort *bm = new BedSort(bedFile); BedSort *bm = new BedSort(bedFile, printHeader);
if (sortBySizeAsc) { if (sortBySizeAsc) {
bm->SortBedBySizeAsc(); bm->SortBedBySizeAsc();
...@@ -150,7 +153,9 @@ void ShowHelp(void) { ...@@ -150,7 +153,9 @@ void ShowHelp(void) {
cerr << "\t" << "-chrThenSizeA\t" << "Sort by chrom (asc), then feature size (asc)." << endl; cerr << "\t" << "-chrThenSizeA\t" << "Sort by chrom (asc), then feature size (asc)." << endl;
cerr << "\t" << "-chrThenSizeD\t" << "Sort by chrom (asc), then feature size (desc)." << endl; cerr << "\t" << "-chrThenSizeD\t" << "Sort by chrom (asc), then feature size (desc)." << endl;
cerr << "\t" << "-chrThenScoreA\t" << "Sort by chrom (asc), then score (asc)." << endl; cerr << "\t" << "-chrThenScoreA\t" << "Sort by chrom (asc), then score (asc)." << endl;
cerr << "\t" << "-chrThenScoreD\t" << "Sort by chrom (asc), then score (desc)." << endl << endl; cerr << "\t" << "-chrThenScoreD\t" << "Sort by chrom (asc), then score (desc)." << endl;
cerr << "\t-header\t" << "Print the header from the A file prior to results." << endl << endl;
exit(1); exit(1);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment