X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=parsimonycommand.cpp;h=534ff0b1ab940a4b9398cc457a3f03a5d1381384;hb=692e0c1f69a78b568dc85cbdcea9fb6c189e2e6c;hp=989ea120447540884daac7f4f5e5496946b86d52;hpb=fb5a52d8d7896ba00c9ccc6add22ed89c5fb2ad7;p=mothur.git diff --git a/parsimonycommand.cpp b/parsimonycommand.cpp index 989ea12..534ff0b 100644 --- a/parsimonycommand.cpp +++ b/parsimonycommand.cpp @@ -27,6 +27,30 @@ ParsimonyCommand::ParsimonyCommand() { openOutputFile(sumFile, outSum); distFile = globaldata->getTreeFile() + ".pdistrib"; openOutputFile(distFile, outDist); + + //if the user has not entered specific groups to analyze then do them all + if (globaldata->Groups.size() != 0) { + //check that groups are valid + for (int i = 0; i < globaldata->Groups.size(); i++) { + if (tmap->isValidGroup(globaldata->Groups[i]) != true) { + cout << globaldata->Groups[i] << " is not a valid group, and will be disregarded." << endl; + // erase the invalid group from globaldata->Groups + globaldata->Groups.erase (globaldata->Groups.begin()+i); + } + } + + //if the user only entered invalid groups + if (globaldata->Groups.size() == 0) { + cout << "When using the groups parameter you must have at least 1 valid group. I will run the command using all the groups in your groupfile." << endl; + for (int i = 0; i < tmap->namesOfGroups.size(); i++) { + globaldata->Groups.push_back(tmap->namesOfGroups[i]); + } + } + }else { + for (int i = 0; i < tmap->namesOfGroups.size(); i++) { + globaldata->Groups.push_back(tmap->namesOfGroups[i]); + } + } }else { //user wants random distribution savetmap = globaldata->gTreemap; @@ -164,6 +188,8 @@ int ParsimonyCommand::execute() { //reset randomTree parameter to "" globaldata->setRandomTree(""); + //reset groups parameter + globaldata->Groups.clear(); return 0;