//**********************************************************************************************************************
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();
m->mothurOut("Output File names: "); m->mothurOutEndLine();
for (int i = 0; i < outputNames.size(); i++) { m->mothurOut(outputNames[i]); m->mothurOutEndLine(); }
m->mothurOutEndLine();
+
+ //set fasta file as new current fastafile
+ string current = "";
+ itTypes = outputTypes.find("group");
+ if (itTypes != outputTypes.end()) {
+ if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setGroupFile(current); }
+ }
+
+ itTypes = outputTypes.find("list");
+ if (itTypes != outputTypes.end()) {
+ if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setListFile(current); }
+ }
}
return 0;
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) {