*/
#include "mothur.h"
+#include "mothurout.h"
/**************************************************************************************************/
public:
PhyloTree();
PhyloTree(string); //pass it a taxonomy file and it makes the tree
+ PhyloTree(ifstream&); //pass it a taxonomy file and it makes the train.tree
~PhyloTree() {};
- void addSeqToTree(string, string);
+ int addSeqToTree(string, string);
void assignHeirarchyIDs(int);
void print(ofstream&);
+ void printTreeNodes(string); //used by bayesian to save time
vector<int> getGenusNodes();
+ vector<int> getGenusTotals();
void binUnclassified();
- TaxNode get(int i) { return tree[i]; }
+ TaxNode get(int i) { return tree[i]; }
TaxNode get(string seqName) { return tree[name2Taxonomy[seqName]]; }
- int getIndex(string seqName) { return name2Taxonomy[seqName]; }
- string getName(int i) { return tree[i].name; }
+ int getIndex(string seqName) { return name2Taxonomy[seqName]; }
+ string getName(int i) { return tree[i].name; }
+ string getFullTaxonomy(string); //pass a sequence name return taxonomy
+ int getMaxLevel() { return maxLevel; }
+ int getNumSeqs() { return numSeqs; }
+
private:
string getNextTaxon(string&);
vector<TaxNode> tree;
vector<int> genusIndex; //holds the indexes in tree where the genus level taxonomies are stored
+ vector<int> totals; //holds the numSeqs at each genus level taxonomy
map<string, int> name2Taxonomy; //maps name to index in tree
map<int, int> uniqueTaxonomies; //map of unique taxonomies
void print(int, ofstream&);
int numNodes;
int numSeqs;
int maxLevel;
+ bool calcTotals;
+ MothurOut* m;
};
/**************************************************************************************************/