X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mothurout.h;h=b2c638a167d1ebf507106cc300231f0f693471b0;hb=49d2b7459c5027557564b21e9487dadafbbbdc96;hp=6f04f892dbb588700c884d27071fb613457fb35b;hpb=55386dddad84cc1140d736cabaf4dd0ae16f2e01;p=mothur.git diff --git a/mothurout.h b/mothurout.h index 6f04f89..b2c638a 100644 --- a/mothurout.h +++ b/mothurout.h @@ -12,6 +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 { @@ -49,22 +65,24 @@ class MothurOut { vector getAllGroups() { sort(namesOfGroups.begin(), namesOfGroups.end()); return namesOfGroups; } vector Treenames; - map names; + //map names; vector binLabelsInFile; vector currentBinLabels; string saveNextLabel, argv, sharedHeaderMode; - bool printedHeaders; + bool printedHeaders, commandInputsConvertError; //functions from mothur.h //file operations - vector divideFile(string, int&); + bool dirCheck(string&); //completes path, appends appropriate / or \, makes sure dir is writable. + 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 findProgramPath(string programName); string hasPath(string); string getExtension(string); string getPathName(string); @@ -79,10 +97,22 @@ class MothurOut { string getline(istringstream&); void gobble(istream&); void gobble(istringstream&); - map readNames(string); + vector splitWhiteSpace(string& rest, char[], int); + vector splitWhiteSpace(string); + set readAccnos(string); + int readAccnos(string, vector&); + map readNames(string); + int readTax(string, map&); + int readNames(string, map&, map&); int readNames(string, map&); + int readNames(string, map&, bool); + int readNames(string, map >&); int readNames(string, vector&, map&); - void mothurRemove(string); + 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); @@ -92,8 +122,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 @@ -104,6 +136,9 @@ class MothurOut { void splitAtDash(string&, set&); void splitAtDash(string&, vector&); void splitAtChar(string&, vector&, char); + void splitAtChar(string&, string&, char); + int removeConfidences(string&); + string makeList(vector&); //math operation int factorial(int num); @@ -114,9 +149,9 @@ class MothurOut { int getRandomIndex(int); //highest int control_pressed; - bool executing, runParse, jumble, gui; + bool executing, runParse, jumble, gui, mothurCalling, debug; - //current files - if you add a new type you must edit optionParser->getParameters, get.current command and mothurOut->printCurrentFiles/clearCurrentFiles. + //current files - if you add a new type you must edit optionParser->getParameters, get.current command and mothurOut->printCurrentFiles/clearCurrentFiles/getCurrentTypes. string getPhylipFile() { return phylipfile; } string getColumnFile() { return columnfile; } string getListFile() { return listfile; } @@ -137,6 +172,7 @@ class MothurOut { string getAccnosFile() { return accnosfile; } string getTaxonomyFile() { return taxonomyfile; } string getFlowFile() { return flowfile; } + string getBiomFile() { return biomfile; } string getProcessors() { return processors; } void setListFile(string f) { listfile = getFullPathName(f); } @@ -159,11 +195,13 @@ class MothurOut { void setAccnosFile(string f) { accnosfile = getFullPathName(f); } void setTaxonomyFile(string f) { taxonomyfile = getFullPathName(f); } void setFlowFile(string f) { flowfile = getFullPathName(f); } - void setProcessors(string p) { processors = p; } + void setBiomFile(string f) { biomfile = getFullPathName(f); } + void setProcessors(string p) { processors = p; mothurOut("\nUsing " + toString(p) + " processors.\n"); } void printCurrentFiles(); bool hasCurrentFiles(); void clearCurrentFiles(); + set getCurrentTypes(); private: static MothurOut* _uniqueInstance; @@ -192,8 +230,12 @@ class MothurOut { taxonomyfile = ""; processors = "1"; flowfile = ""; + biomfile = ""; gui = false; printedHeaders = false; + commandInputsConvertError = false; + mothurCalling = false; + debug = false; sharedHeaderMode = ""; } ~MothurOut(); @@ -202,7 +244,7 @@ class MothurOut { string defaultPath, outputDir; string releaseDate, version; - string accnosfile, phylipfile, columnfile, listfile, rabundfile, sabundfile, namefile, groupfile, designfile, taxonomyfile; + string accnosfile, phylipfile, columnfile, listfile, rabundfile, sabundfile, namefile, groupfile, designfile, taxonomyfile, biomfile; string orderfile, treefile, sharedfile, ordergroupfile, relabundfile, fastafile, qualfile, sfffile, oligosfile, processors, flowfile; vector Groups;