X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mothurout.h;h=6f04f892dbb588700c884d27071fb613457fb35b;hb=55386dddad84cc1140d736cabaf4dd0ae16f2e01;hp=bf356ae285fba010f41f2bbc51b9ce093ead1b1b;hpb=a86aff4f80701bf0d436f02c0095920114e1cba2;p=mothur.git diff --git a/mothurout.h b/mothurout.h index bf356ae..6f04f89 100644 --- a/mothurout.h +++ b/mothurout.h @@ -20,23 +20,193 @@ class MothurOut { static MothurOut* getInstance(); void setFileName(string); - void mothurOut(string); - void mothurOutEndLine(); + void mothurOut(string); //writes to cout and the logfile + void mothurOutEndLine(); //writes to cout and the logfile + void mothurOut(string, ofstream&); //writes to the ofstream, cout and the logfile + void mothurOutEndLine(ofstream&); //writes to the ofstream, cout and the logfile void mothurOutJustToLog(string); void errorOut(exception&, string, string); void closeLog(); + string getDefaultPath() { return defaultPath; } + void setDefaultPath(string); + string getOutputDir() { return outputDir; } + void setOutputDir(string); + + string getReleaseDate() { return releaseDate; } + void setReleaseDate(string r) { releaseDate = r; } + string getVersion() { return version; } + void setVersion(string r) { version = r; } + + 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 binLabelsInFile; + vector currentBinLabels; + string saveNextLabel, argv, sharedHeaderMode; + bool printedHeaders; + + //functions from mothur.h + //file operations + vector divideFile(string, int&); + int divideFile(string, int&, vector&); + vector setFilePosEachLine(string, int&); + vector setFilePosFasta(string, int&); + string sortFile(string, string); + void appendFiles(string, string); + int renameFile(string, string); //oldname, newname + string getFullPathName(string); + string hasPath(string); + string getExtension(string); + string getPathName(string); + string getSimpleName(string); + string getRootName(string); + bool isBlank(string); + int openOutputFile(string, ofstream&); + int openOutputFileAppend(string, ofstream&); + int openInputFile(string, ifstream&); + int openInputFile(string, ifstream&, string); //no error given + string getline(ifstream&); + string getline(istringstream&); + void gobble(istream&); + void gobble(istringstream&); + map readNames(string); + int readNames(string, map&); + int readNames(string, vector&, map&); + void mothurRemove(string); + + //searchs and checks + bool checkReleaseVersion(ifstream&, string); + bool anyLabelsToProcess(string, set&, string); + bool inUsersGroups(vector, vector); + bool inUsersGroups(string, vector); + void getNumSeqs(ifstream&, int&); + int getNumSeqs(ifstream&); + int getNumNames(string); + bool isTrue(string); + bool isContainingOnlyDigits(string); + + + //string manipulation + void splitAtEquals(string&, string&); + void splitAtComma(string&, string&); + void splitAtComma(string&, vector&); + void splitAtDash(string&, set&); + void splitAtDash(string&, set&); + void splitAtDash(string&, vector&); + void splitAtChar(string&, vector&, char); + + //math operation + int factorial(int num); + vector > binomial(int); + float ceilDist(float, int); + float roundDist(float, int); + unsigned int fromBase36(string); + int getRandomIndex(int); //highest int control_pressed; - bool executing; - + bool executing, runParse, jumble, gui; + + //current files - if you add a new type you must edit optionParser->getParameters, get.current command and mothurOut->printCurrentFiles/clearCurrentFiles. + string getPhylipFile() { return phylipfile; } + string getColumnFile() { return columnfile; } + string getListFile() { return listfile; } + string getRabundFile() { return rabundfile; } + string getSabundFile() { return sabundfile; } + string getNameFile() { return namefile; } + string getGroupFile() { return groupfile; } + string getOrderFile() { return orderfile; } + string getOrderGroupFile() { return ordergroupfile; } + string getTreeFile() { return treefile; } + string getSharedFile() { return sharedfile; } + string getRelAbundFile() { return relabundfile; } + string getDesignFile() { return designfile; } + string getFastaFile() { return fastafile; } + string getSFFFile() { return sfffile; } + string getQualFile() { return qualfile; } + string getOligosFile() { return oligosfile; } + string getAccnosFile() { return accnosfile; } + string getTaxonomyFile() { return taxonomyfile; } + string getFlowFile() { return flowfile; } + string getProcessors() { return processors; } + + void setListFile(string f) { listfile = getFullPathName(f); } + void setTreeFile(string f) { treefile = getFullPathName(f); } + void setGroupFile(string f) { groupfile = getFullPathName(f); } + void setPhylipFile(string f) { phylipfile = getFullPathName(f); } + void setColumnFile(string f) { columnfile = getFullPathName(f); } + void setNameFile(string f) { namefile = getFullPathName(f); } + void setRabundFile(string f) { rabundfile = getFullPathName(f); } + void setSabundFile(string f) { sabundfile = getFullPathName(f); } + void setSharedFile(string f) { sharedfile = getFullPathName(f); } + void setRelAbundFile(string f) { relabundfile = getFullPathName(f); } + void setOrderFile(string f) { orderfile = getFullPathName(f); } + void setOrderGroupFile(string f) { ordergroupfile = getFullPathName(f); } + void setDesignFile(string f) { designfile = getFullPathName(f); } + void setFastaFile(string f) { fastafile = getFullPathName(f); } + void setSFFFile(string f) { sfffile = getFullPathName(f); } + void setQualFile(string f) { qualfile = getFullPathName(f); } + void setOligosFile(string f) { oligosfile = getFullPathName(f); } + 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 printCurrentFiles(); + bool hasCurrentFiles(); + void clearCurrentFiles(); + private: static MothurOut* _uniqueInstance; MothurOut( const MothurOut& ); // Disable copy constructor void operator=( const MothurOut& ); // Disable assignment operator - MothurOut() { control_pressed = false; }; + MothurOut() { + control_pressed = false; defaultPath=""; + phylipfile = ""; + columnfile = ""; + listfile = ""; + rabundfile = ""; + sabundfile = ""; + namefile = ""; + groupfile = ""; + designfile = ""; + orderfile = ""; + treefile = ""; + sharedfile = ""; + ordergroupfile = ""; + relabundfile = ""; + fastafile = ""; + qualfile = ""; + sfffile = ""; + oligosfile = ""; + accnosfile = ""; + taxonomyfile = ""; + processors = "1"; + flowfile = ""; + gui = false; + printedHeaders = false; + sharedHeaderMode = ""; + } ~MothurOut(); string logFileName; + string defaultPath, outputDir; + string releaseDate, version; + + 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&);