X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=parsimonycommand.cpp;h=989ea120447540884daac7f4f5e5496946b86d52;hb=16bea3130e36addc54e2116dfbcd02d706ebee45;hp=4632019151fa0a93d7dba5c14017940d04aa1653;hpb=1b2517db06f3c6cd5f5c67198261361ce8dad611;p=mothur.git diff --git a/parsimonycommand.cpp b/parsimonycommand.cpp index 4632019..989ea12 100644 --- a/parsimonycommand.cpp +++ b/parsimonycommand.cpp @@ -15,10 +15,10 @@ ParsimonyCommand::ParsimonyCommand() { globaldata = GlobalData::getInstance(); //randomtree will tell us if user had their own treefile or if they just want the random distribution - convert(globaldata->getRandomTree(), randomtree); + randomtree = globaldata->getRandomTree(); //user has entered their own tree - if (randomtree == 0) { + if (randomtree == "") { T = globaldata->gTree; tmap = globaldata->gTreemap; parsFile = globaldata->getTreeFile() + ".parsimony"; @@ -29,8 +29,9 @@ ParsimonyCommand::ParsimonyCommand() { openOutputFile(distFile, outDist); }else { //user wants random distribution + savetmap = globaldata->gTreemap; getUserInput(); - parsFile = "rd_parsimony"; + parsFile = randomtree + ".rd_parsimony"; openOutputFile(parsFile, out); } @@ -59,7 +60,7 @@ int ParsimonyCommand::execute() { outDist.setf(ios::fixed, ios::floatfield); outDist.setf(ios::showpoint); outDist << "RandomTree#" << '\t' << "ParsScore" << endl; - if (randomtree == 0) { + if (randomtree == "") { //get pscores for users trees for (int i = 0; i < T.size(); i++) { cout << "Processing tree " << i+1 << endl; @@ -133,7 +134,7 @@ int ParsimonyCommand::execute() { //this loop fills the cumulative maps and put 0.0000 in the score freq map to make it easier to print. for (it = validScores.begin(); it != validScores.end(); it++) { - if (randomtree == 0) { + if (randomtree == "") { it2 = uscoreFreq.find(it->first); //user data has that score if (it2 != uscoreFreq.end()) { uscoreFreq[it->first] /= T.size(); ucumul+= it2->second; } @@ -158,8 +159,11 @@ int ParsimonyCommand::execute() { printParsimonyFile(); printUSummaryFile(); - //reset randomTree parameter to 0 - globaldata->setRandomTree("0"); + //reset globaldata's treemap if you just did random distrib + if (randomtree != "") { globaldata->gTreemap = savetmap; } + + //reset randomTree parameter to "" + globaldata->setRandomTree(""); return 0; @@ -178,7 +182,7 @@ int ParsimonyCommand::execute() { void ParsimonyCommand::printParsimonyFile() { try { //column headers - if (randomtree == 0) { + if (randomtree == "") { out << "Score" << '\t' << "UserFreq" << '\t' << "UserCumul" << '\t' << "RandFreq" << '\t' << "RandCumul" << endl; }else { out << "Score" << '\t' << "RandFreq" << '\t' << "RandCumul" << endl; @@ -189,7 +193,7 @@ void ParsimonyCommand::printParsimonyFile() { //print each line for (it = validScores.begin(); it != validScores.end(); it++) { - if (randomtree == 0) { + if (randomtree == "") { out << setprecision(6) << it->first << '\t' << '\t' << uscoreFreq[it->first] << '\t' << uCumul[it->first] << '\t' << rscoreFreq[it->first] << '\t' << rCumul[it->first] << endl; }else{ out << setprecision(6) << it->first << '\t' << '\t' << rscoreFreq[it->first] << '\t' << rCumul[it->first] << endl;