]> git.donarmstrong.com Git - mothur.git/blobdiff - removeotuscommand.cpp
worked on trim.seqs - added in the groupfiles for allfiles=t, cleaned up the outputNa...
[mothur.git] / removeotuscommand.cpp
index 6828c7287f3530aa009ec9d42e12c8eaacbb724c..347bb0870f3fde2ab71c86c5b67918fad4a4904c 100644 (file)
@@ -27,8 +27,7 @@ vector<string> RemoveOtusCommand::getValidParameters(){
 //**********************************************************************************************************************
 RemoveOtusCommand::RemoveOtusCommand(){        
        try {
-               abort = true;
-               //initialize outputTypes
+               abort = true; calledHelp = true; 
                vector<string> tempOutNames;
                outputTypes["group"] = tempOutNames;
                outputTypes["list"] = tempOutNames;
@@ -64,10 +63,10 @@ vector<string> RemoveOtusCommand::getRequiredFiles(){
 //**********************************************************************************************************************
 RemoveOtusCommand::RemoveOtusCommand(string option)  {
        try {
-               abort = false;
+               abort = false; calledHelp = false;   
                
                //allow user to run help
-               if(option == "help") { help(); abort = true; }
+               if(option == "help") { help(); abort = true; calledHelp = true; }
                
                else {
                        //valid paramters for this command
@@ -182,7 +181,7 @@ void RemoveOtusCommand::help(){
 int RemoveOtusCommand::execute(){
        try {
                
-               if (abort == true) { return 0; }
+               if (abort == true) { if (calledHelp) { return 0; }  return 2;   }
                
                groupMap = new GroupMap(groupfile);
                groupMap->readMap();
@@ -367,11 +366,17 @@ int RemoveOtusCommand::processList(ListVector*& list, GroupMap*& groupMap, ofstr
                                if (m->inUsersGroups(group, Groups)) {  removeBin = true; }
                                groupFileOutput += individual + "\t" + group + "\n";                            
                                
-                               //if there are no sequences from the groups we want to remove in this bin add to new list, output to groupfile
-                               newList.push_back(binnames);    
-                               outGroup << groupFileOutput;
+                               if (!removeBin) {
+                                       //if there are no sequences from the groups we want to remove in this bin add to new list, output to groupfile
+                                       newList.push_back(binnames);    
+                                       outGroup << groupFileOutput;
+                               }else {
+                                       numOtus++;
+                               }
+                       }else {
                                numOtus++;
                        }
+                       
                }
                
                //print new listvector
@@ -382,6 +387,7 @@ int RemoveOtusCommand::processList(ListVector*& list, GroupMap*& groupMap, ofstr
                
                m->mothurOut(newList.getLabel() + " - removed " + toString(numOtus) + " of the " + toString(list->getNumBins()) + " OTUs."); m->mothurOutEndLine();
                
+               return 0;
                
        }
        catch(exception& e) {