]> git.donarmstrong.com Git - mothur.git/blobdiff - sabundvector.hpp
added modify names parameter to set.dir
[mothur.git] / sabundvector.hpp
index f45ef609515321a74b9bbf98d7f7b4fcbdb9512d..666e94f4db598b9bf1589bf8288fed75e221bdc3 100644 (file)
@@ -1,11 +1,22 @@
 #ifndef SABUND_H
 #define SABUND_H
 
-using namespace std;
-
 #include "datavector.hpp"
 #include "rabundvector.hpp"
 #include "ordervector.hpp"
+#include "calculator.h"
+
+
+/*  Data Structure for a sabund file.
+    This class is a child to datavector.  It represents OTU information at a certain distance. 
+       A sabundvector can be converted into and ordervector, listvector or rabundvector.
+       Each member of the internal container "data" represents the number of OTU's with that many members, but staring at 1.
+       So data[1] = 2, because there are two OTUs with 1 member.
+       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 SAbundVector : public DataVector {
        
@@ -13,6 +24,7 @@ public:
        SAbundVector();
        SAbundVector(int);
 //     SAbundVector(const SAbundVector&);
+       SAbundVector(vector<int>, int, int, int);
        SAbundVector(string, vector<int>);
        SAbundVector(const SAbundVector& rv) : DataVector(rv.label), data(rv.data), maxRank(rv.maxRank), numBins(rv.numBins), numSeqs(rv.numSeqs){};
        SAbundVector(ifstream&);
@@ -25,13 +37,16 @@ public:
        void set(int, int);
        int get(int);
        void push_back(int);
+       void quicksort();
+       int sum();
        void resize(int);
        int size();
+       void clear();
 
        void print(ostream&);
        void print(string, ostream&);
                
-       RAbundVector getRAbundVector(); 
+       RAbundVector getRAbundVector();         
        SAbundVector getSAbundVector();
        OrderVector getOrderVector(map<string,int>*);
        
@@ -39,6 +54,7 @@ private:
        vector<int> data;
 //     bool needToUpdate;
 //     void updateStats();
+       
        int maxRank;
        int numBins;
        int numSeqs;