]> git.donarmstrong.com Git - mothur.git/blobdiff - getgroupscommand.cpp
fixed minor issue with sub.sample command.
[mothur.git] / getgroupscommand.cpp
index d3470f16ad990d7285e51e534ad059666a03d097..e8f42dda532fab7f252de8c95e220c8eb27fa8f8 100644 (file)
@@ -189,6 +189,15 @@ GetGroupsCommand::GetGroupsCommand(string option)  {
                        else if (namefile == "not found") {  namefile = "";  }  
                        else { m->setNameFile(namefile); }
                        
+                       groupfile = validParameter.validFile(parameters, "group", true);
+                       if (groupfile == "not open") { abort = true; }
+                       else if (groupfile == "not found") {  
+                               //if there is a current group file, use it
+                               groupfile = m->getGroupFile(); 
+                               if (groupfile != "") { m->mothurOut("Using " + groupfile + " as input file for the group parameter."); m->mothurOutEndLine(); }
+                               else {  m->mothurOut("You have no current groupfile and the group parameter is required."); m->mothurOutEndLine(); abort = true; }
+                       }else { m->setGroupFile(groupfile); }   
+                       
                        listfile = validParameter.validFile(parameters, "list", true);
                        if (listfile == "not open") { abort = true; }
                        else if (listfile == "not found") {  listfile = "";  }
@@ -203,7 +212,7 @@ GetGroupsCommand::GetGroupsCommand(string option)  {
                        if (groups == "not found") { groups = ""; }
                        else {
                                m->splitAtDash(groups, Groups);
-                               m->Groups = Groups;
+                               m->setGroups(Groups);
                        }
                        
                        sharedfile = validParameter.validFile(parameters, "shared", true);
@@ -273,7 +282,9 @@ int GetGroupsCommand::execute(){
                        //make sure groups are valid
                        //takes care of user setting groupNames that are invalid or setting groups=all
                        SharedUtil* util = new SharedUtil();
-                       util->setGroups(Groups, groupMap->namesOfGroups);
+                       vector<string> gNamesOfGroups = groupMap->getNamesOfGroups();
+                       util->setGroups(Groups, gNamesOfGroups);
+                       groupMap->setNamesOfGroups(gNamesOfGroups);
                        delete util;
                        
                        //fill names with names of sequences that are from the groups we want to remove 
@@ -711,7 +722,7 @@ void GetGroupsCommand::readAccnos(){
                }
                in.close();             
                
-               m->Groups = Groups;
+               m->setGroups(Groups);
                
        }
        catch(exception& e) {