X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=splitgroupscommand.cpp;h=af3ca665b5791d0001141f27192b78aab171d71a;hb=8e67e9de1b200106bea5a468ac02125954656499;hp=113439c9220429f4d9466a72a579c5aa2caa10ae;hpb=d0cceb86216f1174afa51582a51490294912b00e;p=mothur.git diff --git a/splitgroupscommand.cpp b/splitgroupscommand.cpp index 113439c..af3ca66 100644 --- a/splitgroupscommand.cpp +++ b/splitgroupscommand.cpp @@ -51,6 +51,27 @@ string SplitGroupCommand::getHelpString(){ } } //********************************************************************************************************************** +string SplitGroupCommand::getOutputFileNameTag(string type, string inputName=""){ + try { + string outputFileName = ""; + map >::iterator it; + + //is this a type this command creates + it = outputTypes.find(type); + if (it == outputTypes.end()) { m->mothurOut("[ERROR]: this command doesn't create a " + type + " output file.\n"); } + else { + if (type == "fasta") { outputFileName = "fasta"; } + else if (type == "name") { outputFileName = "names"; } + else { m->mothurOut("[ERROR]: No definition for type " + type + " output file tag.\n"); m->control_pressed = true; } + } + return outputFileName; + } + catch(exception& e) { + m->errorOut(e, "SplitGroupCommand", "getOutputFileNameTag"); + exit(1); + } +} +//********************************************************************************************************************** SplitGroupCommand::SplitGroupCommand(){ try { abort = true; calledHelp = true; @@ -125,7 +146,7 @@ SplitGroupCommand::SplitGroupCommand(string option) { namefile = validParameter.validFile(parameters, "name", true); - if (namefile == "not open") { abort = true; } + if (namefile == "not open") { namefile = ""; abort = true; } else if (namefile == "not found") { namefile = ""; } else { m->setNameFile(namefile); } @@ -151,6 +172,11 @@ SplitGroupCommand::SplitGroupCommand(string option) { //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 = m->hasPath(groupfile); } + + if (namefile == "") { + vector files; files.push_back(fastafile); + parser.getNameFile(files); + } } } @@ -183,8 +209,8 @@ int SplitGroupCommand::execute(){ m->mothurOut("Processing group: " + Groups[i]); m->mothurOutEndLine(); - string newFasta = fastafileRoot + Groups[i] + ".fasta"; - string newName = namefileRoot + Groups[i] + ".names"; + string newFasta = fastafileRoot + Groups[i] + "." + getOutputFileNameTag("fasta"); + string newName = namefileRoot + Groups[i] + "." + getOutputFileNameTag("name"); parser->getSeqs(Groups[i], newFasta, false); outputNames.push_back(newFasta); outputTypes["fasta"].push_back(newFasta);