X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=treemap.h;h=7ffd1e7003154d672d544aa8a993f371a7f9a28a;hp=12299731f89e10741926cd797fad2a02ed267c2d;hb=df7e3ff9f68ef157b0328a2d353c3258c5d45d89;hpb=c5c7502f435e1413c19e373dab1dfebcaa67588d diff --git a/treemap.h b/treemap.h index 1229973..7ffd1e7 100644 --- a/treemap.h +++ b/treemap.h @@ -10,7 +10,7 @@ */ #include "mothur.h" -#include "groupmap.h" +#include "listvector.hpp" /* This class is used by the read.tree command to build the tree container. */ @@ -19,35 +19,49 @@ struct GroupIndex { int vectorIndex; }; -class GroupMap; - class TreeMap { public: - TreeMap() {}; + TreeMap() { m = MothurOut::getInstance(); } TreeMap(string); ~TreeMap(); - void readMap(); + + int readMap(); + int readMap(string); int getNumGroups(); int getNumSeqs(); - void setIndex(string, int); //sequencename, index - int getIndex(string); //returns vector index of sequence + //void setIndex(string, int); //sequencename, index + //int getIndex(string); //returns vector index of sequence bool isValidGroup(string); //return true if string is a valid group + void removeSeq(string); //removes a sequence, this is to accomadate trees that do not contain all the seqs in your groupfile string getGroup(string); - vector namesOfGroups; - vector namesOfSeqs; + void addSeq(string, string); + void addGroup(string s) { setNamesOfGroups(s); } + vector getNamesOfGroups() { + sort(namesOfGroups.begin(), namesOfGroups.end()); + return namesOfGroups; + } + + void print(ostream&); + void makeSim(vector); //takes groupmap info and fills treemap for use by tree.shared command. + void makeSim(ListVector*); //takes listvector info and fills treemap for use by tree.shared command. + vector getNamesSeqs(); + vector getNamesSeqs(vector); //get names of seqs belonging to a group or set of groups + int getCopy(TreeMap&); + + vector namesOfSeqs; map seqsPerGroup; //groupname, number of seqs in that group. map treemap; //sequence name and - void print(ostream&); - void makeSim(GroupMap*); //takes groupmap info and fills treemap for use by tree.groups command. - - + + private: + vector namesOfGroups; ifstream fileHandle; string groupFileName; int numGroups; map::iterator it; map::iterator it2; void setNamesOfGroups(string); + MothurOut* m; };