X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=getoturepcommand.h;h=ca3439d809f96f6eff93dcf3948abd1a8274a7f5;hp=f413d4f51f2a9c45e3a5d17dd0243a825eb71679;hb=615301e57c25e241356a9c2380648d117709458d;hpb=0470f6d037aacb3563c3f7010708120a4a67d4e6 diff --git a/getoturepcommand.h b/getoturepcommand.h index f413d4f..ca3439d 100644 --- a/getoturepcommand.h +++ b/getoturepcommand.h @@ -12,53 +12,79 @@ /* The get.oturep command outputs a .fastarep file for each distance you specify, selecting one OTU representative for each bin. */ #include "command.hpp" -#include "globaldata.hpp" -#include "sparsematrix.hpp" #include "listvector.hpp" #include "inputdata.h" -#include "readotu.h" #include "fastamap.h" #include "groupmap.h" +#include "readmatrix.hpp" +#include "formatmatrix.h" +#include "counttable.h" -class GlobalData; +typedef map SeqMap; -typedef list::iterator MatData; +struct repStruct { + string name; + int bin; + int size; + string group; + + repStruct(){} + repStruct(string n, int b, int s, string g) : name(n), bin(b), size(s), group(g) {} + ~repStruct() {} +}; class GetOTURepCommand : public Command { - + public: - GetOTURepCommand(string); - ~GetOTURepCommand(); - int execute(); - void help(); + GetOTURepCommand(string); + GetOTURepCommand(); + ~GetOTURepCommand(){} + + vector setParameters(); + string getCommandName() { return "get.oturep"; } + string getCommandCategory() { return "OTU-Based Approaches"; } + + string getHelpString(); + string getOutputPattern(string); + string getCitation() { return "http://www.mothur.org/wiki/Get.oturep"; } + string getDescription() { return "gets a representative sequence for each OTU"; } + + + int execute(); + void help() { m->mothurOut(getHelpString()); } + private: - GlobalData* globaldata; - SparseMatrix* matrix; ListVector* list; - ReadOTUFile* read; - InputData* input; - FastaMap* fasta; GroupMap* groupMap; - string filename, fastafile, listfile, namesfile, groupfile, line, label; + ReadMatrix* readMatrix; + FormatMatrix* formatMatrix; + NameAssignment* nameMap; + CountTable ct; + string filename, fastafile, listfile, namefile, groupfile, label, sorted, phylipfile, countfile, columnfile, distFile, format, outputDir, groups, method; ofstream out; - ifstream in, inNames; - bool groupError; - OptionParser* parser; - map parameters; - map::iterator it4; - bool abort, allLines; - set lines; //hold lines to be used + ifstream in, inNames, inRow; + bool abort, allLines, groupError, large, weighted, hasGroups; set labels; //holds labels to be used map nameToIndex; //maps sequence name to index in sparsematrix - map::iterator it; - map::iterator it2; - map::iterator it3; - - void readNamesFile(); - int process(ListVector*); - string FindRep(int, string&, ListVector*); // returns name of "representative" sequence of given bin. //and fill a string containing the groups in that bin if a groupfile is given + map nameFileMap; + vector outputNames, Groups; + map outputNameFiles; + float cutoff; + int precision; + vector seqVec; // contains maps with sequence index and distance + // for all distances related to a certain sequence + vector rowPositions; + void readNamesFile(FastaMap*&); + void readNamesFile(bool); + int process(ListVector*); + SeqMap getMap(int); + string findRep(vector, string); // returns the name of the "representative" sequence of given bin or subset of a bin, for groups + string findRepAbund(vector, string); + int processNames(string, string); + int processFastaNames(string, string, FastaMap*&); + int readDist(); }; #endif