From 9daea1c357d32c6a7b34c5cbec122b7cfc5c92e3 Mon Sep 17 00:00:00 2001 From: westcott Date: Fri, 6 Mar 2009 12:50:31 +0000 Subject: [PATCH] fixed bug in read tree --- readtree.cpp | 31 +++++++++++++++---------------- tree.cpp | 39 +-------------------------------------- tree.h | 1 - 3 files changed, 16 insertions(+), 55 deletions(-) diff --git a/readtree.cpp b/readtree.cpp index 59239c8..a253741 100644 --- a/readtree.cpp +++ b/readtree.cpp @@ -336,25 +336,24 @@ int ReadNewickTree::readNewickInt(istream& f, int& n, Tree* T) { if(n1 == -1) { cerr << "Name: " << name << " not found in your groupfile.. \n"; exit(1); - globaldata->gTreemap->namesOfSeqs.push_back(name); - globaldata->gTreemap->treemap[name].groupname = "xxx"; - globaldata->gTreemap->treemap[name].vectorIndex = (globaldata->gTreemap->namesOfSeqs.size() - 1); + //globaldata->gTreemap->namesOfSeqs.push_back(name); + //globaldata->gTreemap->treemap[name].groupname = "xxx"; + //globaldata->gTreemap->treemap[name].vectorIndex = (globaldata->gTreemap->namesOfSeqs.size() - 1); - map::iterator it; - it = globaldata->gTreemap->seqsPerGroup.find("xxx"); - if (it == globaldata->gTreemap->seqsPerGroup.end()) { //its a new group - globaldata->gTreemap->namesOfGroups.push_back("xxx"); - globaldata->gTreemap->seqsPerGroup["xxx"] = 1; - }else { - globaldata->gTreemap->seqsPerGroup["xxx"]++; - } + //map::iterator it; + //it = globaldata->gTreemap->seqsPerGroup.find("xxx"); + //if (it == globaldata->gTreemap->seqsPerGroup.end()) { //its a new group + // globaldata->gTreemap->namesOfGroups.push_back("xxx"); + // globaldata->gTreemap->seqsPerGroup["xxx"] = 1; + //}else { + // globaldata->gTreemap->seqsPerGroup["xxx"]++; + //} //find index in tree of name - n1 = T->getIndex(name); - group = "xxx"; - numLeaves++; - numNodes = 2*numLeaves - 1; - //T->resetTree(); + //n1 = T->getIndex(name); + //group = "xxx"; + //numLeaves++; + //numNodes = 2*numLeaves - 1; } T->tree[n1].setGroup(group); diff --git a/tree.cpp b/tree.cpp index e34253d..2cd9cba 100644 --- a/tree.cpp +++ b/tree.cpp @@ -49,43 +49,6 @@ Tree::Tree() { } } -/*****************************************************************/ -void Tree::resetTree(){ -try { - numLeaves = globaldata->gTreemap->getNumSeqs(); - numNodes = 2*numLeaves - 1; - - tree.resize(numNodes); - - //initialize tree with correct number of nodes, name and group info. - for (int i = 0; i < numNodes; i++) { - //initialize leaf nodes - if (i <= (numLeaves-1)) { - tree[i].setName(globaldata->gTreemap->namesOfSeqs[i]); - tree[i].setGroup(globaldata->gTreemap->getGroup(globaldata->gTreemap->namesOfSeqs[i])); - //set pcount and pGroup for groupname to 1. - tree[i].pcount[globaldata->gTreemap->getGroup(globaldata->gTreemap->namesOfSeqs[i])] = 1; - tree[i].pGroups[globaldata->gTreemap->getGroup(globaldata->gTreemap->namesOfSeqs[i])] = 1; - //Treemap knows name, group and index to speed up search - globaldata->gTreemap->setIndex(globaldata->gTreemap->namesOfSeqs[i], i); - - //intialize non leaf nodes - }else if (i > (numLeaves-1)) { - tree[i].setName(""); - tree[i].setGroup(""); - } - } - } - catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the Tree class Function resetTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the Tree class function resetTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - -} /*****************************************************************/ int Tree::getIndex(string searchName) { try { @@ -189,7 +152,7 @@ map Tree::mergeGroups(int i) { try { int lc = tree[i].getLChild(); int rc = tree[i].getRChild(); -cout << i << lc << rc << endl; + //set parsimony groups to left child map parsimony = tree[lc].pGroups; diff --git a/tree.h b/tree.h index 828b038..d6a3b55 100644 --- a/tree.h +++ b/tree.h @@ -24,7 +24,6 @@ public: void getCopy(Tree*); //makes tree a copy of the one passed in. - void resetTree(); //this is needed to allow user to omit names from the group file void assembleRandomTree(); void assembleRandomUnifracTree(vector); void assembleRandomUnifracTree(string, string); -- 2.39.2