+++ /dev/null
-#ifndef SHAREDORDER_H
-#define SHAREDORDER_H
-/*
- * sharedorder.h
- * Mothur
- *
- * Created by Sarah Westcott on 12/9/08.
- * Copyright 2008 Schloss Lab UMASS Amherst. All rights reserved.
- *
- */
-
- /* This class is a child to datavector. It represents OTU information at a certain distance.
- It is similiar to an order vector except each member of data knows which group it belongs to.
- Each member of the internal container "data" represents is an individual which knows the OTU from which it came,
- the group it is in and the abundance is equal to the OTU number. */
-
-
-#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; }
-};
-
-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 {
-
-public:
- SharedOrderVector();
-// SharedOrderVector(int ns, int nb=0, int mr=0) : DataVector(), data(ns, -1), maxRank(0), numBins(0), numSeqs(0) {};
- 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(){};
-
-
- individual get(int);
- 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();
- int getMaxRank();
-
- RAbundVector getRAbundVector();
- SAbundVector getSAbundVector();
- OrderVector getOrderVector(map<string,int>*);
- 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 set(int, int, int, string); //index, OTU, abundance, group
-
-};
-
-#endif
-