X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=fullmatrix.h;fp=fullmatrix.h;h=5912b6ccc0ea323bf905bd0e9f301631276c4490;hp=078cdb7699f53192b526ab3979036d5144b968e1;hb=197c6d3303439582502840980d6a85cf3aab2314;hpb=3329385a816a97bdde934d98a615865c29eaacad diff --git a/fullmatrix.h b/fullmatrix.h index 078cdb7..5912b6c 100644 --- a/fullmatrix.h +++ b/fullmatrix.h @@ -17,52 +17,39 @@ using namespace std; struct Names { - string groupname; string seqName; + string groupName; }; -struct Swap { - int a; - int b; -}; - - class FullMatrix { - public: - FullMatrix(){}; - FullMatrix(ifstream&); - ~FullMatrix(){}; +public: + FullMatrix(){}; + FullMatrix(ifstream&); + ~FullMatrix(){}; - int getNumSeqs(); - void printMatrix(ostream&); - void setBounds(); //requires globaldata->Groups to be filled - vector getMins(int); //returns vector of mins for "box" requested ie. groups A, B, 0 = AA, 1 = AB, 2 = BA, 3 = BB; - void getDist(vector&); //fills a vector with the valid distances for the integral form. - void shuffle(string, string); //shuffles the sequences in the groups passed in. - void restore(); //unshuffles the matrix. + int getNumSeqs(); + vector getSizes(); + vector getGroups(); + int getNumGroups(); + void printMatrix(ostream&); + float get(int, int); - private: - void sortGroups(int, int); //this function sorts the sequences within the matrix. - void getBounds(int&, string); - void readSquareMatrix(ifstream&); - void readLTMatrix(ifstream&); - void printMinsForRows(ostream&); - - map index; // row in vector, sequence group. need to know this so when we sort it can be updated. - map restoreIndex; //a map of the swaps made so you can undo them in restore. - map::iterator it; - map::reverse_iterator it2; - - vector< vector > matrix; //a 2D distance matrix of all the sequences and their distances to eachother. - vector minsForRows; //vector< minimum distance for that subrow> - one for each comparison. - vector bounds; //bounds[1] = starting row in matrix from group B, bounds[2] = starting row in matrix from group C, bounds[3] = no need to find upper bound of C because its numSeqs. - - 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. + void readSquareMatrix(ifstream&); + void 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. + + + GroupMap* groupmap; //maps sequences to groups they belong to. + int numSeqs; + int numGroups; + int numUserGroups; + GlobalData* globaldata; }; #endif \ No newline at end of file