X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=hcluster.h;h=d8598867a7bf247509a7736203a5ef505ce70f9e;hp=6b2862b7919b8d74e7a28a0442ef10bceb863db0;hb=df7e3ff9f68ef157b0328a2d353c3258c5d45d89;hpb=f5023c911c377e5320c5110c78af98dd8841ef58 diff --git a/hcluster.h b/hcluster.h index 6b2862b..d859886 100644 --- a/hcluster.h +++ b/hcluster.h @@ -12,6 +12,7 @@ #include "mothur.h" +#include "nameassignment.hpp" class RAbundVector; class ListVector; @@ -20,10 +21,12 @@ class ListVector; class HCluster { public: - HCluster(RAbundVector*, ListVector*); + HCluster(RAbundVector*, ListVector*, string, string, NameAssignment*, float); ~HCluster(){}; - bool update(int, int, float); - //string getTag(); + double update(int, int, float); + void setMapWanted(bool m); + map getSeqtoBin() { return seq2Bin; } + vector getSeqs(); protected: void clusterBins(); @@ -32,21 +35,41 @@ protected: int makeActive(); void printInfo(); void updateArrayandLinkTable(); + void updateMap(); + vector getSeqsFNNN(); + vector getSeqsAN(); + int combineFile(); + int processFile(); + //seqDist getNextDist(char*, int&, int); RAbundVector* rabund; ListVector* list; + NameAssignment* nameMap; vector clusterArray; + + //note: the nearest and average neighbor method do not use the link table or active links vector< map > linkTable; // vector of maps - linkTable[1][6] = 2 would mean sequence in spot 1 has 2 links with sequence in 6 map activeLinks; //maps sequence to index in linkTable map::iterator it; + map::iterator itActive; + map::iterator it2Active; map::iterator it2; int numSeqs; - int smallRow; int smallCol; - float smallDist; + float smallDist, cutoff; + map seq2Bin; + bool mapWanted, exitedBreak; + seqDist next; + string method, distfile; + ifstream filehandle; + + vector mergedMin; + string partialDist; + MothurOut* m; + };