X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=parsimonycommand.cpp;h=2d46efc9efebcfbe7807292cb814cf58686f9ac4;hb=b86361f726a0d1dfc9f2e91b795e402d97c46f9d;hp=66f8193e647c94db5bc8ac815bb6eea9796cd138;hpb=d3aed959ca3b68890eeb7b815e24210bcfeb256c;p=mothur.git diff --git a/parsimonycommand.cpp b/parsimonycommand.cpp index 66f8193..2d46efc 100644 --- a/parsimonycommand.cpp +++ b/parsimonycommand.cpp @@ -126,8 +126,8 @@ ParsimonyCommand::ParsimonyCommand(string option) { } m->runParse = true; - m->Groups.clear(); - m->namesOfGroups.clear(); + m->clearGroups(); + m->clearAllGroups(); m->Treenames.clear(); m->names.clear(); @@ -139,7 +139,7 @@ ParsimonyCommand::ParsimonyCommand(string option) { if (randomtree == "") { //check for required parameters treefile = validParameter.validFile(parameters, "tree", true); - if (treefile == "not open") { abort = true; } + if (treefile == "not open") { treefile = ""; abort = true; } else if (treefile == "not found") { //if there is a current design file, use it treefile = m->getTreeFile(); if (treefile != "") { m->mothurOut("Using " + treefile + " as input file for the tree parameter."); m->mothurOutEndLine(); } @@ -153,7 +153,7 @@ ParsimonyCommand::ParsimonyCommand(string option) { else { m->setGroupFile(groupfile); } 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); } } @@ -164,18 +164,23 @@ ParsimonyCommand::ParsimonyCommand(string option) { //check for optional parameter and set defaults // ...at some point should added some additional type checking... groups = validParameter.validFile(parameters, "groups", false); - if (groups == "not found") { groups = ""; m->Groups.clear(); } + if (groups == "not found") { groups = ""; m->clearGroups(); } else { m->splitAtDash(groups, Groups); - m->Groups = Groups; + m->setGroups(Groups); } itersString = validParameter.validFile(parameters, "iters", false); if (itersString == "not found") { itersString = "1000"; } - convert(itersString, iters); + m->mothurConvert(itersString, iters); string temp = validParameter.validFile(parameters, "processors", false); if (temp == "not found"){ temp = m->getProcessors(); } m->setProcessors(temp); - convert(temp, processors); + m->mothurConvert(temp, processors); + + if (namefile == "") { + vector files; files.push_back(treefile); + parser.getNameFile(files); + } } @@ -242,7 +247,7 @@ int ParsimonyCommand::execute() { if (m->control_pressed) { delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; } for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); - m->Groups.clear(); + m->clearGroups(); return 0; } @@ -280,8 +285,11 @@ int ParsimonyCommand::execute() { //set users groups to analyze util = new SharedUtil(); - util->setGroups(m->Groups, tmap->namesOfGroups, allGroups, numGroups, "parsimony"); //sets the groups the user wants to analyze - util->getCombos(groupComb, m->Groups, numComp); + vector mGroups = m->getGroups(); + vector tGroups = tmap->getNamesOfGroups(); + util->setGroups(mGroups, tGroups, allGroups, numGroups, "parsimony"); //sets the groups the user wants to analyze + util->getCombos(groupComb, mGroups, numComp); + m->setGroups(mGroups); delete util; if (numGroups == 1) { numComp++; groupComb.push_back(allGroups); } @@ -297,7 +305,7 @@ int ParsimonyCommand::execute() { delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; } if (randomtree == "") { outSum.close(); } for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); - m->Groups.clear(); + m->clearGroups(); return 0; } @@ -322,7 +330,7 @@ int ParsimonyCommand::execute() { delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; } if (randomtree == "") { outSum.close(); } for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); - m->Groups.clear(); + m->clearGroups(); return 0; } @@ -361,7 +369,7 @@ int ParsimonyCommand::execute() { if (randomtree == "") { outSum.close(); } for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; } - m->Groups.clear(); + m->clearGroups(); return 0; } @@ -398,7 +406,7 @@ int ParsimonyCommand::execute() { delete reading; delete pars; delete output; delete randT; delete tmap; for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); - m->Groups.clear(); + m->clearGroups(); return 0; } @@ -410,7 +418,7 @@ int ParsimonyCommand::execute() { delete reading; delete pars; delete output; delete randT; delete tmap; for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); - m->Groups.clear(); + m->clearGroups(); return 0; } @@ -467,7 +475,7 @@ int ParsimonyCommand::execute() { delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; } if (randomtree == "") { outSum.close(); } for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); - m->Groups.clear(); + m->clearGroups(); return 0; } @@ -480,7 +488,7 @@ int ParsimonyCommand::execute() { if (randomtree == "") { printUSummaryFile(); } //reset groups parameter - m->Groups.clear(); + m->clearGroups(); delete pars; delete output; delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; } @@ -585,6 +593,7 @@ void ParsimonyCommand::getUserInput() { count = 1; numEachGroup.resize(numGroups, 0); + for (int i = 1; i <= numGroups; i++) { m->mothurOut("Please enter the number of sequences in group " + toString(i) + ": "); cin >> num; @@ -592,7 +601,7 @@ void ParsimonyCommand::getUserInput() { //set tmaps seqsPerGroup tmap->seqsPerGroup[toString(i)] = num; - tmap->namesOfGroups.push_back(toString(i)); + tmap->addGroup(toString(i)); //set tmaps namesOfSeqs for (int j = 0; j < num; j++) {