#include "datavector.hpp"
#include "sharedordervector.h"
#include "sharedsabundvector.h"
+#include "sharedrabundfloatvector.h"
#include "rabundvector.hpp"
+#include "groupmap.h"
/* This class is a child to datavector. It represents OTU information at a certain distance.
It is similiar to an rabundvector except each member of data knows which group it belongs to.
An individual which knows the OTU from which it came,
the group it is in and its abundance. */
-
+class GlobalData;
class SharedRAbundVector : public DataVector {
SharedRAbundVector();
SharedRAbundVector(int);
//SharedRAbundVector(string, vector<int>);
- SharedRAbundVector(const SharedRAbundVector& bv) : DataVector(bv), data(bv.data), maxRank(bv.maxRank), numBins(bv.numBins), numSeqs(bv.numSeqs){};
- //SharedRAbundVector(ifstream&);
+ SharedRAbundVector(const SharedRAbundVector& bv) : DataVector(bv), data(bv.data), maxRank(bv.maxRank), numBins(bv.numBins), numSeqs(bv.numSeqs), group(bv.group), index(bv.index){};
+ SharedRAbundVector(ifstream&);
~SharedRAbundVector();
int getNumBins();
int getAbundance(int);
int numNZ();
void sortD(); //Sorts the data in descending order.
- void push_back(int, int, string); //abundance, OTU, groupname
+ void push_front(int, int, string); //abundance, otu, groupname
+ void insert(int, int, string); //abundance, otu, groupname
+ void push_back(int, string); //abundance, groupname
void pop_back();
void resize(int);
int size();
+ void clear();
vector<individual>::reverse_iterator rbegin();
vector<individual>::reverse_iterator rend();
SharedOrderVector getSharedOrderVector();
SharedSAbundVector getSharedSAbundVector();
SharedRAbundVector getSharedRAbundVector();
+ vector<SharedRAbundVector*> getSharedRAbundVectors();
+ vector<SharedRAbundFloatVector*> getSharedRAbundFloatVectors(vector<SharedRAbundVector*>);
private:
vector<individual> data;
+ vector<SharedRAbundVector*> lookup;
+ GlobalData* globaldata;
+ GroupMap* groupmap;
int maxRank;
int numBins;
int numSeqs;
string group;
int index;
+
+ int eliminateZeroOTUS(vector<SharedRAbundVector*>&);
};