]> git.donarmstrong.com Git - mothur.git/blobdiff - hcluster.h
Revert to previous commit
[mothur.git] / hcluster.h
diff --git a/hcluster.h b/hcluster.h
new file mode 100644 (file)
index 0000000..d859886
--- /dev/null
@@ -0,0 +1,86 @@
+#ifndef HCLUSTER_H
+#define HCLUSTER_H
+
+/*
+ *  hcluster.h
+ *  Mothur
+ *
+ *  Created by westcott on 10/13/09.
+ *  Copyright 2009 Schloss Lab. All rights reserved.
+ *
+ */
+
+
+#include "mothur.h"
+#include "nameassignment.hpp"
+
+class RAbundVector;
+class ListVector;
+
+/***********************************************************************/
+class HCluster {
+       
+public:
+       HCluster(RAbundVector*, ListVector*, string, string, NameAssignment*, float);
+       ~HCluster(){};
+    double update(int, int, float);
+       void setMapWanted(bool m); 
+       map<string, int> getSeqtoBin()  {  return seq2Bin;      }
+       vector<seqDist> getSeqs();
+
+protected:     
+       void clusterBins();
+       void clusterNames();
+       int getUpmostParent(int);
+       int makeActive();
+       void printInfo();
+       void updateArrayandLinkTable();
+       void updateMap();
+       vector<seqDist> getSeqsFNNN();
+       vector<seqDist> getSeqsAN();
+       int combineFile();
+       int processFile();
+       //seqDist getNextDist(char*, int&, int);
+               
+       RAbundVector* rabund;
+       ListVector* list;
+       NameAssignment* nameMap;
+       
+       vector<clusterNode> clusterArray;
+       
+       //note: the nearest and average neighbor method do not use the link table or active links
+       vector< map<int, int> > linkTable;  // vector of maps - linkTable[1][6] = 2  would mean sequence in spot 1 has 2 links with sequence in 6
+       map<int, int> activeLinks;  //maps sequence to index in linkTable
+       map<int, int>::iterator it;
+       map<int, int>::iterator itActive;
+       map<int, int>::iterator it2Active;
+       map<int, int>::iterator it2;
+       
+       int numSeqs;
+       int smallRow;
+       int smallCol;
+       float smallDist, cutoff;
+       map<string, int> seq2Bin;
+       bool mapWanted, exitedBreak;
+       seqDist next;
+       string method, distfile;
+       ifstream filehandle;
+       
+       vector<seqDist> mergedMin;
+       string partialDist;
+       MothurOut* m;
+       
+       
+};
+
+/***********************************************************************/
+
+
+
+
+
+
+
+#endif
+
+