]> git.donarmstrong.com Git - mothur.git/blobdiff - sharedordervector.h
working on pam
[mothur.git] / sharedordervector.h
index f925964e72b7bf7173945b7c04299bbfba1d2fdc..7d383ac84f431830e2324cd51d4777d80a3390e0 100644 (file)
@@ -2,7 +2,7 @@
 #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 {
                string group;
                int bin;
                int abundance;
+               bool operator()(const individual& i1, const individual& i2) {
+               return (i1.abundance > i2.abundance);
+               }
+       individual() {  group = ""; bin = 0; abundance = 0; }
 };
 
-#include <Carbon/Carbon.h>
+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 "groupmap.h"
 
 class SharedOrderVector : public DataVector {
        
@@ -39,18 +52,19 @@ public:
        SharedOrderVector(const SharedOrderVector& ov)  : DataVector(ov.label), data(ov.data), maxRank(ov.maxRank), numBins(ov.numBins), numSeqs(ov.numSeqs), needToUpdate(ov.needToUpdate) {if(needToUpdate == 1){     updateStats();}};
 
        SharedOrderVector(string, vector<individual>);
-//     SharedOrderVector(ifstream&);
+       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();
@@ -62,15 +76,18 @@ public:
        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:
+       GroupMap* groupmap;
        vector<individual>  data; 
        map< int, vector<individual> >::iterator it;
        int maxRank;
        int numBins;
        int numSeqs;
        bool needToUpdate;
-       void updateStats();
+       void set(int, int, int, string);        //index, OTU, abundance, group
+       
 };
 
 #endif