X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=fullmatrix.h;h=9de7ead566d4d5446b5ea405b5e3c7eb24991cc0;hp=43bde963ca3396241a26771771189cb27c2df617;hb=b206f634aae1b4ce13978d203247fb64757d5482;hpb=42b802c0006d8b13bd5b27ea48d032a85d3f2102 diff --git a/fullmatrix.h b/fullmatrix.h index 43bde96..9de7ead 100644 --- a/fullmatrix.h +++ b/fullmatrix.h @@ -11,42 +11,48 @@ #include "mothur.h" #include "groupmap.h" -#include "globaldata.hpp" #include "progress.hpp" -using namespace std; struct Names { - string groupname; string seqName; + string groupName; }; - class FullMatrix { - public: - FullMatrix(){}; - FullMatrix(ifstream&); - ~FullMatrix(){}; +public: + //FullMatrix(){ m = MothurOut::getInstance(); } + FullMatrix(ifstream&, GroupMap*, bool); + ~FullMatrix(){}; - int getNumSeqs(); - void printMatrix(ostream&); - void getMinsForRowsVectors(); //requires globaldata->Groups to be filled + int getNumSeqs(); + vector getSizes(); + vector getGroups(); + void setGroups(vector names) { groups = names; } + void setSizes(vector s) { sizes = s; } + int getNumGroups(); + void printMatrix(ostream&); + float get(int, int); + Names getRowInfo(int row) { return index[row]; } - private: - void sortGroups(int, int); //this function sorts the sequences within the matrix. - void getBounds(int&, string); - void readSquareMatrix(ifstream&); - void readLTMatrix(ifstream&); - vector< vector > matrix; //a 2D distance matrix of all the sequences and their distances to eachother. - vector< vector > minsForRows; //vector< minimum distance for that subrow> -one for each comparison. - map index; // row in vector, sequence group. need to know this so when we sort it can be updated. - map::iterator it; - GroupMap* groupmap; //maps sequences to groups they belong to. - GlobalData* globaldata; - int numSeqs, numGroups, numUserGroups; - bool square; - +private: + vector< vector > matrix; //a 2D distance matrix of all the sequences and their distances to eachother. + int readSquareMatrix(ifstream&); + int readLTMatrix(ifstream&); + vector index; // row in vector, sequence group. need to know this so when we sort it can be updated. + vector sizes; + vector groups; + + void sortGroups(int, int); //this function sorts the sequences within the matrix. + void swapRows(int, int); + + GroupMap* groupmap; //maps sequences to groups they belong to. + int numSeqs; + int numGroups; + int numUserGroups; + bool sim; + MothurOut* m; }; -#endif \ No newline at end of file +#endif