]> git.donarmstrong.com Git - mothur.git/blobdiff - fullmatrix.h
Revert to previous commit
[mothur.git] / fullmatrix.h
diff --git a/fullmatrix.h b/fullmatrix.h
new file mode 100644 (file)
index 0000000..9de7ead
--- /dev/null
@@ -0,0 +1,58 @@
+#ifndef FULLMATRIX_H
+#define FULLMATRIX_H
+/*
+ *  fullmatrix.h
+ *  Mothur
+ *
+ *  Created by Sarah Westcott on 3/6/09.
+ *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
+ *
+ */
+
+#include "mothur.h"
+#include "groupmap.h"
+#include "progress.hpp"
+
+
+struct Names {
+       string          seqName;
+       string          groupName;
+};
+
+class FullMatrix {
+       
+public:
+       //FullMatrix(){ m = MothurOut::getInstance(); }
+       FullMatrix(ifstream&, GroupMap*, bool);
+       ~FullMatrix(){};
+       
+       int getNumSeqs();
+       vector<int> getSizes();
+       vector<string> getGroups();
+       void setGroups(vector<string> names) { groups = names;  }
+       void setSizes(vector<int> s)             { sizes = s;           }
+       int getNumGroups();
+       void printMatrix(ostream&);
+       float get(int, int);
+       Names getRowInfo(int row)  {  return index[row];  }
+       
+private:
+       vector< vector<float> > matrix;  //a 2D distance matrix of all the sequences and their distances to eachother.
+       int readSquareMatrix(ifstream&);  
+       int readLTMatrix(ifstream&);
+       vector<Names> index; // row in vector, sequence group.  need to know this so when we sort it can be updated.
+       vector<int> sizes;
+       vector<string> 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