X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=getrelabundcommand.cpp;fp=getrelabundcommand.cpp;h=5b9327b57bd928a5e456a7251a83be1a0664cd6c;hb=8bc3e5b38c2317a1715f53be22fa96455868c281;hp=4c79b21ab53e903fec94fa17296a7da30a9569bf;hpb=f663afa231c9bc1b5e18e0ea3bdd2b2ee784f5b2;p=mothur.git diff --git a/getrelabundcommand.cpp b/getrelabundcommand.cpp index 4c79b21..5b9327b 100644 --- a/getrelabundcommand.cpp +++ b/getrelabundcommand.cpp @@ -10,7 +10,53 @@ #include "getrelabundcommand.h" //********************************************************************************************************************** - +vector GetRelAbundCommand::getValidParameters(){ + try { + string Array[] = {"groups","label","scale","outputdir","inputdir"}; + vector myArray (Array, Array+(sizeof(Array)/sizeof(string))); + return myArray; + } + catch(exception& e) { + m->errorOut(e, "GetRelAbundCommand", "getValidParameters"); + exit(1); + } +} +//********************************************************************************************************************** +GetRelAbundCommand::GetRelAbundCommand(){ + try { + //initialize outputTypes + vector tempOutNames; + outputTypes["relabund"] = tempOutNames; + } + catch(exception& e) { + m->errorOut(e, "GetRelAbundCommand", "GetRelAbundCommand"); + exit(1); + } +} +//********************************************************************************************************************** +vector GetRelAbundCommand::getRequiredParameters(){ + try { + vector myArray; + return myArray; + } + catch(exception& e) { + m->errorOut(e, "GetRelAbundCommand", "getRequiredParameters"); + exit(1); + } +} +//********************************************************************************************************************** +vector GetRelAbundCommand::getRequiredFiles(){ + try { + string Array[] = {"shared"}; + vector myArray (Array, Array+(sizeof(Array)/sizeof(string))); + return myArray; + } + catch(exception& e) { + m->errorOut(e, "GetRelAbundCommand", "getRequiredFiles"); + exit(1); + } +} +//********************************************************************************************************************** GetRelAbundCommand::GetRelAbundCommand(string option) { try { globaldata = GlobalData::getInstance(); @@ -36,6 +82,10 @@ GetRelAbundCommand::GetRelAbundCommand(string option) { if (validParameter.isValidParameter(it->first, myArray, it->second) != true) { abort = true; } } + //initialize outputTypes + vector tempOutNames; + outputTypes["relabund"] = tempOutNames; + //if the user changes the output directory command factory will send this info to us in the output parameter outputDir = validParameter.validFile(parameters, "outputdir", false); if (outputDir == "not found"){ outputDir = ""; @@ -136,7 +186,7 @@ int GetRelAbundCommand::execute(){ //as long as you are not at the end of the file or done wih the lines you want while((lookup[0] != NULL) && ((allLines == 1) || (userLabels.size() != 0))) { - if (m->control_pressed) { for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } globaldata->Groups.clear(); delete read; out.close(); remove(outputFileName.c_str()); return 0; } + if (m->control_pressed) { outputTypes.clear(); for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } globaldata->Groups.clear(); delete read; out.close(); remove(outputFileName.c_str()); return 0; } if(allLines == 1 || labels.count(lookup[0]->getLabel()) == 1){ @@ -167,13 +217,13 @@ int GetRelAbundCommand::execute(){ //prevent memory leak for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; lookup[i] = NULL; } - if (m->control_pressed) { globaldata->Groups.clear(); delete read; out.close(); remove(outputFileName.c_str()); return 0; } + if (m->control_pressed) { outputTypes.clear(); globaldata->Groups.clear(); delete read; out.close(); remove(outputFileName.c_str()); return 0; } //get next line to process lookup = input->getSharedRAbundVectors(); } - if (m->control_pressed) { globaldata->Groups.clear(); delete read; out.close(); remove(outputFileName.c_str()); return 0; } + if (m->control_pressed) { outputTypes.clear(); globaldata->Groups.clear(); delete read; out.close(); remove(outputFileName.c_str()); return 0; } //output error messages about any remaining user labels set::iterator it; @@ -206,11 +256,11 @@ int GetRelAbundCommand::execute(){ delete read; out.close(); - if (m->control_pressed) { remove(outputFileName.c_str()); return 0;} + if (m->control_pressed) { outputTypes.clear(); remove(outputFileName.c_str()); return 0;} m->mothurOutEndLine(); m->mothurOut("Output File Names: "); m->mothurOutEndLine(); - m->mothurOut(outputFileName); m->mothurOutEndLine(); + m->mothurOut(outputFileName); m->mothurOutEndLine(); outputNames.push_back(outputFileName); outputTypes["relabund"].push_back(outputFileName); m->mothurOutEndLine(); return 0;