X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=treemap.h;fp=treemap.h;h=57822e02d4b8c3a57f7d0ddf26947c470bf9400b;hb=0caf3fbabaa3ece404f8ce77f4c883dc5b1bf1dc;hp=0000000000000000000000000000000000000000;hpb=1b73ff67c83892a025e597dabd9df6fe7b58206a;p=mothur.git diff --git a/treemap.h b/treemap.h new file mode 100644 index 0000000..57822e0 --- /dev/null +++ b/treemap.h @@ -0,0 +1,69 @@ +#ifndef TREEMAP_H +#define TREEMAP_H +/* + * treemap.h + * Mothur + * + * Created by Sarah Westcott on 1/26/09. + * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved. + * + */ + +#include "mothur.h" +#include "listvector.hpp" + +/* This class is used by the read.tree command to build the tree container. */ + +struct GroupIndex { + string groupname; + int vectorIndex; +}; + +class TreeMap { +public: + TreeMap() { m = MothurOut::getInstance(); } + TreeMap(string); + ~TreeMap(); + + int readMap(); + int readMap(string); + int getNumGroups(); + int getNumSeqs(); + 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); + 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 + + +private: + vector namesOfGroups; + ifstream fileHandle; + string groupFileName; + int numGroups; + map::iterator it; + map::iterator it2; + void setNamesOfGroups(string); + MothurOut* m; + + +}; + +#endif