]> git.donarmstrong.com Git - mothur.git/blobdiff - clusterfragmentscommand.h
Revert to previous commit
[mothur.git] / clusterfragmentscommand.h
diff --git a/clusterfragmentscommand.h b/clusterfragmentscommand.h
new file mode 100644 (file)
index 0000000..c7ea7e0
--- /dev/null
@@ -0,0 +1,67 @@
+#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
+