]> git.donarmstrong.com Git - mothur.git/commitdiff
bug in dist.shared and tree.shared with new subsampling code when groups were elimina...
authorSarah Westcott <mothur.westcott@gmail.com>
Tue, 1 May 2012 15:17:36 +0000 (11:17 -0400)
committerSarah Westcott <mothur.westcott@gmail.com>
Tue, 1 May 2012 15:17:36 +0000 (11:17 -0400)
matrixoutputcommand.cpp
treegroupscommand.cpp

index 0bfb0098eba2de2600ab4939da8b3e3197b1b4fa..c879d1b621b871a5f7a9e3dbf48df70a7d928320 100644 (file)
@@ -298,13 +298,6 @@ int MatrixOutputCommand::execute(){
                set<string> userLabels = labels;
                                        
                if (lookup.size() < 2) { m->mothurOut("You have not provided enough valid groups.  I cannot run the command."); m->mothurOutEndLine(); delete input; for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  } return 0;}
-               
-               numGroups = lookup.size();
-               lines.resize(processors);
-               for (int i = 0; i < processors; i++) {
-                       lines[i].start = int (sqrt(float(i)/float(processors)) * numGroups);
-                       lines[i].end = int (sqrt(float(i+1)/float(processors)) * numGroups);
-               }       
         
         if (subsample) { 
             if (subsampleSize == -1) { //user has not set size, set size = smallest samples size
@@ -330,8 +323,17 @@ int MatrixOutputCommand::execute(){
                 lookup = temp;
                 m->setGroups(Groups);
             }
+            
+            if (lookup.size() < 2) { m->mothurOut("You have not provided enough valid groups.  I cannot run the command."); m->mothurOutEndLine(); m->control_pressed = true; delete input; return 0; }
         }
-               
+        
+               numGroups = lookup.size();
+        lines.resize(processors);
+               for (int i = 0; i < processors; i++) {
+                       lines[i].start = int (sqrt(float(i)/float(processors)) * numGroups);
+                       lines[i].end = int (sqrt(float(i+1)/float(processors)) * numGroups);
+               }       
+        
                if (m->control_pressed) { delete input; for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  } m->clearGroups(); return 0;  }
                                
                //as long as you are not at the end of the file or done wih the lines you want
index 2542431f111f85b5bc344d93388662364045a509..c26199d673088b5b64872b672ab8e64ca780e616 100644 (file)
@@ -570,13 +570,6 @@ vector< vector<double> > TreeGroupCommand::makeSimsDist() {
 int TreeGroupCommand::makeSimsShared() {
        try {
         
-        numGroups = lookup.size();
-               lines.resize(processors);
-               for (int i = 0; i < processors; i++) {
-                       lines[i].start = int (sqrt(float(i)/float(processors)) * numGroups);
-                       lines[i].end = int (sqrt(float(i+1)/float(processors)) * numGroups);
-               }       
-        
         if (subsample) { 
             if (subsampleSize == -1) { //user has not set size, set size = smallest samples size
                 subsampleSize = lookup[0]->getNumSeqs();
@@ -601,8 +594,17 @@ int TreeGroupCommand::makeSimsShared() {
                 lookup = temp;
                 m->setGroups(Groups);
             }
+            
+            if (lookup.size() < 2) { m->mothurOut("You have not provided enough valid groups.  I cannot run the command."); m->mothurOutEndLine(); m->control_pressed = true; return 0; }
         }
         
+        numGroups = lookup.size();
+               lines.resize(processors);
+               for (int i = 0; i < processors; i++) {
+                       lines[i].start = int (sqrt(float(i)/float(processors)) * numGroups);
+                       lines[i].end = int (sqrt(float(i+1)/float(processors)) * numGroups);
+               }       
+        
                set<string> processedLabels;
                set<string> userLabels = labels;