X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=splitgroupscommand.cpp;h=3fa7d047b372a1c4335b9446c1b34d2aac9b702a;hb=5bb0453ee6ab8f7e700b5d0c61a84fdc73db4976;hp=6f8788a28daed38deeed9b419b28b699cffb6b55;hpb=cea46f0830d8d1a6dc26e3410fc283d26c355831;p=mothur.git diff --git a/splitgroupscommand.cpp b/splitgroupscommand.cpp index 6f8788a..3fa7d04 100644 --- a/splitgroupscommand.cpp +++ b/splitgroupscommand.cpp @@ -10,6 +10,55 @@ #include "splitgroupscommand.h" #include "sharedutilities.h" +//********************************************************************************************************************** +vector SplitGroupCommand::getValidParameters(){ + try { + string Array[] = {"name","group","groups","fasta","outputdir","inputdir"}; + vector myArray (Array, Array+(sizeof(Array)/sizeof(string))); + return myArray; + } + catch(exception& e) { + m->errorOut(e, "SplitGroupCommand", "getValidParameters"); + exit(1); + } +} +//********************************************************************************************************************** +vector SplitGroupCommand::getRequiredParameters(){ + try { + string Array[] = {"fasta","group"}; + vector myArray (Array, Array+(sizeof(Array)/sizeof(string))); + return myArray; + } + catch(exception& e) { + m->errorOut(e, "SplitGroupCommand", "getRequiredParameters"); + exit(1); + } +} +//********************************************************************************************************************** +vector SplitGroupCommand::getRequiredFiles(){ + try { + vector myArray; + return myArray; + } + catch(exception& e) { + m->errorOut(e, "SplitGroupCommand", "getRequiredFiles"); + exit(1); + } +} +//********************************************************************************************************************** +SplitGroupCommand::SplitGroupCommand(){ + try { + abort = true; + //initialize outputTypes + vector tempOutNames; + outputTypes["fasta"] = tempOutNames; + outputTypes["name"] = tempOutNames; + } + catch(exception& e) { + m->errorOut(e, "SplitGroupCommand", "SplitGroupCommand"); + exit(1); + } +} //********************************************************************************************************************** SplitGroupCommand::SplitGroupCommand(string option) { try { @@ -33,7 +82,12 @@ SplitGroupCommand::SplitGroupCommand(string option) { for (it = parameters.begin(); it != parameters.end(); it++) { if (validParameter.isValidParameter(it->first, myArray, it->second) != true) { abort = true; } } - + + //initialize outputTypes + vector tempOutNames; + outputTypes["fasta"] = tempOutNames; + outputTypes["name"] = tempOutNames; + //if the user changes the input directory command factory will send this info to us in the output parameter string inputDir = validParameter.validFile(parameters, "inputdir", false); if (inputDir == "not found"){ inputDir = ""; } @@ -187,13 +241,13 @@ int SplitGroupCommand::splitFasta() { temp = new ofstream; filehandles[Groups[i]+"fasta"] = temp; m->openOutputFile(filerootFasta + Groups[i] + ".fasta", *(filehandles[Groups[i]+"fasta"])); - outputNames.push_back(filerootFasta + Groups[i] + ".fasta"); + outputNames.push_back(filerootFasta + Groups[i] + ".fasta"); outputTypes["fasta"].push_back(filerootFasta + Groups[i] + ".fasta"); if (namefile != "") { temp2 = new ofstream; filehandles[Groups[i]+"name"] = temp2; m->openOutputFile(filerootName + Groups[i] + ".names", *(filehandles[Groups[i]+"name"])); - outputNames.push_back(filerootName + Groups[i] + ".names"); + outputNames.push_back(filerootName + Groups[i] + ".names"); outputTypes["name"].push_back(filerootFasta + Groups[i] + ".names"); } } @@ -267,6 +321,15 @@ int SplitGroupCommand::splitFasta() { (*(filehandles[it3->first])).close(); delete it3->second; } + + vector newOutputNames; + //remove blank files + for (int i = 0; i < outputNames.size(); i++) { + if (m->isBlank(outputNames[i])) { + remove(outputNames[i].c_str()); + }else { newOutputNames.push_back(outputNames[i]); } + } + outputNames = newOutputNames; return 0;