#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 {
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 hasPath(string);
void gobble(istringstream&);
map<string, int> readNames(string);
int readNames(string, map<string, string>&);
+ 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);
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
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);
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.
string getPhylipFile() { return phylipfile; }
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); }
void setAccnosFile(string f) { accnosfile = getFullPathName(f); }
void setTaxonomyFile(string f) { taxonomyfile = getFullPathName(f); }
void setFlowFile(string f) { flowfile = getFullPathName(f); }
+ void setBiomFile(string f) { biomfile = getFullPathName(f); }
void setProcessors(string p) { processors = p; }
void printCurrentFiles();
taxonomyfile = "";
processors = "1";
flowfile = "";
+ biomfile = "";
gui = false;
printedHeaders = false;
+ commandInputsConvertError = false;
+ mothurCalling = false;
+ debug = false;
sharedHeaderMode = "";
}
~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;