8 * Created by Sarah Westcott on 1/23/09.
9 * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
15 /* This class represents a node on a tree. */
20 Node(); //pass it the sequence name
21 ~Node() { pGroups.clear(); pcount.clear(); };
24 void setGroup(string);
25 void setBranchLength(float);
28 void setChildren(int, int); //leftchild, rightchild
30 void setLengthToLeaves(float);
34 float getBranchLength();
35 float getLengthToLeaves();
41 void printNode(); //prints out the name and the branch length
44 //pGroup is the parsimony group info. i.e. for a leaf node it would contain 1 enter pGroup["groupname"] = 1;
45 //but for a branch node it may contain several entries so if the nodes children are from different groups it
46 //would have at least two entries pgroup["groupnameOfLeftChild"] = 1, pgroup["groupnameOfRightChild"] = 1.
47 //pCount is the nodes descendant group infomation. i.e. pCount["black"] = 20 would mean that 20 of the nodes
48 //descendant are from group black.
50 map<string, int> pGroups; //leaf nodes will only have 1 group, but branch nodes may have multiple groups.
51 map<string, int> pcount;
56 float branchLength, length2leaf, label;