]> git.donarmstrong.com Git - mothur.git/blobdiff - hclustercommand.h
added hcluster command and fixed some bugs, namely one with smart distancing.
[mothur.git] / hclustercommand.h
diff --git a/hclustercommand.h b/hclustercommand.h
new file mode 100644 (file)
index 0000000..7351cef
--- /dev/null
@@ -0,0 +1,80 @@
+#ifndef HCLUSTERCOMMAND_H
+#define HCLUSTERCOMMAND_H
+
+/*
+ *  hclustercommand.h
+ *  Mothur
+ *
+ *  Created by westcott on 10/13/09.
+ *  Copyright 2009 Schloss Lab. All rights reserved.
+ *
+ */
+
+#include "command.hpp"
+#include "globaldata.hpp"
+#include "hcluster.h"
+#include "rabundvector.hpp"
+#include "sabundvector.hpp"
+#include "listvector.hpp"
+#include "readcluster.h"
+
+/******************************************************************/
+//This command is an implementation of the HCluster algorythmn described in 
+//ESPRIT: estimating species richness using large collections of 16S rRNA pyrosequences by
+//Yijun Sun1,2,*, Yunpeng Cai2, Li Liu1, Fahong Yu1, Michael L. Farrell3, William McKendree3 
+//and William Farmerie1 1 
+
+//Interdisciplinary Center for Biotechnology Research, 2Department of Electrical and Computer Engineering, 
+//University of Florida, Gainesville, FL 32610-3622 and 3Materials Technology Directorate, Air Force Technical 
+//Applications Center, 1030 S. Highway A1A, Patrick AFB, FL 32925-3002, USA 
+//Received January 28, 2009; Revised April 14, 2009; Accepted April 15, 2009 
+
+/******************************************************************/
+
+
+/************************************************************/
+struct seqDist {
+       int seq1;
+       int seq2;
+       float dist;
+};
+/************************************************************/
+class HClusterCommand : public Command {
+       
+public:
+       HClusterCommand(string);        
+       ~HClusterCommand();
+       int execute();  
+       void help();
+       
+private:
+       GlobalData* globaldata;
+       HCluster* cluster;
+       ListVector* list;
+       RAbundVector* rabund;
+       RAbundVector oldRAbund;
+       ListVector oldList;
+       ReadCluster* read;
+       
+       bool abort;
+
+       string method, fileroot, tag, distfile, format, phylipfile, columnfile, namefile, sort;
+       double cutoff;
+       string showabund, timing;
+       int precision, length;
+       ofstream sabundFile, rabundFile, listFile;
+       //ifstream in;
+       seqDist next;
+       bool exitedBreak, sorted;
+
+       bool print_start;
+       time_t start;
+       unsigned long loops;
+       
+       void printData(string label);
+       vector<seqDist> getSeqs(ifstream&);
+};
+
+/************************************************************/
+
+#endif