7 #include "sparsedistancematrix.h"
16 Cluster(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
18 virtual void update(double&);
19 virtual string getTag() = 0;
20 virtual void setMapWanted(bool m);
21 virtual map<string, int> getSeqtoBin() { return seq2Bin; }
24 virtual bool updateDistance(PDistCell& colCell, PDistCell& rowCell) = 0;
26 virtual void clusterBins();
27 virtual void clusterNames();
28 virtual void updateMap();
32 SparseDistanceMatrix* dMatrix;
39 map<string, int> seq2Bin;
47 /***********************************************************************/
49 class CompleteLinkage : public Cluster {
51 CompleteLinkage(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
52 bool updateDistance(PDistCell& colCell, PDistCell& rowCell);
59 /***********************************************************************/
61 class SingleLinkage : public Cluster {
63 SingleLinkage(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
65 bool updateDistance(PDistCell& colCell, PDistCell& rowCell);
72 /***********************************************************************/
74 class AverageLinkage : public Cluster {
76 AverageLinkage(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
77 bool updateDistance(PDistCell& colCell, PDistCell& rowCell);
89 /***********************************************************************/
91 class WeightedLinkage : public Cluster {
93 WeightedLinkage(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
94 bool updateDistance(PDistCell& colCell, PDistCell& rowCell);
102 /***********************************************************************/