]> git.donarmstrong.com Git - mothur.git/blobdiff - splitabundcommand.h
Revert to previous commit
[mothur.git] / splitabundcommand.h
diff --git a/splitabundcommand.h b/splitabundcommand.h
new file mode 100644 (file)
index 0000000..df925f3
--- /dev/null
@@ -0,0 +1,77 @@
+#ifndef SPLITABUNDCOMMAND_H
+#define SPLITABUNDCOMMAND_H
+
+/*
+ *  splitabundcommand.h
+ *  Mothur
+ *
+ *  Created by westcott on 5/17/10.
+ *  Copyright 2010 Schloss Lab. All rights reserved.
+ *
+ */
+
+
+/* split.abund - given a list or name file and a number (cutoff), make two files - *rare* and *abund* 
+- where rare has data for otus that have fewer sequences than the cutoff and abund has data for otus 
+that have as many or more sequences as the cutoff. 
+also allow an option where a user can give a group file with the list or names file and split the group file into rare and abund. */
+
+
+#include "command.hpp"
+#include "groupmap.h"
+#include "inputdata.h"
+#include "listvector.hpp"
+#include "sequence.hpp"
+
+/***************************************************************************************/
+
+class SplitAbundCommand : public Command {
+       
+public:
+       SplitAbundCommand(string);      
+       SplitAbundCommand();
+       ~SplitAbundCommand();
+       
+       vector<string> setParameters();
+       string getCommandName()                 { return "split.abund";                         }
+       string getCommandCategory()             { return "OTU-Based Approaches";        }
+       string getHelpString(); 
+       string getCitation() { return "http://www.mothur.org/wiki/Split.abund"; }
+       string getDescription()         { return "split a list, name, group or fasta file based on abundance"; }
+       
+       int execute(); 
+       void help() { m->mothurOut(getHelpString()); }  
+       
+private:
+       int splitList(ListVector*);
+       int splitNames(); //namefile
+       int writeNames(); 
+       int writeList(ListVector*, string); 
+       int writeAccnos(string); 
+       int parseGroup(string); 
+       int parseFasta(string); 
+       int readNamesFile(); //namefile
+       int createNameMap(ListVector*);
+       
+       vector<string> outputNames;
+       ListVector* list;
+       GroupMap* groupMap;
+       InputData* input;
+       
+       string outputDir, listfile, namefile, groupfile, label, groups, fastafile, inputFile;
+       set<string> labels, rareNames, abundNames;
+       vector<string> Groups;
+       bool abort, allLines, accnos;
+       int cutoff;
+       //map<string, bool> wroteListFile;
+       map<string, string> nameMap;
+       
+       
+
+};
+
+/***************************************************************************************/
+
+#endif
+
+