X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=hcluster.h;h=d8598867a7bf247509a7736203a5ef505ce70f9e;hp=2688c191d7d364a980d51727a3d82f3b929cb45e;hb=df7e3ff9f68ef157b0328a2d353c3258c5d45d89;hpb=72ebb6fa35b45b149812d47c2b1cb8acaca64659 diff --git a/hcluster.h b/hcluster.h index 2688c19..d859886 100644 --- a/hcluster.h +++ b/hcluster.h @@ -12,24 +12,21 @@ #include "mothur.h" +#include "nameassignment.hpp" class RAbundVector; class ListVector; -/************************************************************/ -struct clusterNode { - int numSeq; - int parent; - int smallChild; //used to make linkTable work with list and rabund - clusterNode(int num, int par, int kid) : numSeq(num), parent(par), smallChild(kid) {}; -}; /***********************************************************************/ class HCluster { public: - HCluster(RAbundVector*, ListVector*); - bool update(int, int, float); - //string getTag(); + HCluster(RAbundVector*, ListVector*, string, string, NameAssignment*, float); + ~HCluster(){}; + double update(int, int, float); + void setMapWanted(bool m); + map getSeqtoBin() { return seq2Bin; } + vector getSeqs(); protected: void clusterBins(); @@ -38,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; + };