]> git.donarmstrong.com Git - mothur.git/blob - hcluster.h
precluster command finished
[mothur.git] / hcluster.h
1 #ifndef HCLUSTER_H
2 #define HCLUSTER_H
3
4 /*
5  *  hcluster.h
6  *  Mothur
7  *
8  *  Created by westcott on 10/13/09.
9  *  Copyright 2009 Schloss Lab. All rights reserved.
10  *
11  */
12
13
14 #include "mothur.h"
15 #include "nameassignment.hpp"
16
17 class RAbundVector;
18 class ListVector;
19
20 /***********************************************************************/
21 class HCluster {
22         
23 public:
24         HCluster(RAbundVector*, ListVector*, string);
25         ~HCluster(){};
26     void update(int, int, float);
27         void setMapWanted(bool m); 
28         map<string, int> getSeqtoBin()  {  return seq2Bin;      }
29         vector<seqDist> getSeqs(ifstream&, NameAssignment*, float);
30
31 protected:      
32         void clusterBins();
33         void clusterNames();
34         int getUpmostParent(int);
35         int makeActive();
36         void printInfo();
37         void updateArrayandLinkTable();
38         void updateMap();
39                 
40         RAbundVector* rabund;
41         ListVector* list;
42         
43         vector<clusterNode> clusterArray;
44         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
45         map<int, int> activeLinks;  //maps sequence to index in linkTable
46         map<int, int>::iterator it;
47         map<int, int>::iterator it2;
48         
49         int numSeqs;
50         int smallRow;
51         int smallCol;
52         float smallDist;
53         map<string, int> seq2Bin;
54         bool mapWanted, exitedBreak;
55         seqDist next;
56         string method;
57         
58 };
59
60 /***********************************************************************/
61
62
63
64
65
66
67
68 #endif
69
70