]> git.donarmstrong.com Git - mothur.git/commitdiff
fixed phylo.diversity
authorwestcott <westcott>
Fri, 27 Aug 2010 14:18:38 +0000 (14:18 +0000)
committerwestcott <westcott>
Fri, 27 Aug 2010 14:18:38 +0000 (14:18 +0000)
phylodiversitycommand.cpp

index 98002e7f9ebbffff8ea4064c87d09ec8197a16ea..6be1fddb597dd5ab1c61f69ce59cf590c2307e37 100644 (file)
@@ -250,34 +250,22 @@ int PhyloDiversityCommand::execute(){
 void PhyloDiversityCommand::printSumData(map< string, vector<float> >& div, ofstream& out, int numIters){
        try {
                
-               out << "numSampled\t";
-               for (int i = 0; i < globaldata->Groups.size(); i++) { out << globaldata->Groups[i] << '\t';  }
-               out << endl;
+               out << "Groups\tnumSampled\tphyloDiversity" << endl;
                
                out.setf(ios::fixed, ios::floatfield); out.setf(ios::showpoint);
-               
-               set<int> num;
-               //find end points to output
-               for (map<string, vector<float> >::iterator itEnds = div.begin(); itEnds != div.end(); itEnds++) {       num.insert(itEnds->second.size()-1);  }
-               
-               for (set<int>::iterator it = num.begin(); it != num.end(); it++) {  
-                       int numSampled = *it;
-                       
-                       out << numSampled << '\t';  
                        
-                       for (int j = 0; j < globaldata->Groups.size(); j++) {
-                               if (numSampled < div[globaldata->Groups[j]].size()) { 
-                                       float score;
-                                       if (scale)      {  score = (div[globaldata->Groups[j]][numSampled] / (float)numIters) / (float)numSampled;      }
-                                       else            {       score = div[globaldata->Groups[j]][numSampled] / (float)numIters;       }
-                                       
-                                       out << setprecision(4) << score << '\t';
-       
-                               }else { out << "NA" << '\t'; }
-                       }
-                       out << endl;
-               }
+               for (int j = 0; j < globaldata->Groups.size(); j++) {
+                       int numSampled = (div[globaldata->Groups[j]].size()-1);
+                       out << globaldata->Groups[j] << '\t' << numSampled << '\t';
                
+                        
+                       float score;
+                       if (scale)      {  score = (div[globaldata->Groups[j]][numSampled] / (float)numIters) / (float)numSampled;      }
+                       else            {       score = div[globaldata->Groups[j]][numSampled] / (float)numIters;       }
+                               
+                       out << setprecision(4) << score << endl;
+               }
+                                       
                out.close();
                
        }