]> git.donarmstrong.com Git - mothur.git/blob - fullmatrix.h
This is v.1.4.0
[mothur.git] / fullmatrix.h
1 #ifndef FULLMATRIX_H
2 #define FULLMATRIX_H
3 /*
4  *  fullmatrix.h
5  *  Mothur
6  *
7  *  Created by Sarah Westcott on 3/6/09.
8  *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
9  *
10  */
11
12 #include "mothur.h"
13 #include "groupmap.h"
14 #include "globaldata.hpp"
15 #include "progress.hpp"
16
17
18 struct Names {
19         string          seqName;
20         string          groupName;
21 };
22
23 class FullMatrix {
24         
25 public:
26         FullMatrix(){};
27         FullMatrix(ifstream&);
28         ~FullMatrix(){};
29         
30         int getNumSeqs();
31         vector<int> getSizes();
32         vector<string> getGroups();
33         int getNumGroups();
34         void printMatrix(ostream&);
35         float get(int, int);
36         
37 private:
38         vector< vector<float> > matrix;  //a 2D distance matrix of all the sequences and their distances to eachother.
39         void readSquareMatrix(ifstream&);  
40         void readLTMatrix(ifstream&);
41         vector<Names> index; // row in vector, sequence group.  need to know this so when we sort it can be updated.
42         vector<int> sizes;
43         vector<string> groups;
44         void sortGroups(int, int);  //this function sorts the sequences within the matrix.
45         
46         
47         GroupMap* groupmap;  //maps sequences to groups they belong to.
48         int numSeqs;
49         int numGroups;
50         int numUserGroups;
51         GlobalData* globaldata;
52 };
53
54 #endif