]> git.donarmstrong.com Git - mothur.git/blobdiff - treemap.h
changing command name classify.shared to classifyrf.shared
[mothur.git] / treemap.h
index 8f744c80a3e92873699aca320032cedeea59a007..7ffd1e7003154d672d544aa8a993f371a7f9a28a 100644 (file)
--- a/treemap.h
+++ b/treemap.h
@@ -10,7 +10,6 @@
  */
 
 #include "mothur.h"
-#include "groupmap.h"
 #include "listvector.hpp"
 
 /* This class is used by the read.tree command to build the tree container. */
@@ -20,36 +19,49 @@ struct GroupIndex {
        int             vectorIndex;
 };
 
-class GroupMap;
-class ListVector;
-
 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<string> namesOfGroups;
-       vector<string> namesOfSeqs;
+       void addSeq(string, string);
+       void addGroup(string s) { setNamesOfGroups(s); }
+       vector<string> getNamesOfGroups() {
+               sort(namesOfGroups.begin(), namesOfGroups.end());
+               return namesOfGroups;
+       }
+    
+    void print(ostream&);
+       void makeSim(vector<string>);  //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<string> getNamesSeqs();
+       vector<string> getNamesSeqs(vector<string>); //get names of seqs belonging to a group or set of groups
+    int getCopy(TreeMap&);
+    
+    vector<string> namesOfSeqs;
     map<string,int> seqsPerGroup;      //groupname, number of seqs in that group.
        map<string, GroupIndex> treemap; //sequence name and <groupname, vector index>
-       void print(ostream&);
-       void makeSim(GroupMap*);  //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.   
-       
+
+    
 private:
+       vector<string> namesOfGroups;
        ifstream fileHandle;
        string groupFileName;
        int numGroups;
        map<string, GroupIndex>::iterator it;
        map<string, int>::iterator it2;
        void setNamesOfGroups(string); 
+       MothurOut* m;
        
        
 };