X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=deuniquetreecommand.cpp;h=d334f8f4ef107d12a57eaa4aff4d71b84808edb9;hb=6c2b1e530a5c0bb87040e58a3e410097acdfcc3d;hp=c33c8e4ce19014c0059a89469217993a3f2fe59d;hpb=d2390ede25cc211f95f99e377d5654bad7e6950e;p=mothur.git diff --git a/deuniquetreecommand.cpp b/deuniquetreecommand.cpp index c33c8e4..d334f8f 100644 --- a/deuniquetreecommand.cpp +++ b/deuniquetreecommand.cpp @@ -43,6 +43,26 @@ string DeuniqueTreeCommand::getHelpString(){ } } //********************************************************************************************************************** +string DeuniqueTreeCommand::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 == "tree") { outputFileName = "deunique.tre"; } + 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, "DeuniqueTreeCommand", "getOutputFileNameTag"); + exit(1); + } +} +//********************************************************************************************************************** DeuniqueTreeCommand::DeuniqueTreeCommand(){ try { abort = true; calledHelp = true; @@ -141,18 +161,19 @@ int DeuniqueTreeCommand::execute() { TreeReader* reader = new TreeReader(treefile, "", namefile); vector T = reader->getTrees(); - map nameMap = reader->getNameMap(); + map nameMap; + m->readNames(namefile, nameMap); delete reader; //print new Tree - string outputFile = outputDir + m->getRootName(m->getSimpleName(treefile)) + "deunique.tre"; + string outputFile = outputDir + m->getRootName(m->getSimpleName(treefile)) + getOutputFileNameTag("tree"); outputNames.push_back(outputFile); outputTypes["tree"].push_back(outputFile); ofstream out; m->openOutputFile(outputFile, out); T[0]->print(out, nameMap); out.close(); - delete (T[0]->getTreeMap()); + delete (T[0]->getCountTable()); for (int i = 0; i < T.size(); i++) { delete T[i]; } //set phylip file as new current phylipfile