X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mothurout.h;h=12de987e231247a4fb195aef20054bd94dacd375;hb=d6c0a11d1cecfac18b323285e7ffadb7f58e848f;hp=fb5b432f549de88a1fa519bc83541649a0882389;hpb=f06fdb807822f8e06db003ed809c87250905cfc8;p=mothur.git diff --git a/mothurout.h b/mothurout.h index fb5b432..12de987 100644 --- a/mothurout.h +++ b/mothurout.h @@ -12,7 +12,22 @@ #include "mothur.h" - +/***********************************************/ +struct logger { + + logger() {} + ~logger() {} + + template< class T > + logger& operator <<( const T& o ) { + cout << o; return *this; + } + + logger& operator<<(ostream& (*m)(ostream&) ) { + cout << m; return *this; + } + +}; /***********************************************/ class MothurOut { @@ -37,20 +52,33 @@ class MothurOut { void setReleaseDate(string r) { releaseDate = r; } string getVersion() { return version; } void setVersion(string r) { version = r; } - vector Groups; + + void addGroup(string g) { Groups.push_back(g); } + void setGroups(vector& g) { sort(g.begin(), g.end()); Groups = g; } + void clearGroups() { Groups.clear(); } + int getNumGroups() { return Groups.size(); } + vector getGroups() { sort(Groups.begin(), Groups.end()); return Groups; } + void addAllGroup(string g) { namesOfGroups.push_back(g); } + void setAllGroups(vector& g) { sort(g.begin(), g.end()); namesOfGroups = g; } + void clearAllGroups() { namesOfGroups.clear(); } + int getNumAllGroups() { return namesOfGroups.size(); } + + vector getAllGroups() { sort(namesOfGroups.begin(), namesOfGroups.end()); return namesOfGroups; } vector Treenames; map names; - vector namesOfGroups; - string saveNextLabel, argv; + vector binLabelsInFile; + vector currentBinLabels; + string saveNextLabel, argv, sharedHeaderMode; + bool printedHeaders, commandInputsConvertError; //functions from mothur.h //file operations - vector divideFile(string, int&); + vector divideFile(string, int&); int divideFile(string, int&, vector&); - vector setFilePosEachLine(string, int&); - vector setFilePosFasta(string, int&); + vector setFilePosEachLine(string, int&); + vector setFilePosFasta(string, int&); string sortFile(string, string); - void appendFiles(string, string); + int appendFiles(string, string); int renameFile(string, string); //oldname, newname string getFullPathName(string); string hasPath(string); @@ -69,7 +97,13 @@ class MothurOut { void gobble(istringstream&); map readNames(string); int readNames(string, map&); + int readNames(string, map >&); int readNames(string, vector&, map&); + int mothurRemove(string); + bool mothurConvert(string, int&); //use for converting user inputs. Sets commandInputsConvertError to true if error occurs. Engines check this. + bool mothurConvert(string, float&); //use for converting user inputs. Sets commandInputsConvertError to true if error occurs. Engines check this. + bool mothurConvert(string, double&); //use for converting user inputs. Sets commandInputsConvertError to true if error occurs. Engines check this. + //searchs and checks bool checkReleaseVersion(ifstream&, string); @@ -79,8 +113,10 @@ class MothurOut { void getNumSeqs(ifstream&, int&); int getNumSeqs(ifstream&); int getNumNames(string); + int getNumChar(string, char); bool isTrue(string); bool isContainingOnlyDigits(string); + bool isNumeric1(string); //string manipulation @@ -91,6 +127,7 @@ class MothurOut { void splitAtDash(string&, set&); void splitAtDash(string&, vector&); void splitAtChar(string&, vector&, char); + int removeConfidences(string&); //math operation int factorial(int num); @@ -98,6 +135,7 @@ class MothurOut { float ceilDist(float, int); float roundDist(float, int); unsigned int fromBase36(string); + int getRandomIndex(int); //highest int control_pressed; bool executing, runParse, jumble, gui; @@ -179,7 +217,10 @@ class MothurOut { processors = "1"; flowfile = ""; gui = false; - }; + printedHeaders = false; + commandInputsConvertError = false; + sharedHeaderMode = ""; + } ~MothurOut(); string logFileName; @@ -189,7 +230,8 @@ class MothurOut { string accnosfile, phylipfile, columnfile, listfile, rabundfile, sabundfile, namefile, groupfile, designfile, taxonomyfile; string orderfile, treefile, sharedfile, ordergroupfile, relabundfile, fastafile, qualfile, sfffile, oligosfile, processors, flowfile; - + vector Groups; + vector namesOfGroups; ofstream out; int mem_usage(double&, double&);