]> git.donarmstrong.com Git - mothur.git/blobdiff - mothurout.h
added load.logfile command. changed summary.single output for subsample=t.
[mothur.git] / mothurout.h
index 6f04f892dbb588700c884d27071fb613457fb35b..b2c638a167d1ebf507106cc300231f0f693471b0 100644 (file)
 
 #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<string> getAllGroups() { sort(namesOfGroups.begin(), namesOfGroups.end()); return namesOfGroups; }
                vector<string> Treenames;
-               map<string, string> names;
+               //map<string, string> names;
                vector<string> binLabelsInFile;
                vector<string> currentBinLabels;
                string saveNextLabel, argv, sharedHeaderMode;
-               bool printedHeaders;
+               bool printedHeaders, commandInputsConvertError;
                
                //functions from mothur.h
                //file operations
-               vector<unsigned long int> divideFile(string, int&);
+        bool dirCheck(string&); //completes path, appends appropriate / or \, makes sure dir is writable.
+               vector<unsigned long long> divideFile(string, int&);
                int divideFile(string, int&, vector<string>&);
-               vector<unsigned long int> setFilePosEachLine(string, int&);
-               vector<unsigned long int> setFilePosFasta(string, int&);
+               vector<unsigned long long> setFilePosEachLine(string, int&);
+               vector<unsigned long long> 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<string, int> readNames(string);
+        vector<string> splitWhiteSpace(string& rest, char[], int);
+        vector<string> splitWhiteSpace(string);
+        set<string> readAccnos(string);
+        int readAccnos(string, vector<string>&);
+        map<string, int> readNames(string);
+        int readTax(string, map<string, string>&);
+        int readNames(string, map<string, string>&, map<string, int>&);
                int readNames(string, map<string, string>&);
+        int readNames(string, map<string, string>&, bool);
+               int readNames(string, map<string, vector<string> >&);
                int readNames(string, vector<seqPriorityNode>&, map<string, string>&);
-               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<string>&);
                void splitAtDash(string&, vector<string>&);
                void splitAtChar(string&, vector<string>&, char);
+        void splitAtChar(string&, string&, char);
+               int removeConfidences(string&);
+        string makeList(vector<string>&);
                
                //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<string> 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<string> Groups;