X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=metastatscommand.cpp;h=e13e37c92c3103a3aabd1a4a6a7c68db443592ef;hb=03acfa01ede71b107817966fcf27cd728038b3c9;hp=866bc94e07553d417b38036bca46184fad973261;hpb=191ae1be0679d5cf4eda950b3b1bf26fb7dd503d;p=mothur.git diff --git a/metastatscommand.cpp b/metastatscommand.cpp index 866bc94..e13e37c 100644 --- a/metastatscommand.cpp +++ b/metastatscommand.cpp @@ -26,8 +26,7 @@ vector MetaStatsCommand::getValidParameters(){ //********************************************************************************************************************** MetaStatsCommand::MetaStatsCommand(){ try { - abort = true; - //initialize outputTypes + abort = true; calledHelp = true; vector tempOutNames; outputTypes["metastats"] = tempOutNames; } @@ -65,12 +64,12 @@ vector MetaStatsCommand::getRequiredFiles(){ MetaStatsCommand::MetaStatsCommand(string option) { try { globaldata = GlobalData::getInstance(); - abort = false; + abort = false; calledHelp = false; allLines = 1; labels.clear(); //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 @@ -206,7 +205,7 @@ MetaStatsCommand::~MetaStatsCommand(){} int MetaStatsCommand::execute(){ try { - if (abort == true) { return 0; } + if (abort == true) { if (calledHelp) { return 0; } return 2; } designMap = new GroupMap(designfile); designMap->readDesignMap(); @@ -347,7 +346,6 @@ int MetaStatsCommand::execute(){ int MetaStatsCommand::process(vector& thisLookUp){ try { - if (pickedGroups) { eliminateZeroOTUS(thisLookUp); } #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) if(processors == 1){ @@ -366,7 +364,11 @@ int MetaStatsCommand::process(vector& thisLookUp){ }else if (pid == 0){ driver(lines[process].start, lines[process].num, thisLookUp); exit(0); - }else { m->mothurOut("unable to spawn the necessary processes."); m->mothurOutEndLine(); exit(0); } + }else { + m->mothurOut("[ERROR]: unable to spawn the necessary processes."); m->mothurOutEndLine(); + for (int i = 0; i < processIDS.size(); i++) { kill (processIDS[i], SIGINT); } + exit(0); + } } //do my part @@ -442,7 +444,6 @@ int MetaStatsCommand::driver(int start, int num, vector& th } m->mothurOut("Comparing " + setA + " and " + setB + "..."); m->mothurOutEndLine(); - metastat_main(output, thisLookUp[0]->getNumBins(), subset.size(), threshold, iters, data, setACount); m->mothurOutEndLine(); @@ -463,45 +464,3 @@ int MetaStatsCommand::driver(int start, int num, vector& th } } //********************************************************************************************************************** -int MetaStatsCommand::eliminateZeroOTUS(vector& thislookup) { - try { - - vector newLookup; - for (int i = 0; i < thislookup.size(); i++) { - SharedRAbundVector* temp = new SharedRAbundVector(); - temp->setLabel(thislookup[i]->getLabel()); - temp->setGroup(thislookup[i]->getGroup()); - newLookup.push_back(temp); - } - - //for each bin - for (int i = 0; i < thislookup[0]->getNumBins(); i++) { - if (m->control_pressed) { for (int j = 0; j < newLookup.size(); j++) { delete newLookup[j]; } return 0; } - - //look at each sharedRabund and make sure they are not all zero - bool allZero = true; - for (int j = 0; j < thislookup.size(); j++) { - if (thislookup[j]->getAbundance(i) != 0) { allZero = false; break; } - } - - //if they are not all zero add this bin - if (!allZero) { - for (int j = 0; j < thislookup.size(); j++) { - newLookup[j]->push_back(thislookup[j]->getAbundance(i), thislookup[j]->getGroup()); - } - } - } - - for (int j = 0; j < thislookup.size(); j++) { delete thislookup[j]; } - - thislookup = newLookup; - - return 0; - - } - catch(exception& e) { - m->errorOut(e, "MetaStatsCommand", "eliminateZeroOTUS"); - exit(1); - } -} -//**********************************************************************************************************************