//**********************************************************************************************************************
RemoveOtusCommand::RemoveOtusCommand(){
try {
- abort = true;
- //initialize outputTypes
+ abort = true; calledHelp = true;
vector<string> tempOutNames;
outputTypes["group"] = tempOutNames;
outputTypes["list"] = tempOutNames;
//**********************************************************************************************************************
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
int RemoveOtusCommand::execute(){
try {
- if (abort == true) { return 0; }
+ if (abort == true) { if (calledHelp) { return 0; } return 2; }
groupMap = new GroupMap(groupfile);
groupMap->readMap();
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
m->mothurOut(newList.getLabel() + " - removed " + toString(numOtus) + " of the " + toString(list->getNumBins()) + " OTUs."); m->mothurOutEndLine();
+ return 0;
}
catch(exception& e) {