]> git.donarmstrong.com Git - mothur.git/blobdiff - summarysharedcommand.cpp
added nseqs and sharednseqs calculators, removed excess tabs in output files.
[mothur.git] / summarysharedcommand.cpp
index 040de2067faf9d0dd9d1de74b2b4f6fe2f6a0086..9e2c6681afbad503c02f7116bf797ccd99d5e488 100644 (file)
@@ -11,6 +11,7 @@
 #include "sharedsobscollectsummary.h"
 #include "sharedchao1.h"
 #include "sharedace.h"
+#include "sharednseqs.h"
 #include "sharedjabund.h"
 #include "sharedsorabund.h"
 #include "sharedjclass.h"
@@ -56,6 +57,8 @@ SummarySharedCommand::SummarySharedCommand(){
                                        sumCalculators.push_back(new SharedThetaYC());
                                }else if (globaldata->Estimators[i] == "sharedthetan") { 
                                        sumCalculators.push_back(new SharedThetaN());
+                               }else if (globaldata->Estimators[i] == "sharednseqs") { 
+                                       sumCalculators.push_back(new SharedNSeqs());
                                }
                        }
                }
@@ -105,6 +108,9 @@ int SummarySharedCommand::execute(){
                        order = SharedList->getSharedOrderVector();
                }
                
+               //set users groups
+               setGroups();
+               
                //output estimator names as column headers
                outputFileHandle << "label" <<'\t' << "comparison" << '\t'; 
                for(int i=0;i<sumCalculators.size();i++){
@@ -112,9 +118,6 @@ int SummarySharedCommand::execute(){
                }
                outputFileHandle << endl;
                
-               //set users groups
-               setGroups();
-
                while(order != NULL){
                
                        if(globaldata->allLines == 1 || globaldata->lines.count(count) == 1 || globaldata->labels.count(order->getLabel()) == 1){                       
@@ -128,7 +131,15 @@ int SummarySharedCommand::execute(){
                                int n = 1; 
                                for (int k = 0; k < (lookup.size() - 1); k++) { // pass cdd each set of groups to commpare
                                        for (int l = n; l < lookup.size(); l++) {
-                                               outputFileHandle << order->getLabel() << '\t' << (lookup[k]->getGroup() + lookup[l]->getGroup()) << '\t' << '\t'; //print out label and group
+                                               outputFileHandle << order->getLabel() << '\t';
+                                               
+                                               //sort groups to be alphanumeric
+                                               if (lookup[k]->getGroup() > lookup[l]->getGroup()) {
+                                                       outputFileHandle << (lookup[l]->getGroup() +'\t' + lookup[k]->getGroup()) << '\t'; //print out groups
+                                               }else{
+                                                       outputFileHandle << (lookup[k]->getGroup() +'\t' + lookup[l]->getGroup()) << '\t'; //print out groups
+                                               }
+                                               
                                                for(int i=0;i<sumCalculators.size();i++){
                                                        sumCalculators[i]->getValues(lookup[k], lookup[l]); //saves the calculator outputs
                                                        outputFileHandle << '\t';
@@ -176,10 +187,10 @@ void SummarySharedCommand::getSharedVectors(){
 try {
                lookup.clear();
                //create and initialize vector of sharedvectors, one for each group
-               for (int i = 0; i < globaldata->gGroupmap->getNumGroups(); i++) { 
+               for (int i = 0; i < globaldata->Groups.size(); i++) { 
                        SharedRAbundVector* temp = new SharedRAbundVector(order->getNumBins());
                        temp->setLabel(order->getLabel());
-                       temp->setGroup(globaldata->gGroupmap->namesOfGroups[i]);
+                       temp->setGroup(globaldata->Groups[i]);
                        lookup.push_back(temp);
                }
                
@@ -199,14 +210,6 @@ try {
                                }
                        }
                }
-               
-               //get rid of vectors from groups you don't want to analyze
-               for (int r = 0; r < lookup.size(); r++) { 
-                       if (inUsersGroups(lookup[r]->getGroup(), globaldata->Groups) != true) {
-                               lookup.erase(lookup.begin()+r);
-                       }
-               }
-               
        }
        catch(exception& e) {
                cout << "Standard Error: " << e.what() << " has occurred in the SummarySharedCommand class Function getSharedVectors. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";