}
}
//**********************************************************************************************************************
+string DeuniqueTreeCommand::getOutputFileNameTag(string type, string inputName=""){
+ try {
+ string outputFileName = "";
+ map<string, vector<string> >::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;
TreeReader* reader = new TreeReader(treefile, "", namefile);
vector<Tree*> T = reader->getTrees();
- map<string, string> nameMap = reader->getNameMap();
+ map<string, string> 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