#define SHAREDORDER_H
/*
* sharedorder.h
- * Dotur
+ * Mothur
*
* Created by Sarah Westcott on 12/9/08.
* Copyright 2008 Schloss Lab UMASS Amherst. All rights reserved.
the group it is in and the abundance is equal to the OTU number. */
-using namespace std;
-
#include "datavector.hpp"
struct individual {
bool operator()(const individual& i1, const individual& i2) {
return (i1.abundance > i2.abundance);
}
+ individual() { group = ""; bin = 0; abundance = 0; }
};
+struct individualFloat {
+ string group;
+ int bin;
+ float abundance;
+ bool operator()(const individual& i1, const individual& i2) {
+ return (i1.abundance > i2.abundance);
+ }
+ individualFloat() { group = ""; bin = 0; abundance = 0.0; }
+};
+
+
#include "sabundvector.hpp"
#include "rabundvector.hpp"
#include "sharedrabundvector.h"
#include "sharedsabundvector.h"
#include "globaldata.hpp"
#include "groupmap.h"
+//#include "globaldata.hpp"
+
+class GlobalData;
class SharedOrderVector : public DataVector {
SharedOrderVector(ifstream&);
~SharedOrderVector(){};
- void set(int, int, int, string); //index, OTU, abundance, group
+
individual get(int);
- void push_back(int, int, string); //OTU, abundance, group
void resize(int);
int size();
void print(ostream&);
vector<individual>::iterator begin();
vector<individual>::iterator end();
-
+ void push_back(int, int, string); //OTU, abundance, group MUST CALL UPDATE STATS AFTER PUSHBACK!!!
+ void updateStats();
+ void clear();
int getNumBins();
int getNumSeqs();
SharedOrderVector getSharedOrderVector();
SharedRAbundVector getSharedRAbundVector(string); //get the sharedRabundvector for a sepecific group
SharedSAbundVector getSharedSAbundVector(string); //get the sharedSabundvector for a sepecific group
+ vector<SharedRAbundVector*> getSharedRAbundVector(); //returns sharedRabundVectors for all the users groups
private:
GlobalData* globaldata;
int numBins;
int numSeqs;
bool needToUpdate;
- void updateStats();
+ void set(int, int, int, string); //index, OTU, abundance, group
+
};
#endif