/***********************************************************************/
-SharedRAbundVector::SharedRAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0) {}
+SharedRAbundVector::SharedRAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0) {globaldata = GlobalData::getInstance();}
+/***********************************************************************/
+
+SharedRAbundVector::~SharedRAbundVector() {
+ //for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; }
+
+}
/***********************************************************************/
SharedRAbundVector::SharedRAbundVector(int n) : DataVector(), maxRank(0), numBins(n), numSeqs(0) {
+ globaldata = GlobalData::getInstance();
individual newGuy;
//initialize data
for (int i=0; i< n; i++) {
}
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function SharedRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function SharedRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "SharedRAbundVector");
exit(1);
}
}
if (globaldata->gGroupmap == NULL) { groupmap = new GroupMap(); }
- int num, inputData, pos, count;
+ int num, inputData, count;
count = 0;
string holdLabel, nextLabel, groupN;
individual newguy;
- for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; }
+ for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; lookup[i] = NULL; }
lookup.clear();
//read in first row since you know there is at least 1 group.
for(int i=0;i<num;i++){
f >> inputData;
- lookup[0]->push_back(inputData, i, groupN); //abundance, bin, group
- push_back(inputData, i, groupN);
- numSeqs += inputData;
- numBins++;
+ lookup[0]->push_back(inputData, groupN); //abundance, bin, group
+ push_back(inputData, groupN);
+ //numSeqs += inputData;
+ //numBins++;
if (inputData > maxRank) { maxRank = inputData; }
}
- //save position in file in case next line is a new label.
- pos = f.tellg();
+ gobble(f);
if (f.eof() != true) { f >> nextLabel; }
//fill vector.
for(int i=0;i<num;i++){
f >> inputData;
- lookup[count]->push_back(inputData, i, groupN); //abundance, bin, group
+ lookup[count]->push_back(inputData, groupN); //abundance, bin, group
}
- //save position in file in case next line is a new label.
- pos = f.tellg();
-
+ gobble(f);
+
if (f.eof() != true) { f >> nextLabel; }
}
//put file pointer back since you are now at a new distance label
- f.seekg(pos, ios::beg);
+ for (int i = 0; i < nextLabel.length(); i++) { f.unget(); }
if (globaldata->gGroupmap == NULL) { globaldata->gGroupmap = groupmap; }
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function SharedRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function SharedRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "SharedRAbundVector");
exit(1);
}
}
numSeqs += (newBinSize - oldBinSize);
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "set");
exit(1);
}
}
}
/***********************************************************************/
-void SharedRAbundVector::push_back(int binSize, int otu, string groupName){
+void SharedRAbundVector::push_back(int binSize, string groupName){
try {
individual newGuy;
newGuy.abundance = binSize;
newGuy.group = groupName;
- newGuy.bin = otu;
+ newGuy.bin = data.size();
data.push_back(newGuy);
numBins++;
numSeqs += binSize;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function push_back. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function push_back. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "push_back");
exit(1);
}
}
numSeqs += binSize;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function insert. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function insert. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "insert");
exit(1);
}
}
numSeqs += binSize;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function push_front. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function push_front. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "push_front");
exit(1);
}
}
output << endl;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "print");
exit(1);
}
}
for (int i = 0; i < lookup.size(); i++) {
//if this sharedrabund is not from a group the user wants then delete it.
if (util->isValidGroup(lookup[i]->getGroup(), globaldata->Groups) == false) {
- delete lookup[i];
+ delete lookup[i]; lookup[i] = NULL;
lookup.erase(lookup.begin()+i);
i--;
}
}
-
+
+ delete util;
+
return lookup;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function getSharedRAbundVectors. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function getSharedRAbundVectors. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "getSharedRAbundVectors");
exit(1);
}
}
RAbundVector SharedRAbundVector::getRAbundVector() {
try {
- RAbundVector rav(data.size());
+ RAbundVector rav;
for (int i = 0; i < data.size(); i++) {
- rav.set(i, data[i].abundance);
+ if(data[i].abundance != 0) {
+ rav.push_back(data[i].abundance);
+ }
}
-
+
+ rav.setLabel(label);
return rav;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function getRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function getRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "getRAbundVector");
exit(1);
}
}
return rav;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function getRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function getRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "getRAbundVector2");
exit(1);
}
}
return sav;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function getSharedSAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function getSharedSAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "getSharedSAbundVector");
exit(1);
}
}
return sav;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function getSAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function getSAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "getSAbundVector");
exit(1);
}
}
return ov;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function getOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function getOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "getSharedOrderVector");
exit(1);
}
}
return ov;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function getOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SharedRAbundVector class function getOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SharedRAbundVector", "getOrderVector");
exit(1);
}
}