X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sabundvector.hpp;h=666e94f4db598b9bf1589bf8288fed75e221bdc3;hb=372fb21ea66ced432b109225851a1b80ef0491a3;hp=f45ef609515321a74b9bbf98d7f7b4fcbdb9512d;hpb=20a2d0350a737a434c89f303662d64a8eeea7b05;p=mothur.git diff --git a/sabundvector.hpp b/sabundvector.hpp index f45ef60..666e94f 100644 --- a/sabundvector.hpp +++ b/sabundvector.hpp @@ -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); SAbundVector(string, vector); 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*); @@ -39,6 +54,7 @@ private: vector data; // bool needToUpdate; // void updateStats(); + int maxRank; int numBins; int numSeqs;