]> git.donarmstrong.com Git - mothur.git/blobdiff - sharedutilities.cpp
added modify names parameter to set.dir
[mothur.git] / sharedutilities.cpp
index f43bb8107f3ec05ef462bcbb491283706c6a9730..d9891db7966da9178ce0b0deaa177ddeb192fc79 100644 (file)
@@ -22,7 +22,9 @@ void SharedUtil::getSharedVectors(vector<string> Groups, vector<SharedRAbundVect
                }
                
                lookup.clear();
-               
+        
+               sort(Groups.begin(), Groups.end());
+        
                //create and initialize vector of sharedvectors, one for each group
                for (int i = 0; i < Groups.size(); i++) { 
                        SharedRAbundVector* temp = new SharedRAbundVector(order->getNumBins());
@@ -102,6 +104,10 @@ void SharedUtil::getSharedVectorswithReplacement(vector<string> Groups, vector<S
 //need to have mode because different commands require different number of valid groups
 void SharedUtil::setGroups(vector<string>& userGroups, vector<string>& allGroups) {
        try {
+               
+               sort(userGroups.begin(), userGroups.end());
+               sort(allGroups.begin(), allGroups.end());
+               
                if (userGroups.size() != 0) {
                        if (userGroups[0] != "all") {
                                //check that groups are valid
@@ -116,7 +122,7 @@ void SharedUtil::setGroups(vector<string>& userGroups, vector<string>& allGroups
                                
                                //if the user only entered invalid groups
                                if (userGroups.size() == 0) { 
-                                       m->mothurOut("You provided no valid groups. I will run the command using all the groups in your groupfile."); m->mothurOutEndLine();
+                                       m->mothurOut("You provided no valid groups. I will run the command using all the groups in your file."); m->mothurOutEndLine();
                                        for (int i = 0; i < allGroups.size(); i++) {
                                                userGroups.push_back(allGroups[i]);
                                        }
@@ -144,6 +150,10 @@ void SharedUtil::setGroups(vector<string>& userGroups, vector<string>& allGroups
 //need to have mode because different commands require different number of valid groups
 void SharedUtil::setGroups(vector<string>& userGroups, vector<string>& allGroups, string mode) {
        try {
+               
+               sort(userGroups.begin(), userGroups.end());
+               sort(allGroups.begin(), allGroups.end());
+               
                if (userGroups.size() != 0) {
                        if (userGroups[0] != "all") {
                                //check that groups are valid
@@ -190,6 +200,9 @@ void SharedUtil::setGroups(vector<string>& userGroups, vector<string>& allGroups
 //for parsimony and unifrac commands you set pairwise groups as well as an allgroups in calc
 void SharedUtil::setGroups(vector<string>& userGroups, vector<string>& allGroups, string& label, int& numGroups, string mode){  //globaldata->Groups, your tree or group map, allgroups, mode
        try {
+               sort(userGroups.begin(), userGroups.end());
+               sort(allGroups.begin(), allGroups.end());
+               
                numGroups = 0;
                label = "";
 
@@ -271,6 +284,7 @@ void SharedUtil::setGroups(vector<string>& userGroups, vector<string>& allGroups
 /**************************************************************************************/
 void SharedUtil::getCombos(vector<string>& groupComb, vector<string> userGroups, int& numComp) { //groupcomb, globaldata->Groups, numcomb
        try {
+               sort(userGroups.begin(), userGroups.end());
                //calculate number of comparisons i.e. with groups A,B,C = AB, AC, BC = 3;
                numComp = 0;
                for (int i=0; i< userGroups.size(); i++) {