]> git.donarmstrong.com Git - mothur.git/blobdiff - mothurout.h
added phylip as output file type for commands that output distance matrices. added...
[mothur.git] / mothurout.h
index d2a36b351902f3bc25d7c2132fb2c20f15421b23..968ff97221ab7e277dfba48efc01682648998f0f 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,7 +65,7 @@ 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;
@@ -57,6 +73,7 @@ class MothurOut {
                
                //functions from mothur.h
                //file operations
+        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 long> setFilePosEachLine(string, int&);
@@ -65,6 +82,7 @@ class MothurOut {
                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,8 +97,16 @@ 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, string>&, int);
                int readNames(string, map<string, vector<string> >&);
                int readNames(string, vector<seqPriorityNode>&, map<string, string>&);
                int mothurRemove(string);
@@ -111,7 +137,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);
@@ -122,9 +150,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;                      }
@@ -145,6 +173,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);                        }
@@ -167,11 +196,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;
@@ -200,9 +231,12 @@ class MothurOut {
                        taxonomyfile = "";
                        processors = "1";
                        flowfile = "";
+            biomfile = "";
                        gui = false;
                        printedHeaders = false;
                        commandInputsConvertError = false;
+            mothurCalling = false;
+            debug = false;
                        sharedHeaderMode = "";
                }
                ~MothurOut();
@@ -211,7 +245,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;