]> git.donarmstrong.com Git - mothur.git/blobdiff - sharedrabundvector.h
Revert to previous commit
[mothur.git] / sharedrabundvector.h
diff --git a/sharedrabundvector.h b/sharedrabundvector.h
new file mode 100644 (file)
index 0000000..792543e
--- /dev/null
@@ -0,0 +1,95 @@
+#ifndef SHAREDRABUNDVECTOR_H
+#define SHAREDRABUNDVECTOR_H
+
+/*
+ *  sharedrabundvector.h
+ *  Dotur
+ *
+ *  Created by Sarah Westcott on 12/5/08.
+ *  Copyright 2008 Schloss Lab UMASS Amherst. All rights reserved.
+ *
+ */
+
+#include "datavector.hpp"
+#include "sharedordervector.h"
+#include "sharedsabundvector.h"
+#include "sharedrabundfloatvector.h"
+#include "rabundvector.hpp"
+//#include "groupmap.h"
+
+/*  DataStructure for a shared file.
+       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.
+       Each member of the internal container "data" is a struct of type individual. 
+       An individual which knows the OTU from which it came, 
+       the group it is in and its abundance.  */
+
+//class GlobalData;
+
+class SharedRAbundVector : public DataVector {
+       
+public:
+       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), group(bv.group), index(bv.index){};
+    SharedRAbundVector(ifstream&);
+       ~SharedRAbundVector();
+
+       int getNumBins();               
+       int getNumSeqs();                                                       
+       int getMaxRank();
+       string getGroup();
+       void setGroup(string);
+       string getBinLabel();
+       void setBinLabel(string);
+       int getGroupIndex();
+       void setGroupIndex(int);                                                                
+
+       void set(int, int, string);                     //OTU, abundance, groupname
+       void setData(vector <individual>);
+       individual get(int);
+       vector <individual> getData();
+       int getAbundance(int);
+       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, string);  //abundance, groupname
+       void pop_back();
+       void resize(int);
+       int size();
+       void clear();
+       vector<individual>::reverse_iterator rbegin();
+       vector<individual>::reverse_iterator rend();
+       
+       void print(ostream&);
+       void printHeaders(ostream&);
+               
+       RAbundVector getRAbundVector();
+       RAbundVector getRAbundVector2();
+       SAbundVector getSAbundVector();
+       OrderVector getOrderVector(map<string,int>*);
+       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*>&);
+};
+
+
+#endif
+