File: rabundvector.hpp

package info (click to toggle)
mothur 1.48.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 13,684 kB
  • sloc: cpp: 161,854; makefile: 122; sh: 31
file content (69 lines) | stat: -rwxr-xr-x 1,831 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef RABUND_H
#define RABUND_H

#include "datavector.hpp"

/*  Data Structure for a rabund file.
    This class is a child to datavector.  It represents OTU information at a certain distance. 
	A rabundvector can be converted into and ordervector, listvector or sabundvector.
	Each member of the internal container "data" represents an individual OTU.
	So data[0] = 6, because there are six member in that OTU.
	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 RAbundFloatVector;
class OrderVector;

class RAbundVector : public DataVector {
	
public:
	RAbundVector();
	RAbundVector(int);
	RAbundVector(vector<int>, int, int, int);
    RAbundVector(vector<int>);
	RAbundVector(string, vector<int>);
	RAbundVector(const RAbundVector& bv) : DataVector(bv), data(bv.data), maxRank(bv.maxRank), numBins(bv.numBins), numSeqs(bv.numSeqs) {};
	RAbundVector(ifstream&);
    RAbundVector(ifstream& f, string l); //filehandle, label
    ~RAbundVector();

	int getNumBins();
	int getNumSeqs();							
	int getMaxRank();							

    int remove(int);
	void set(int, int);	
	int get(int);
    vector<int> get() { return data; }
	void push_back(int);
	void pop_back();
	void resize(int);
	int size();
	void quicksort();
	int sum();
	int sum(int);
	int numNZ();
    vector<int> getSortedD();
	void clear();
	vector<int>::reverse_iterator rbegin();
	vector<int>::reverse_iterator rend();
	
	void print(ostream&); //sorted
	void nonSortedPrint(ostream&); //nonsorted
	
	RAbundVector getRAbundVector();
    RAbundFloatVector getRAbundFloatVector();
	SAbundVector getSAbundVector();
	OrderVector getOrderVector(map<string,int>*);
    
private:
	vector<int> data;
	int maxRank;
	int numBins;
	int numSeqs;
};


#endif