7 #include "sparsedistancematrix.h"
16 Cluster(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
17 virtual void update(double&);
18 virtual string getTag() = 0;
19 virtual void setMapWanted(bool m);
20 virtual map<string, int> getSeqtoBin() { return seq2Bin; }
23 virtual bool updateDistance(PDistCell& colCell, PDistCell& rowCell) = 0;
25 virtual void clusterBins();
26 virtual void clusterNames();
27 virtual void updateMap();
31 SparseDistanceMatrix* dMatrix;
38 map<string, int> seq2Bin;
46 /***********************************************************************/
48 class CompleteLinkage : public Cluster {
50 CompleteLinkage(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
51 bool updateDistance(PDistCell& colCell, PDistCell& rowCell);
58 /***********************************************************************/
60 class SingleLinkage : public Cluster {
62 SingleLinkage(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
64 bool updateDistance(PDistCell& colCell, PDistCell& rowCell);
71 /***********************************************************************/
73 class AverageLinkage : public Cluster {
75 AverageLinkage(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
76 bool updateDistance(PDistCell& colCell, PDistCell& rowCell);
88 /***********************************************************************/
90 class WeightedLinkage : public Cluster {
92 WeightedLinkage(RAbundVector*, ListVector*, SparseDistanceMatrix*, float, string);
93 bool updateDistance(PDistCell& colCell, PDistCell& rowCell);
101 /***********************************************************************/