X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=sharedlistvector.h;fp=sharedlistvector.h;h=228ccf1865888664396aa08bf94bc9fc2dd2eddd;hb=fd282e6b4be2560f5b1bd154a9e8d24b798eefaf;hp=0000000000000000000000000000000000000000;hpb=67b6343929b6dbed97c4b26c3bb849725d573f6d;p=mothur.git diff --git a/sharedlistvector.h b/sharedlistvector.h new file mode 100644 index 0000000..228ccf1 --- /dev/null +++ b/sharedlistvector.h @@ -0,0 +1,71 @@ +#ifndef SHAREDLIST_H +#define SHAREDLIST_H + +/* + * sharedlistvector.h + * Mothur + * + * Created by Sarah Westcott on 1/22/09. + * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved. + * + */ + +#include +#include "datavector.hpp" +#include "groupmap.h" +#include "globaldata.hpp" +#include "sharedrabundvector.h" +#include "sharedsabundvector.h" +#include +#include + +/* This class is a child to datavector. It represents OTU information at a certain distance. + A sharedlistvector can be converted into a sharedordervector, sharedrabundvector or sharedsabundvectorand + as well as an ordervector, rabundvector or sabundvector. + Each member of the internal container "data" represents an individual OTU. + Each individual in the OTU belongs to a group. + So data[0] = "a,b,c,d,e,f". + example: listvector = a,b,c,d,e,f g,h,i j,k l m + rabundvector = 6 3 2 1 1 + sabundvector = 2 1 1 0 0 1 + ordervector = 1 1 1 1 1 1 2 2 2 3 3 4 5 */ + +class SharedListVector : public DataVector { + +public: + SharedListVector(int); + SharedListVector(ifstream&); + SharedListVector(const SharedListVector& lv) : DataVector(lv.label), data(lv.data), maxRank(lv.maxRank), numBins(lv.numBins), numSeqs(lv.numSeqs){}; + ~SharedListVector(){}; + + int getNumBins() { return numBins; } + int getNumSeqs() { return numSeqs; } + int getMaxRank() { return maxRank; } + + void set(int, string); + string get(int); + void push_back(string); + void resize(int); + void clear(); + int size(); + void print(ostream&); + + RAbundVector getRAbundVector(); + SAbundVector getSAbundVector(); + OrderVector getOrderVector(map*); + SharedOrderVector* getSharedOrderVector(); + SharedRAbundVector getSharedRAbundVector(string); //get sharedrabundvector for a certain group + SharedSAbundVector getSharedSAbundVector(string); //get sharedsabundvector for a certain group + +private: + vector data; //data[i] is a list of names of sequences in the ith OTU. + GlobalData* globaldata; + GroupMap* groupmap; + int maxRank; + int numBins; + int numSeqs; + +}; + +#endif +