--- /dev/null
+#ifndef CLUSTERFRAGMENTSCOMMAND_H
+#define CLUSTERFRAGMENTSCOMMAND_H
+
+/*
+ * clusterfragmentscommand.h
+ * Mothur
+ *
+ * Created by westcott on 9/23/10.
+ * Copyright 2010 Schloss Lab. All rights reserved.
+ *
+ */
+
+
+#include "command.hpp"
+#include "sequence.hpp"
+
+/************************************************************/
+struct seqRNode {
+ int numIdentical;
+ int length;
+ Sequence seq;
+ string names;
+ bool active;
+ seqRNode() {}
+ seqRNode(int n, Sequence s, string nm, int l) : numIdentical(n), seq(s), names(nm), active(1), length(l) {}
+ ~seqRNode() {}
+};
+/************************************************************/
+
+class ClusterFragmentsCommand : public Command {
+
+public:
+ ClusterFragmentsCommand(string);
+ ClusterFragmentsCommand();
+ ~ClusterFragmentsCommand() {}
+
+ vector<string> setParameters();
+ string getCommandName() { return "cluster.fragments"; }
+ string getCommandCategory() { return "Sequence Processing"; }
+ string getHelpString();
+ string getCitation() { return "http://www.mothur.org/wiki/Cluster.fragments"; }
+ string getDescription() { return "creates a namesfile with sequences that are a fragment of a larger sequence"; }
+
+ int execute();
+ void help() { m->mothurOut(getHelpString()); }
+
+private:
+ bool abort;
+ string fastafile, namefile, outputDir;
+ int diffs, percent;
+ vector<seqRNode> alignSeqs;
+ map<string, string> names; //represents the names file first column maps to second column
+ map<string, int> sizes; //this map a seq name to the number of identical seqs in the names file
+ map<string, int>::iterator itSize;
+ vector<string> outputNames;
+
+ int readFASTA();
+ void readNameFile();
+ void printData(string, string); //fasta filename, names file name
+ bool isFragment(string, string);
+
+};
+
+/************************************************************/
+
+#endif
+