X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=parsimonycommand.cpp;h=2d46efc9efebcfbe7807292cb814cf58686f9ac4;hb=2bb9267aa4b4ecdf8488b06605cc9f3f36fa4332;hp=6e69cad4f8dbde50541a8daad71dbcce712b8953;hpb=7bf9a81bba76538ecaf351ae208de3da4bf1b6dd;p=mothur.git diff --git a/parsimonycommand.cpp b/parsimonycommand.cpp index 6e69cad..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); + } } @@ -219,7 +224,7 @@ int ParsimonyCommand::execute() { read->AssembleTrees(); T = read->getTrees(); delete read; - + //make sure all files match //if you provide a namefile we will use the numNames in the namefile as long as the number of unique match the tree names size. int numNamesInTree; @@ -241,8 +246,8 @@ 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++) { remove(outputNames[i].c_str()); } outputTypes.clear(); - m->Groups.clear(); + for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.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); } @@ -296,8 +304,8 @@ int ParsimonyCommand::execute() { delete reading; delete pars; delete output; 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++) { remove(outputNames[i].c_str()); } outputTypes.clear(); - m->Groups.clear(); + for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); + m->clearGroups(); return 0; } @@ -321,8 +329,8 @@ int ParsimonyCommand::execute() { delete reading; delete pars; delete output; 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++) { remove(outputNames[i].c_str()); } outputTypes.clear(); - m->Groups.clear(); + for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); + m->clearGroups(); return 0; } @@ -359,9 +367,9 @@ int ParsimonyCommand::execute() { if (m->control_pressed) { delete reading; delete pars; delete output; delete randT; if (randomtree == "") { outSum.close(); } - for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } outputTypes.clear(); + 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; } @@ -397,8 +405,8 @@ int ParsimonyCommand::execute() { if (m->control_pressed) { delete reading; delete pars; delete output; delete randT; delete tmap; - for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } outputTypes.clear(); - m->Groups.clear(); + for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); + m->clearGroups(); return 0; } @@ -409,8 +417,8 @@ int ParsimonyCommand::execute() { if (m->control_pressed) { delete reading; delete pars; delete output; delete randT; delete tmap; - for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } outputTypes.clear(); - m->Groups.clear(); + for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); + m->clearGroups(); return 0; } @@ -466,8 +474,8 @@ int ParsimonyCommand::execute() { delete reading; delete pars; delete output; 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++) { remove(outputNames[i].c_str()); } outputTypes.clear(); - m->Groups.clear(); + for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); + m->clearGroups(); return 0; } @@ -480,12 +488,12 @@ 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]; } - if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } outputTypes.clear(); return 0;} + if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear(); return 0;} m->mothurOutEndLine(); m->mothurOut("Output File Names: "); m->mothurOutEndLine(); @@ -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++) {