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<string, int>::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<string, int>::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);
}
}
-/*****************************************************************/
-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 {
try {
int lc = tree[i].getLChild();
int rc = tree[i].getRChild();
-cout << i << lc << rc << endl;
+
//set parsimony groups to left child
map<string,int> parsimony = tree[lc].pGroups;
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<string>);
void assembleRandomUnifracTree(string, string);