X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=hcluster.h;h=d8598867a7bf247509a7736203a5ef505ce70f9e;hp=dd4c679123f12d90fbc2ca1daaae5045be9a1dc1;hb=a8e2df1b96a57f5f29576b08361b86a96a8eff4f;hpb=c82900be3ceed3d9bc491bdc98b1819ef85c1af7 diff --git a/hcluster.h b/hcluster.h index dd4c679..d859886 100644 --- a/hcluster.h +++ b/hcluster.h @@ -12,6 +12,7 @@ #include "mothur.h" +#include "nameassignment.hpp" class RAbundVector; class ListVector; @@ -20,11 +21,12 @@ class ListVector; class HCluster { public: - HCluster(RAbundVector*, ListVector*); + HCluster(RAbundVector*, ListVector*, string, string, NameAssignment*, float); ~HCluster(){}; - void update(int, int, float); + double update(int, int, float); void setMapWanted(bool m); map getSeqtoBin() { return seq2Bin; } + vector getSeqs(); protected: void clusterBins(); @@ -34,22 +36,40 @@ protected: 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; + bool mapWanted, exitedBreak; + seqDist next; + string method, distfile; + ifstream filehandle; + + vector mergedMin; + string partialDist; + MothurOut* m; + };