#include "sharedordervector.h"
#include "sharedsabundvector.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(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(ifstream&);
~SharedRAbundVector();
int getNumBins();
int numNZ();
void sortD(); //Sorts the data in descending order.
void push_front(int, int, string); //abundance, otu, groupname
+ void insert(int, int, string); //abundance, otu, groupname
void push_back(int, int, string); //abundance, otu, groupname
void pop_back();
void resize(int);
SharedOrderVector getSharedOrderVector();
SharedSAbundVector getSharedSAbundVector();
SharedRAbundVector getSharedRAbundVector();
+ vector<SharedRAbundVector*> getSharedRAbundVectors();
private:
vector<individual> data;
+ vector<SharedRAbundVector*> lookup;
+ GlobalData* globaldata;
+ GroupMap* groupmap;
int maxRank;
int numBins;
int numSeqs;