X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=unifracunweightedcommand.cpp;h=9d170631592cc9faf9c54fbd5bde5c710efe05f6;hp=2b93df782bccc4d2dbc8533e7cdc38169059d6a7;hb=c5c7502f435e1413c19e373dab1dfebcaa67588d;hpb=2e5ec5cbbd23637ed20da9bdd544d178a3b5d949 diff --git a/unifracunweightedcommand.cpp b/unifracunweightedcommand.cpp index 2b93df7..9d17063 100644 --- a/unifracunweightedcommand.cpp +++ b/unifracunweightedcommand.cpp @@ -19,7 +19,18 @@ UnifracUnweightedCommand::UnifracUnweightedCommand() { sumFile = globaldata->getTreeFile() + ".uwsummary"; openOutputFile(sumFile, outSum); - setGroups(); //sets users groups to analyze + util = new SharedUtil(); + util->setGroups(globaldata->Groups, tmap->namesOfGroups, allGroups, numGroups, "unweighted"); //sets the groups the user wants to analyze + util->getCombos(groupComb, globaldata->Groups, numComp); + globaldata->setGroups(""); + + //ABC + if (numComp != 1) { + groupComb.push_back(allGroups); + numComp++; + } + + convert(globaldata->getIters(), iters); //how many random trees to generate unweighted = new Unweighted(tmap); @@ -114,7 +125,7 @@ int UnifracUnweightedCommand::execute() { UWScoreSig.clear(); } //reset groups parameter - globaldata->Groups.clear(); globaldata->setGroups(""); + globaldata->Groups.clear(); outSum.close(); return 0; @@ -189,89 +200,6 @@ void UnifracUnweightedCommand::printUWSummaryFile() { exit(1); } } -/***********************************************************/ - -void UnifracUnweightedCommand::setGroups() { - try { - string allGroups = ""; - numGroups = 0; - //if the user has not entered specific groups to analyze then do them all - if (globaldata->Groups.size() != 0) { - if (globaldata->Groups[0] != "all") { - //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++) { - if (tmap->namesOfGroups[i] != "xxx") { - globaldata->Groups.push_back(tmap->namesOfGroups[i]); - numGroups++; - allGroups += tmap->namesOfGroups[i] + "-"; - } - } - allGroups = allGroups.substr(0, allGroups.length()-1); - }else { - for (int i = 0; i < globaldata->Groups.size(); i++) { - allGroups += globaldata->Groups[i] + "-"; - numGroups++; - } - allGroups = allGroups.substr(0, allGroups.length()-1); - } - }else{//user has enter "all" and wants the default groups - globaldata->Groups.clear(); - for (int i = 0; i < tmap->namesOfGroups.size(); i++) { - if (tmap->namesOfGroups[i] != "xxx") { - globaldata->Groups.push_back(tmap->namesOfGroups[i]); - numGroups++; - allGroups += tmap->namesOfGroups[i] + "-"; - } - } - allGroups = allGroups.substr(0, allGroups.length()-1); - globaldata->setGroups(""); - } - }else { - for (int i = 0; i < tmap->namesOfGroups.size(); i++) { - if (tmap->namesOfGroups[i] != "xxx") { - allGroups += tmap->namesOfGroups[i] + "-"; - } - } - allGroups = allGroups.substr(0, allGroups.length()-1); - numGroups = 1; - } - - //calculate number of comparsions - numComp = 0; - for (int r=0; rGroups[r]+ "-" + globaldata->Groups[l]); - numComp++; - } - } - - //ABC - if (numComp != 1) { - groupComb.push_back(allGroups); - numComp++; - } - } - catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the UnifracUnweightedCommand class Function setGroups. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the UnifracUnweightedCommand class function setGroups. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - -} /*****************************************************************/ void UnifracUnweightedCommand::initFile(string label){