X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tree.cpp;h=7da3cef3718502640d61377bccbaae0d8e4213d3;hb=aa9238c0a9e6e7aa0ed8b8b606b08ad4fd7dcfe3;hp=731eb64d93f95b485f8607308e3e88345138813c;hpb=5a1e62397b91f57d0d3aff635891df04b8999a88;p=mothur.git diff --git a/tree.cpp b/tree.cpp index 731eb64..7da3cef 100644 --- a/tree.cpp +++ b/tree.cpp @@ -14,6 +14,7 @@ Tree::Tree() { try { globaldata = GlobalData::getInstance(); + m = MothurOut::getInstance(); if (globaldata->runParse == true) { parseTreeFile(); globaldata->runParse = false; } //for(int i = 0; i < globaldata->Treenames.size(); i++) { cout << i << '\t' << globaldata->Treenames[i] << endl; } @@ -44,7 +45,7 @@ Tree::Tree() { } } catch(exception& e) { - errorOut(e, "Tree", "Tree"); + m->errorOut(e, "Tree", "Tree"); exit(1); } } @@ -73,7 +74,7 @@ void Tree::addNamesToCounts() { map::iterator itNames = globaldata->names.find(name); - if (itNames == globaldata->names.end()) { mothurOut(name + " is not in your name file, please correct."); mothurOutEndLine(); exit(1); } + if (itNames == globaldata->names.end()) { m->mothurOut(name + " is not in your name file, please correct."); m->mothurOutEndLine(); exit(1); } else { vector dupNames; splitAtComma(globaldata->names[name], dupNames); @@ -134,7 +135,7 @@ void Tree::addNamesToCounts() { } catch(exception& e) { - errorOut(e, "Tree", "addNamesToCounts"); + m->errorOut(e, "Tree", "addNamesToCounts"); exit(1); } } @@ -148,7 +149,7 @@ int Tree::getIndex(string searchName) { } catch(exception& e) { - errorOut(e, "Tree", "getIndex"); + m->errorOut(e, "Tree", "getIndex"); exit(1); } } @@ -160,12 +161,12 @@ void Tree::setIndex(string searchName, int index) { globaldata->gTreemap->setIndex(searchName, index); } catch(exception& e) { - errorOut(e, "Tree", "setIndex"); + m->errorOut(e, "Tree", "setIndex"); exit(1); } } /*****************************************************************/ -void Tree::assembleTree() { +int Tree::assembleTree() { try { //if user has given a names file we want to include that info in the pgroups and pcount info. @@ -173,12 +174,16 @@ void Tree::assembleTree() { //build the pGroups in non leaf nodes to be used in the parsimony calcs. for (int i = numLeaves; i < numNodes; i++) { + if (m->control_pressed) { return 1; } + tree[i].pGroups = (mergeGroups(i)); tree[i].pcount = (mergeGcounts(i)); } + + return 0; } catch(exception& e) { - errorOut(e, "Tree", "assembleTree"); + m->errorOut(e, "Tree", "assembleTree"); exit(1); } } @@ -216,7 +221,7 @@ void Tree::getCopy(Tree* copy) { } catch(exception& e) { - errorOut(e, "Tree", "getCopy"); + m->errorOut(e, "Tree", "getCopy"); exit(1); } } @@ -269,7 +274,7 @@ map Tree::mergeGroups(int i) { return parsimony; } catch(exception& e) { - errorOut(e, "Tree", "mergeGroups"); + m->errorOut(e, "Tree", "mergeGroups"); exit(1); } } @@ -335,7 +340,7 @@ map Tree::mergeUserGroups(int i, vector g) { return parsimony; } catch(exception& e) { - errorOut(e, "Tree", "mergeUserGroups"); + m->errorOut(e, "Tree", "mergeUserGroups"); exit(1); } } @@ -358,7 +363,7 @@ map Tree::mergeGcounts(int position) { return sum; } catch(exception& e) { - errorOut(e, "Tree", "mergeGcounts"); + m->errorOut(e, "Tree", "mergeGcounts"); exit(1); } } @@ -400,7 +405,7 @@ void Tree::randomLabels(vector g) { } } catch(exception& e) { - errorOut(e, "Tree", "randomLabels"); + m->errorOut(e, "Tree", "randomLabels"); exit(1); } } @@ -430,7 +435,7 @@ void Tree::randomLabels(string groupA, string groupB) { } } catch(exception& e) { - errorOut(e, "Tree", "randomLabels"); + m->errorOut(e, "Tree", "randomLabels"); exit(1); } } @@ -446,7 +451,7 @@ void Tree::randomBlengths() { } } catch(exception& e) { - errorOut(e, "Tree", "randomBlengths"); + m->errorOut(e, "Tree", "randomBlengths"); exit(1); } } @@ -503,7 +508,7 @@ void Tree::randomTopology() { } } catch(exception& e) { - errorOut(e, "Tree", "randomTopology"); + m->errorOut(e, "Tree", "randomTopology"); exit(1); } } @@ -515,7 +520,7 @@ void Tree::print(ostream& out) { out << ";" << endl; } catch(exception& e) { - errorOut(e, "Tree", "print"); + m->errorOut(e, "Tree", "print"); exit(1); } } @@ -527,7 +532,7 @@ void Tree::printForBoot(ostream& out) { out << ";" << endl; } catch(exception& e) { - errorOut(e, "Tree", "printForBoot"); + m->errorOut(e, "Tree", "printForBoot"); exit(1); } } @@ -549,7 +554,7 @@ void Tree::createNewickFile(string f) { out.close(); } catch(exception& e) { - errorOut(e, "Tree", "createNewickFile"); + m->errorOut(e, "Tree", "createNewickFile"); exit(1); } } @@ -568,7 +573,7 @@ int Tree::findRoot() { return -1; } catch(exception& e) { - errorOut(e, "Tree", "findRoot"); + m->errorOut(e, "Tree", "findRoot"); exit(1); } } @@ -614,7 +619,7 @@ void Tree::printBranch(int node, ostream& out, string mode) { } catch(exception& e) { - errorOut(e, "Tree", "printBranch"); + m->errorOut(e, "Tree", "printBranch"); exit(1); } } @@ -710,7 +715,7 @@ void Tree::parseTreeFile() { filehandle.close(); } catch(exception& e) { - errorOut(e, "Tree", "parseTreeFile"); + m->errorOut(e, "Tree", "parseTreeFile"); exit(1); } } @@ -774,7 +779,7 @@ int Tree::readTreeString(ifstream& filehandle) { return 0; } catch(exception& e) { - errorOut(e, "Tree", "readTreeString"); + m->errorOut(e, "Tree", "readTreeString"); exit(1); } }