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