]> git.donarmstrong.com Git - mothur.git/blobdiff - listvector.hpp
working on pam
[mothur.git] / listvector.hpp
index dbd61cd0d8f10cba4ea87b4075bbec673f36b19b..b2bc511cfd258da992f9f1b8a44971f4dd29e3e2 100644 (file)
@@ -2,12 +2,16 @@
 #define LIST_H
 
 #include "datavector.hpp"
-#include "groupmap.h"
-#include "globaldata.hpp"
-#include "sharedordervector.h"
-#include <iostream>
-#include <map>
 
+/*     DataStructure for a list file.
+       This class is a child to datavector.  It represents OTU information at a certain distance. 
+       A list vector can be converted into and ordervector, rabundvector or sabundvector.
+       Each member of the internal container "data" represents an individual OTU.
+       So data[0] = "a,b,c,d,e,f".
+       example: listvector             =       a,b,c,d,e,f             g,h,i           j,k             l               m  
+                        rabundvector   =       6                               3                       2               1               1
+                        sabundvector   =       2               1               1               0               0               1
+                        ordervector    =       1       1       1       1       1       1       2       2       2       3       3       4       5 */
 
 class ListVector : public DataVector {
        
@@ -16,7 +20,7 @@ public:
        ListVector(int);
 //     ListVector(const ListVector&);
        ListVector(string, vector<string>);
-       ListVector(const ListVector& lv) : DataVector(lv.label), data(lv.data), maxRank(lv.maxRank), numBins(lv.numBins), numSeqs(lv.numSeqs){};
+       ListVector(const ListVector& lv) : DataVector(lv.label), data(lv.data), maxRank(lv.maxRank), numBins(lv.numBins), numSeqs(lv.numSeqs), binLabels(lv.binLabels) {};
        ListVector(ifstream&);
        ~ListVector(){};
        
@@ -26,24 +30,25 @@ public:
 
        void set(int, string);  
        string get(int);
+    vector<string> getLabels();
+    void setLabels(vector<string>);
        void push_back(string);
        void resize(int);
        void clear();
        int size();
        void print(ostream&);
+    void printHeaders(ostream&);
        
        RAbundVector getRAbundVector();
        SAbundVector getSAbundVector();
        OrderVector getOrderVector(map<string,int>*);
-       SharedOrderVector* getSharedOrderVector();
        
 private:
-       vector<string> data;
-       GlobalData* globaldata;
-       GroupMap* groupmap;
+       vector<string> data;  //data[i] is a list of names of sequences in the ith OTU.
        int maxRank;
        int numBins;
        int numSeqs;
+    vector<string> binLabels;
 
 };