]> git.donarmstrong.com Git - mothur.git/blobdiff - sharedrabundvector.cpp
removed various build warnings
[mothur.git] / sharedrabundvector.cpp
index cb20accf9f93819a45d8492ca9176cd8537b8a0c..9276b7bfdc0ae441a883f42ddd0aabcddf1f04bd 100644 (file)
@@ -51,7 +51,7 @@ SharedRAbundVector::SharedRAbundVector(string id, vector<individual> rav) : Data
                }
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "SharedRAbundVector");
+               m->errorOut(e, "SharedRAbundVector", "SharedRAbundVector");
                exit(1);
        }
 }
@@ -70,11 +70,15 @@ SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(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();
                
+               if (globaldata->saveNextLabel == "") {  f >> label;  }
+               else { label = globaldata->saveNextLabel; }
+               
                //read in first row since you know there is at least 1 group.
-               f >> label >> groupN >> num;
+               f >> groupN >> num;
+
                holdLabel = label;
                
                //add new vector to lookup
@@ -93,16 +97,17 @@ SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(0),
                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; }
-                       
                }
                
-               if (f.eof() != true) { f >> nextLabel; }
+               m->gobble(f);
                
+               if (!(f.eof())) { f >> nextLabel; }
+       
                //read the rest of the groups info in
                while ((nextLabel == holdLabel) && (f.eof() != true)) {
                        f >> groupN >> num;
@@ -110,6 +115,7 @@ SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(0),
                        
                        if (globaldata->gGroupmap == NULL) { 
                                //save group in groupmap
+       
                                groupmap->namesOfGroups.push_back(groupN);
                                groupmap->groupIndex[groupN] = count;
                        }
@@ -123,21 +129,21 @@ SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(0),
                        //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
                        }
                        
+                       m->gobble(f);
                                
                        if (f.eof() != true) { f >> nextLabel; }
                }
-               
-               //put file pointer back since you are now at a new distance label
-               for (int i = 0; i < nextLabel.length(); i++) { f.unget();  }
+       
+               globaldata->saveNextLabel = nextLabel;
        
                if (globaldata->gGroupmap == NULL) { globaldata->gGroupmap = groupmap;  }
                
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "SharedRAbundVector");
+               m->errorOut(e, "SharedRAbundVector", "SharedRAbundVector");
                exit(1);
        }
 }
@@ -155,7 +161,7 @@ void SharedRAbundVector::set(int binNumber, int newBinSize, string groupname){
                numSeqs += (newBinSize - oldBinSize);
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "set");
+               m->errorOut(e, "SharedRAbundVector", "set");
                exit(1);
        }
 }
@@ -199,12 +205,22 @@ vector <individual> SharedRAbundVector::getData(){
 }
 /***********************************************************************/
 
-void SharedRAbundVector::push_back(int binSize, int otu, string groupName){
+void SharedRAbundVector::clear(){
+       numBins = 0;
+       maxRank = 0;
+       numSeqs = 0;
+       data.clear();
+       for (int i = 0; i < lookup.size(); i++) {  delete lookup[i]; lookup[i] = NULL; }
+       lookup.clear();
+}
+/***********************************************************************/
+
+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++;
@@ -216,7 +232,7 @@ void SharedRAbundVector::push_back(int binSize, int otu, string groupName){
                numSeqs += binSize;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "push_back");
+               m->errorOut(e, "SharedRAbundVector", "push_back");
                exit(1);
        }
 }
@@ -240,7 +256,7 @@ void SharedRAbundVector::insert(int binSize, int otu, string groupName){
                numSeqs += binSize;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "insert");
+               m->errorOut(e, "SharedRAbundVector", "insert");
                exit(1);
        }
 }
@@ -264,7 +280,7 @@ void SharedRAbundVector::push_front(int binSize, int otu, string groupName){
                numSeqs += binSize;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "push_front");
+               m->errorOut(e, "SharedRAbundVector", "push_front");
                exit(1);
        }
 }
@@ -310,7 +326,7 @@ void SharedRAbundVector::print(ostream& output){
                output << endl;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "print");
+               m->errorOut(e, "SharedRAbundVector", "print");
                exit(1);
        }
 }
@@ -360,7 +376,7 @@ vector<SharedRAbundVector*> SharedRAbundVector::getSharedRAbundVectors(){
                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--; 
                        }
@@ -371,7 +387,7 @@ vector<SharedRAbundVector*> SharedRAbundVector::getSharedRAbundVectors(){
                return lookup;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "getSharedRAbundVectors");
+               m->errorOut(e, "SharedRAbundVector", "getSharedRAbundVectors");
                exit(1);
        }
 }
@@ -391,7 +407,7 @@ RAbundVector SharedRAbundVector::getRAbundVector() {
                return rav;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "getRAbundVector");
+               m->errorOut(e, "SharedRAbundVector", "getRAbundVector");
                exit(1);
        }
 }
@@ -406,7 +422,7 @@ RAbundVector SharedRAbundVector::getRAbundVector2() {
                return rav;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "getRAbundVector2");
+               m->errorOut(e, "SharedRAbundVector", "getRAbundVector2");
                exit(1);
        }
 }
@@ -428,7 +444,7 @@ SharedSAbundVector SharedRAbundVector::getSharedSAbundVector(){
                return sav;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "getSharedSAbundVector");
+               m->errorOut(e, "SharedRAbundVector", "getSharedSAbundVector");
                exit(1);
        }
 }
@@ -447,7 +463,7 @@ SAbundVector SharedRAbundVector::getSAbundVector() {
                return sav;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "getSAbundVector");           
+               m->errorOut(e, "SharedRAbundVector", "getSAbundVector");                
                exit(1);
        }
 }
@@ -471,7 +487,7 @@ SharedOrderVector SharedRAbundVector::getSharedOrderVector() {
                return ov;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "getSharedOrderVector");
+               m->errorOut(e, "SharedRAbundVector", "getSharedOrderVector");
                exit(1);
        }
 }
@@ -480,19 +496,19 @@ SharedOrderVector SharedRAbundVector::getSharedOrderVector() {
 OrderVector SharedRAbundVector::getOrderVector(map<string,int>* nameMap = NULL) {
        try {
                OrderVector ov;
-       
-               for(int i=0;i<data.size();i++){
+               for(int i=0;i<numBins;i++){
                        for(int j=0;j<data[i].abundance;j++){
                                ov.push_back(i);
                        }
                }
                random_shuffle(ov.begin(), ov.end());
-
+               
                ov.setLabel(label);     
+
                return ov;
        }
        catch(exception& e) {
-               errorOut(e, "SharedRAbundVector", "getOrderVector");
+               m->errorOut(e, "SharedRAbundVector", "getOrderVector");
                exit(1);
        }
 }