X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tree.cpp;h=642c6658739dd5252b2d61083ce6af2b872785ec;hb=38922fcff5a03abfedffda3e06a45fad2270a044;hp=5029438b6e632e0274f88dca33ba121ec238bf26;hpb=d9ec50b60719a907681a22acbe2469f1ea93facb;p=mothur.git diff --git a/tree.cpp b/tree.cpp index 5029438..642c665 100644 --- a/tree.cpp +++ b/tree.cpp @@ -303,12 +303,9 @@ map Tree::mergeGcounts(int position) { } /**************************************************************************************************/ -void Tree::randomLabels() { +void Tree::randomLabels(vector g) { try { - //set up the groups the user wants to include - setGroups(); - for(int i = 0; i < numLeaves; i++){ int z; //get random index to switch with @@ -318,8 +315,8 @@ void Tree::randomLabels() { //if either of the leaf nodes you are about to switch are not in the users groups then you don't want to switch them. bool treez, treei; - treez = inUsersGroups(tree[z].getGroup(), globaldata->Groups); - treei = inUsersGroups(tree[i].getGroup(), globaldata->Groups); + treez = inUsersGroups(tree[z].getGroup(), g); + treei = inUsersGroups(tree[i].getGroup(), g); if ((treez == true) && (treei == true)) { //switches node i and node z's info. @@ -405,8 +402,8 @@ void Tree::randomBlengths() { } } /*************************************************************************************************/ -void Tree::assembleRandomUnifracTree() { - randomLabels(); +void Tree::assembleRandomUnifracTree(vector g) { + randomLabels(g); assembleTree(); } /*************************************************************************************************/ @@ -538,46 +535,6 @@ void Tree::printBranch(int node) { /*****************************************************************/ -void Tree::setGroups() { - try { - //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 (globaldata->gTreemap->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 < globaldata->gTreemap->namesOfGroups.size(); i++) { - globaldata->Groups.push_back(globaldata->gTreemap->namesOfGroups[i]); - } - } - - }else { - for (int i = 0; i < globaldata->gTreemap->namesOfGroups.size(); i++) { - globaldata->Groups.push_back(globaldata->gTreemap->namesOfGroups[i]); - } - } - } - catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the Tree class Function setGroups. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the Tree class function setGroups. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - -} - -/*****************************************************************/ - void Tree::printTree() { for(int i=0;i