X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sharedordervector.cpp;h=973f69553a476c4e67f72c4b9f10cecae0bc32b6;hb=ec453945974b5c72af0bea042e3517312566d592;hp=2092706d8cf5a5c429fb937820663ff0a5738be1;hpb=d53f63d7e0d9c3feeb8ded5a74e6c150fae50fe9;p=mothur.git diff --git a/sharedordervector.cpp b/sharedordervector.cpp index 2092706..973f695 100644 --- a/sharedordervector.cpp +++ b/sharedordervector.cpp @@ -11,8 +11,7 @@ using namespace std; #include "sharedordervector.h" -#include "utilities.hpp" - +#include "sharedutilities.h" /***********************************************************************/ @@ -30,7 +29,7 @@ SharedOrderVector::SharedOrderVector(string id, vector ov) : //This function is used to read a .shared file for the collect.shared, rarefaction.shared and summary.shared commands //if you don't use a list and groupfile. -SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { +SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { //reads in a shared file try { globaldata = GlobalData::getInstance(); maxRank = 0; numBins = 0; numSeqs = 0; @@ -56,7 +55,7 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { f >> inputData; for (int j = 0; j < inputData; j++) { - push_back(i+1, i+1, groupN); + push_back(i, i, groupN); numSeqs++; } } @@ -81,7 +80,7 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { f >> inputData; for (int j = 0; j < inputData; j++) { - push_back(i+1, i+1, groupN); + push_back(i, i, groupN); numSeqs++; } } @@ -97,8 +96,9 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { f.seekg(pos, ios::beg); if (globaldata->gGroupmap == NULL) { globaldata->gGroupmap = groupmap; } - + updateStats(); + } catch(exception& e) { cout << "Standard Error: " << e.what() << " has occurred in the SharedOrderVector class Function SharedOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; @@ -112,21 +112,18 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { /***********************************************************************/ int SharedOrderVector::getNumBins(){ - if(needToUpdate == 1){ updateStats(); } return numBins; } /***********************************************************************/ int SharedOrderVector::getNumSeqs(){ - if(needToUpdate == 1){ updateStats(); } return numSeqs; } /***********************************************************************/ int SharedOrderVector::getMaxRank(){ - if(needToUpdate == 1){ updateStats(); } return maxRank; } @@ -140,8 +137,8 @@ void SharedOrderVector::set(int index, int binNumber, int abund, string groupNam data[index].group = groupName; data[index].bin = binNumber; data[index].abundance = abund; - needToUpdate = 1; - + //if (abund > maxRank) { maxRank = abund; } + updateStats(); } /***********************************************************************/ @@ -159,8 +156,10 @@ void SharedOrderVector::push_back(int binNumber, int abund, string groupName){ newGuy.abundance = abund; newGuy.bin = binNumber; data.push_back(newGuy); - needToUpdate = 1; - + //numSeqs++; + //numBins++; + //if (abund > maxRank) { maxRank = abund; } + updateStats(); } /***********************************************************************/ @@ -297,6 +296,28 @@ SharedRAbundVector SharedOrderVector::getSharedRAbundVector(string group) { exit(1); } +} +/***********************************************************************/ +vector SharedOrderVector::getSharedRAbundVector() { + try { + SharedUtil* util; + util = new SharedUtil(); + vector lookup; + + util->setGroups(globaldata->Groups, globaldata->gGroupmap->namesOfGroups); + util->getSharedVectors(globaldata->Groups, lookup, this); + + return lookup; + } + catch(exception& e) { + cout << "Standard Error: " << e.what() << " has occurred in the SharedOrderVector class Function getSharedRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + exit(1); + } + catch(...) { + cout << "An unknown error has occurred in the SharedOrderVector class function getSharedRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + exit(1); + } + } /***********************************************************************/ SharedSAbundVector SharedOrderVector::getSharedSAbundVector(string group) { @@ -320,6 +341,7 @@ SharedSAbundVector SharedOrderVector::getSharedSAbundVector(string group) { /***********************************************************************/ SharedOrderVector SharedOrderVector::getSharedOrderVector(){ + random_shuffle(data.begin(), data.end()); return *this; } @@ -333,18 +355,18 @@ void SharedOrderVector::updateStats(){ maxRank = 0; for(int i=0;i hold(numSeqs, 0); - vector hold(numSeqs); - - for(int i=0;i numBins) { numBins = data[i].bin; }