]> git.donarmstrong.com Git - mothur.git/commitdiff
moved utilities out of mothur.h and into mothurOut class.
authorwestcott <westcott>
Tue, 24 Aug 2010 11:51:33 +0000 (11:51 +0000)
committerwestcott <westcott>
Tue, 24 Aug 2010 11:51:33 +0000 (11:51 +0000)
134 files changed:
aligncommand.cpp
alignmentdb.cpp
bayesian.cpp
bellerophon.cpp
binsequencecommand.cpp
blastalign.cpp
blastdb.cpp
bootstrapsharedcommand.cpp
catchallcommand.cpp
ccode.cpp
chimera.cpp
chimerabellerophoncommand.cpp
chimeraccodecommand.cpp
chimeracheckcommand.cpp
chimeracheckrdp.cpp
chimerapintailcommand.cpp
chimeraslayer.cpp
chimeraslayercommand.cpp
chopseqscommand.cpp
classify.cpp
classifyotucommand.cpp
classifyseqscommand.cpp
clearcutcommand.cpp
cluster.cpp
clustercommand.cpp
clustersplitcommand.cpp
collectcommand.cpp
collectsharedcommand.cpp
consensuscommand.cpp
decalc.cpp
deconvolutecommand.cpp
degapseqscommand.cpp
distancecommand.cpp
distancecommand.h
engine.cpp
fastamap.cpp
fileoutput.cpp
filters.h
filterseqscommand.cpp
formatcolumn.cpp
formatphylip.cpp
getgroupcommand.cpp
getlabelcommand.cpp
getlistcountcommand.cpp
getoturepcommand.cpp
getrabundcommand.cpp
getrelabundcommand.cpp
getsabundcommand.cpp
getseqscommand.cpp
getsharedotucommand.cpp
groupmap.cpp
hcluster.cpp
hclustercommand.cpp
heatmap.cpp
heatmapcommand.cpp
heatmapsim.cpp
heatmapsimcommand.cpp
inputdata.cpp
jackknife.cpp
kmerdb.cpp
knn.cpp
libshuffcommand.cpp
listseqscommand.cpp
listvector.cpp
makegroupcommand.cpp
matrixoutputcommand.cpp
mergefilecommand.cpp
mgclustercommand.cpp
mothur.cpp
mothur.h
mothurout.cpp
mothurout.h
nameassignment.cpp
nastreport.cpp
nastreport.hpp
optionparser.cpp
otuhierarchycommand.cpp
parselistscommand.cpp
parsesffcommand.cpp
parsimonycommand.cpp
pcacommand.cpp
phylodiversitycommand.cpp
phylosummary.cpp
phylotree.cpp
phylotypecommand.cpp
pintail.cpp
preclustercommand.cpp
qualityscores.cpp
rarecalc.h
rarefactcommand.cpp
rarefactsharedcommand.cpp
readblast.cpp
readcluster.cpp
readcolumn.cpp
readdistcommand.cpp
readotu.cpp
readotucommand.cpp
readphylip.cpp
readtree.cpp
readtree.h
readtreecommand.cpp
removeseqscommand.cpp
reversecommand.cpp
screenseqscommand.cpp
screenseqscommand.h
secondarystructurecommand.cpp
sensspeccommand.cpp
seqerrorcommand.cpp
seqsummarycommand.cpp
sequence.cpp
sequencedb.cpp
setdircommand.cpp
setlogfilecommand.cpp
sffinfocommand.cpp
sharedcommand.cpp
sharedlistvector.cpp
sharedordervector.cpp
sharedrabundvector.cpp
splitabundcommand.cpp
splitmatrix.cpp
summarycommand.cpp
summarysharedcommand.cpp
taxonomyequalizer.cpp
tree.cpp
treegroupscommand.cpp
treemap.cpp
trimseqscommand.cpp
unifracunweightedcommand.cpp
unifracweightedcommand.cpp
unweighted.cpp
validparameter.cpp
venn.cpp
venncommand.cpp
weighted.cpp

index 613f9b7d6f13b04dec679a162ba71faf25326c65..0f4c89a28ce7ca2b01eae1de815bebfb78ff6a77 100644 (file)
@@ -68,7 +68,7 @@ AlignCommand::AlignCommand(string option)  {
 
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["template"] = inputDir + it->second;         }
                                }
@@ -86,12 +86,12 @@ AlignCommand::AlignCommand(string option)  {
                        candidateFileName = validParameter.validFile(parameters, "candidate", false);
                        if (candidateFileName == "not found") { m->mothurOut("candidate is a required parameter for the align.seqs command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(candidateFileName, candidateFileNames);
+                               m->splitAtDash(candidateFileName, candidateFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < candidateFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(candidateFileNames[i]);
+                                               string path = m->hasPath(candidateFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       candidateFileNames[i] = inputDir + candidateFileNames[i];               }
                                        }
@@ -99,14 +99,14 @@ AlignCommand::AlignCommand(string option)  {
                                        int ableToOpen;
                                        ifstream in;
 
-                                       ableToOpen = openInputFile(candidateFileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(candidateFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(candidateFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(candidateFileNames[i]);
                                                        m->mothurOut("Unable to open " + candidateFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        candidateFileNames[i] = tryPath;
                                                }
                                        }
@@ -147,7 +147,7 @@ AlignCommand::AlignCommand(string option)  {
                        convert(temp, processors); 
                        
                        temp = validParameter.validFile(parameters, "flip", false);                     if (temp == "not found"){       temp = "f";                             }
-                       flip = isTrue(temp); 
+                       flip = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "threshold", false);        if (temp == "not found"){       temp = "0.50";                  }
                        convert(temp, threshold); 
@@ -230,10 +230,10 @@ int AlignCommand::execute(){
                        
                        m->mothurOut("Aligning sequences from " + candidateFileNames[s] + " ..." ); m->mothurOutEndLine();
                        
-                       if (outputDir == "") {  outputDir += hasPath(candidateFileNames[s]); }
-                       string alignFileName = outputDir + getRootName(getSimpleName(candidateFileNames[s])) + "align";
-                       string reportFileName = outputDir + getRootName(getSimpleName(candidateFileNames[s])) + "align.report";
-                       string accnosFileName = outputDir + getRootName(getSimpleName(candidateFileNames[s])) + "flip.accnos";
+                       if (outputDir == "") {  outputDir += m->hasPath(candidateFileNames[s]); }
+                       string alignFileName = outputDir + m->getRootName(m->getSimpleName(candidateFileNames[s])) + "align";
+                       string reportFileName = outputDir + m->getRootName(m->getSimpleName(candidateFileNames[s])) + "align.report";
+                       string accnosFileName = outputDir + m->getRootName(m->getSimpleName(candidateFileNames[s])) + "flip.accnos";
                        bool hasAccnos = true;
                        
                        int numFastaSeqs = 0;
@@ -279,7 +279,7 @@ int AlignCommand::execute(){
                                
                                if (pid == 0) { //you are the root process 
                                        
-                                       MPIPos = setFilePosFasta(candidateFileNames[s], numFastaSeqs); //fills MPIPos, returns numSeqs
+                                       MPIPos = m->setFilePosFasta(candidateFileNames[s], numFastaSeqs); //fills MPIPos, returns numSeqs
                                        
                                        //send file positions to all processes
                                        for(int i = 1; i < processors; i++) { 
@@ -346,8 +346,9 @@ int AlignCommand::execute(){
                                }
                                
 #else
-               vector<unsigned long int> positions = divideFile(candidateFileNames[s], processors);
-                                                       
+
+               vector<unsigned long int> positions = m->divideFile(candidateFileNames[s], processors);
+                               
                for (int i = 0; i < (positions.size()-1); i++) {
                        lines.push_back(new linePair(positions[i], positions[(i+1)]));
                }       
@@ -358,7 +359,7 @@ int AlignCommand::execute(){
                                if (m->control_pressed) { remove(accnosFileName.c_str()); remove(alignFileName.c_str()); remove(reportFileName.c_str()); return 0; }
                                
                                //delete accnos file if its blank else report to user
-                               if (isBlank(accnosFileName)) {  remove(accnosFileName.c_str());  hasAccnos = false; }
+                               if (m->isBlank(accnosFileName)) {  remove(accnosFileName.c_str());  hasAccnos = false; }
                                else { 
                                        m->mothurOut("Some of you sequences generated alignments that eliminated too many bases, a list is provided in " + accnosFileName + ".");
                                        if (!flip) {
@@ -386,7 +387,7 @@ int AlignCommand::execute(){
                                vector<string> nonBlankAccnosFiles;
                                //delete blank accnos files generated with multiple processes
                                for(int i=0;i<processors;i++){  
-                                       if (!(isBlank(accnosFileName + toString(processIDS[i]) + ".temp"))) {
+                                       if (!(m->isBlank(accnosFileName + toString(processIDS[i]) + ".temp"))) {
                                                nonBlankAccnosFiles.push_back(accnosFileName + toString(processIDS[i]) + ".temp");
                                        }else { remove((accnosFileName + toString(processIDS[i]) + ".temp").c_str());  }
                                }
@@ -414,7 +415,7 @@ int AlignCommand::execute(){
                        if (m->control_pressed) { remove(accnosFileName.c_str()); remove(alignFileName.c_str()); remove(reportFileName.c_str()); return 0; }
                        
                        //delete accnos file if its blank else report to user
-                       if (isBlank(accnosFileName)) {  remove(accnosFileName.c_str());  hasAccnos = false; }
+                       if (m->isBlank(accnosFileName)) {  remove(accnosFileName.c_str());  hasAccnos = false; }
                        else { 
                                m->mothurOut("Some of you sequences generated alignments that eliminated too many bases, a list is provided in " + accnosFileName + ".");
                                if (!flip) {
@@ -466,15 +467,15 @@ int AlignCommand::execute(){
 int AlignCommand::driver(linePair* filePos, string alignFName, string reportFName, string accnosFName, string filename){
        try {
                ofstream alignmentFile;
-               openOutputFile(alignFName, alignmentFile);
+               m->openOutputFile(alignFName, alignmentFile);
                
                ofstream accnosFile;
-               openOutputFile(accnosFName, accnosFile);
+               m->openOutputFile(accnosFName, accnosFile);
                
                NastReport report(reportFName);
                
                ifstream inFASTA;
-               openInputFile(filename, inFASTA);
+               m->openInputFile(filename, inFASTA);
 
                inFASTA.seekg(filePos->start);
 
@@ -485,7 +486,7 @@ int AlignCommand::driver(linePair* filePos, string alignFName, string reportFNam
                        
                        if (m->control_pressed) {  return 0; }
                        
-                       Sequence* candidateSeq = new Sequence(inFASTA);  gobble(inFASTA);
+                       Sequence* candidateSeq = new Sequence(inFASTA);  m->gobble(inFASTA);
        
                        int origNumBases = candidateSeq->getNumBases();
                        string originalUnaligned = candidateSeq->getUnaligned();
@@ -769,7 +770,7 @@ int AlignCommand::createProcesses(string alignFileName, string reportFileName, s
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = alignFileName + toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                out << num << endl;
                                out.close();
                                
@@ -786,7 +787,7 @@ int AlignCommand::createProcesses(string alignFileName, string reportFileName, s
                for (int i = 0; i < processIDS.size(); i++) {
                        ifstream in;
                        string tempFile =  alignFileName + toString(processIDS[i]) + ".num.temp";
-                       openInputFile(tempFile, in);
+                       m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
                        in.close(); remove(tempFile.c_str());
                }
@@ -806,8 +807,8 @@ void AlignCommand::appendAlignFiles(string temp, string filename) {
                
                ofstream output;
                ifstream input;
-               openOutputFileAppend(filename, output);
-               openInputFile(temp, input);
+               m->openOutputFileAppend(filename, output);
+               m->openInputFile(temp, input);
                
                while(char c = input.get()){
                        if(input.eof())         {       break;                  }
@@ -829,8 +830,8 @@ void AlignCommand::appendReportFiles(string temp, string filename) {
                
                ofstream output;
                ifstream input;
-               openOutputFileAppend(filename, output);
-               openInputFile(temp, input);
+               m->openOutputFileAppend(filename, output);
+               m->openInputFile(temp, input);
 
                while (!input.eof())    {       char c = input.get(); if (c == 10 || c == 13){  break;  }       } // get header line
                                
index bdd3e0325a975dad66c4136d42db9697b3887d95..e2b1dc197eb8d3399156a3ca752bff5da267101f 100644 (file)
@@ -40,7 +40,7 @@ AlignmentDB::AlignmentDB(string fastaFileName, string s, int kmerSize, float gap
                        MPI_File_open(MPI_COMM_WORLD, inFileName, MPI_MODE_RDONLY, MPI_INFO_NULL, &inMPI);  //comm, filename, mode, info, filepointer
                        
                        if (pid == 0) {
-                               positions = setFilePosFasta(fastaFileName, numSeqs); //fills MPIPos, returns numSeqs
+                               positions = m->setFilePosFasta(fastaFileName, numSeqs); //fills MPIPos, returns numSeqs
 
                                //send file positions to all processes
                                for(int i = 1; i < processors; i++) { 
@@ -84,10 +84,10 @@ AlignmentDB::AlignmentDB(string fastaFileName, string s, int kmerSize, float gap
                
        #else
                ifstream fastaFile;
-               openInputFile(fastaFileName, fastaFile);
+               m->openInputFile(fastaFileName, fastaFile);
 
                while (!fastaFile.eof()) {
-                       Sequence temp(fastaFile);  gobble(fastaFile);
+                       Sequence temp(fastaFile);  m->gobble(fastaFile);
                        
                        if (m->control_pressed) {  templateSequences.clear(); break;  }
                        
@@ -124,7 +124,7 @@ AlignmentDB::AlignmentDB(string fastaFileName, string s, int kmerSize, float gap
                                ifstream kmerFileTest(kmerDBName.c_str());
                                
                                if(kmerFileTest){       
-                                       bool GoodFile = checkReleaseVersion(kmerFileTest, m->getVersion());
+                                       bool GoodFile = m->checkReleaseVersion(kmerFileTest, m->getVersion());
                                        if (GoodFile) {  needToGenerate = false;        }
                                }
                        #endif
index e596f672ed45f8f9f977e5264417e6781b959c38..531abc52561db977aa58fc274c7d7e91ee1d4a8d 100644 (file)
@@ -18,7 +18,7 @@ Classify(), kmerSize(ksize), confidenceThreshold(cutoff), iters(i)  {
                                        
                /************calculate the probablity that each word will be in a specific taxonomy*************/
                string tfileroot = tfile.substr(0,tfile.find_last_of(".")+1);
-               string tempfileroot = getRootName(getSimpleName(tempFile));
+               string tempfileroot = m->getRootName(m->getSimpleName(tempFile));
                string phyloTreeName = tfileroot + "tree.train";
                string phyloTreeSumName = tfileroot + "tree.sum";
                string probFileName = tfileroot + tempfileroot + char('0'+ kmerSize) + "mer.prob";
@@ -90,14 +90,14 @@ Classify(), kmerSize(ksize), confidenceThreshold(cutoff), iters(i)  {
                                #endif
 
                                
-                               openOutputFile(probFileName, out);
+                               m->openOutputFile(probFileName, out);
                                
                                //output mothur version
                                out << "#" << m->getVersion() << endl;
                                
                                out << numKmers << endl;
                                
-                               openOutputFile(probFileName2, out2);
+                               m->openOutputFile(probFileName2, out2);
                                
                                //output mothur version
                                out2 << "#" << m->getVersion() << endl;
@@ -408,8 +408,8 @@ void Bayesian::readProbFile(ifstream& in, ifstream& inNum, string inName, string
                        MPI_File_open(MPI_COMM_WORLD, inFileName2, MPI_MODE_RDONLY, MPI_INFO_NULL, &inMPI2);  //comm, filename, mode, info, filepointer
 
                        if (pid == 0) {
-                               positions = setFilePosEachLine(inNumName, num);
-                               positions2 = setFilePosEachLine(inName, num2);
+                               positions = m->setFilePosEachLine(inNumName, num);
+                               positions2 = m->setFilePosEachLine(inName, num2);
                                
                                for(int i = 1; i < processors; i++) { 
                                        MPI_Send(&num, 1, MPI_INT, i, tag, MPI_COMM_WORLD);
@@ -515,9 +515,9 @@ void Bayesian::readProbFile(ifstream& in, ifstream& inNum, string inName, string
                        MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
                #else
                        //read version
-                       string line = getline(in); gobble(in);
+                       string line = m->getline(in); m->gobble(in);
                        
-                       in >> numKmers; gobble(in);
+                       in >> numKmers; m->gobble(in);
                        
                        //initialze probabilities
                        wordGenusProb.resize(numKmers);
@@ -530,12 +530,12 @@ void Bayesian::readProbFile(ifstream& in, ifstream& inNum, string inName, string
                        vector<float> zeroCountProb; zeroCountProb.resize(numKmers);            
                        
                        //read version
-                       string line2 = getline(inNum); gobble(inNum);
+                       string line2 = m->getline(inNum); m->gobble(inNum);
                        
                        while (inNum) {
                                inNum >> zeroCountProb[count] >> num[count];  
                                count++;
-                               gobble(inNum);
+                               m->gobble(inNum);
                        }
                        inNum.close();
                
@@ -553,7 +553,7 @@ void Bayesian::readProbFile(ifstream& in, ifstream& inNum, string inName, string
                                        wordGenusProb[kmer][name] = prob;
                                }
                                
-                               gobble(in);
+                               m->gobble(in);
                        }
                        in.close();
                        
@@ -571,10 +571,10 @@ bool Bayesian::checkReleaseDate(ifstream& file1, ifstream& file2, ifstream& file
                bool good = true;
                
                vector<string> lines;
-               lines.push_back(getline(file1));  
-               lines.push_back(getline(file2)); 
-               lines.push_back(getline(file3)); 
-               lines.push_back(getline(file4)); 
+               lines.push_back(m->getline(file1));  
+               lines.push_back(m->getline(file2)); 
+               lines.push_back(m->getline(file3)); 
+               lines.push_back(m->getline(file4)); 
 
                //before we added this check
                if ((lines[0][0] != '#') || (lines[1][0] != '#') || (lines[2][0] != '#') || (lines[3][0] != '#')) {  good = false;  }
@@ -586,12 +586,12 @@ bool Bayesian::checkReleaseDate(ifstream& file1, ifstream& file2, ifstream& file
                        string version = m->getVersion();
                        
                        vector<string> versionVector;
-                       splitAtChar(version, versionVector, '.');
+                       m->splitAtChar(version, versionVector, '.');
                        
                        //check each files version
                        for (int i = 0; i < lines.size(); i++) { 
                                vector<string> linesVector;
-                               splitAtChar(lines[i], linesVector, '.');
+                               m->splitAtChar(lines[i], linesVector, '.');
                        
                                if (versionVector.size() != linesVector.size()) { good = false; break; }
                                else {
index 743c6d779c8042ea2d47690cdc77ec839bf21bab..4f48d9ce03b64ec2a5c1f52d4d3ef2feaab9d8a5 100644 (file)
@@ -665,7 +665,7 @@ int Bellerophon::writePrefs(string file, linePair tempLine) {
        try {
        
                ofstream outTemp;
-               openOutputFile(file, outTemp);
+               m->openOutputFile(file, outTemp);
                
                //lets you know what part of the pref matrix you are writing
                outTemp << tempLine.start << '\t' << tempLine.num << endl;
@@ -695,12 +695,12 @@ int Bellerophon::readPrefs(string file) {
        try {
        
                ifstream inTemp;
-               openInputFile(file, inTemp);
+               m->openInputFile(file, inTemp);
                
                int start, num;
                
                //lets you know what part of the pref matrix you are writing
-               inTemp >> start >> num;  gobble(inTemp);
+               inTemp >> start >> num;  m->gobble(inTemp);
                
                for (int i = start; i < num; i++) {
                        
@@ -710,7 +710,7 @@ int Bellerophon::readPrefs(string file) {
                        
                                inTemp >> pref[i][j].name >> pref[i][j].leftParent >> pref[i][j].rightParent;
                                inTemp >> pref[i][j].score >> pref[i][j].closestLeft >> pref[i][j].closestRight >> pref[i][j].midpoint;
-                               gobble(inTemp);
+                               m->gobble(inTemp);
                        }
                }
                
index 1d4f8c6694c570bbb7075c4150ae5125d29cc18e..a761d5a6eed759f3fd4f93d0d3500c20a4e87676 100644 (file)
@@ -39,7 +39,7 @@ BinSeqCommand::BinSeqCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->getListFile()); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->getListFile()); //if user entered a file with a path then preserve it       
                        }
 
                        
@@ -58,7 +58,7 @@ BinSeqCommand::BinSeqCommand(string option) {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -66,7 +66,7 @@ BinSeqCommand::BinSeqCommand(string option) {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -74,7 +74,7 @@ BinSeqCommand::BinSeqCommand(string option) {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -92,7 +92,7 @@ BinSeqCommand::BinSeqCommand(string option) {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -111,7 +111,7 @@ BinSeqCommand::BinSeqCommand(string option) {
                        else if (groupfile == "not found") { groupfile = ""; }
                        
                        if (abort == false) { 
-//                             openInputFile(fastafile, in);
+//                             m->openInputFile(fastafile, in);
                                fasta = new FastaMap();
                                if (groupfile != "") {
                                        groupMap = new GroupMap(groupfile);
@@ -209,7 +209,7 @@ int BinSeqCommand::execute(){
                                userLabels.erase(list->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = list->getLabel();
                                
                                delete list;
@@ -277,7 +277,7 @@ int BinSeqCommand::execute(){
 void BinSeqCommand::readNamesFile() {
        try {
                vector<string> dupNames;
-               openInputFile(namesfile, inNames);
+               m->openInputFile(namesfile, inNames);
                
                string name, names, sequence;
        
@@ -288,7 +288,7 @@ void BinSeqCommand::readNamesFile() {
                        dupNames.clear();
                        
                        //parse names into vector
-                       splitAtComma(names, dupNames);
+                       m->splitAtComma(names, dupNames);
                        
                        //store names in fasta map
                        sequence = fasta->getSequence(name);
@@ -296,7 +296,7 @@ void BinSeqCommand::readNamesFile() {
                                fasta->push_back(dupNames[i], sequence);
                        }
                
-                       gobble(inNames);
+                       m->gobble(inNames);
                }
                inNames.close();
 
@@ -312,8 +312,8 @@ int BinSeqCommand::process(ListVector* list) {
        try {
                                string binnames, name, sequence;
                                
-                               string outputFileName = outputDir + getRootName(getSimpleName(globaldata->getListFile())) + list->getLabel() + ".fasta";
-                               openOutputFile(outputFileName, out);
+                               string outputFileName = outputDir + m->getRootName(m->getSimpleName(globaldata->getListFile())) + list->getLabel() + ".fasta";
+                               m->openOutputFile(outputFileName, out);
                                
                                //save to output list of output file names
                                outputNames.push_back(outputFileName);
index 04c7716de2958ec69353a53c0d737f8ae9cfe9dd..5e7fb61aa77e7c34ca7367393766b1a5455c9213 100644 (file)
@@ -72,7 +72,7 @@ void BlastAlignment::setPairwiseSeqs(){       //      This method call assigns the blast ge
                                                                                                                        //      to the pairwise entry in the Sequence class for the 
                                                                                                                        //      candidate and template Sequence objects
        ifstream blastFile;
-       openInputFile(blastFileName, blastFile);
+       m->openInputFile(blastFileName, blastFile);
        
        seqAaln = "";
        seqBaln = "";
index d8a04da762b65406af2d43062460de9324d41f61..979d507c23d61b4537d62a1a4736721624616fb2 100644 (file)
@@ -69,7 +69,7 @@ vector<int> BlastDB::findClosestSequences(Sequence* seq, int n) {
                vector<int> topMatches;
                
                ofstream queryFile;
-               openOutputFile((queryFileName+seq->getName()), queryFile);
+               m->openOutputFile((queryFileName+seq->getName()), queryFile);
                queryFile << '>' << seq->getName() << endl;
                queryFile << seq->getUnaligned() << endl;
                queryFile.close();
@@ -84,11 +84,11 @@ vector<int> BlastDB::findClosestSequences(Sequence* seq, int n) {
                system(blastCommand.c_str());
                
                ifstream m8FileHandle;
-               openInputFile(blastFileName+seq->getName(), m8FileHandle, "no error");
+               m->openInputFile(blastFileName+seq->getName(), m8FileHandle, "no error");
                
                string dummy;
                int templateAccession;
-               gobble(m8FileHandle);
+               m->gobble(m8FileHandle);
                
                while(!m8FileHandle.eof()){
                        m8FileHandle >> dummy >> templateAccession >> searchScore;
@@ -96,7 +96,7 @@ vector<int> BlastDB::findClosestSequences(Sequence* seq, int n) {
                        //get rest of junk in line
                        while (!m8FileHandle.eof())     {       char c = m8FileHandle.get(); if (c == 10 || c == 13){   break;  }       } 
                        
-                       gobble(m8FileHandle);
+                       m->gobble(m8FileHandle);
                        topMatches.push_back(templateAccession);
                }
                m8FileHandle.close();
@@ -118,7 +118,7 @@ vector<int> BlastDB::findClosestMegaBlast(Sequence* seq, int n) {
                vector<int> topMatches;
                
                ofstream queryFile;
-               openOutputFile((queryFileName+seq->getName()), queryFile);
+               m->openOutputFile((queryFileName+seq->getName()), queryFile);
                queryFile << '>' << seq->getName() << endl;
                queryFile << seq->getUnaligned() << endl;
                queryFile.close();
@@ -132,11 +132,11 @@ vector<int> BlastDB::findClosestMegaBlast(Sequence* seq, int n) {
                system(blastCommand.c_str());
 
                ifstream m8FileHandle;
-               openInputFile(blastFileName+seq->getName(), m8FileHandle, "no error");
+               m->openInputFile(blastFileName+seq->getName(), m8FileHandle, "no error");
        
                string dummy;
                int templateAccession;
-               gobble(m8FileHandle);
+               m->gobble(m8FileHandle);
                
                while(!m8FileHandle.eof()){
                        m8FileHandle >> dummy >> templateAccession >> searchScore;
@@ -144,7 +144,7 @@ vector<int> BlastDB::findClosestMegaBlast(Sequence* seq, int n) {
                        //get rest of junk in line
                        while (!m8FileHandle.eof())     {       char c = m8FileHandle.get(); if (c == 10 || c == 13){   break;  }       } 
                        
-                       gobble(m8FileHandle);
+                       m->gobble(m8FileHandle);
                        topMatches.push_back(templateAccession);
 //cout << templateAccession << endl;
                }
@@ -164,7 +164,7 @@ void BlastDB::addSequence(Sequence seq) {
        try {
        
                ofstream unalignedFastaFile;
-               openOutputFileAppend(dbFileName, unalignedFastaFile);                           
+               m->openOutputFileAppend(dbFileName, unalignedFastaFile);                                
        
                //      generating a fasta file with unaligned template
                unalignedFastaFile << '>' << count << endl;                                     //      sequences, which will be input to formatdb
index d174cdd7ddced16a34aeea406ae6397fca26496f..9424347180c7713c6b498fd16cada4e7e86accd4 100644 (file)
@@ -52,7 +52,7 @@ BootSharedCommand::BootSharedCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
 
                        
@@ -67,7 +67,7 @@ BootSharedCommand::BootSharedCommand(string option) {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -80,7 +80,7 @@ BootSharedCommand::BootSharedCommand(string option) {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                                
@@ -89,7 +89,7 @@ BootSharedCommand::BootSharedCommand(string option) {
                        else { 
                                 if (calc == "default")  {  calc = "jclass-thetayc";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
 
                        string temp;
                        temp = validParameter.validFile(parameters, "iters", false);  if (temp == "not found") { temp = "1000"; }
@@ -232,7 +232,7 @@ int BootSharedCommand::execute(){
                        }
                        
                        //you have a label the user want that is smaller than this label and the last label has not already been processed
-                       if ((anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = order->getLabel();
                                
                                delete order;
@@ -408,8 +408,8 @@ int BootSharedCommand::process(SharedOrderVector* order) {
                                //open an ostream for each calc to print to
                                for (int z = 0; z < treeCalculators.size(); z++) {
                                        //create a new filename
-                                       outputFile = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + treeCalculators[z]->getName() + ".boot" + order->getLabel() + ".tre";
-                                       openOutputFile(outputFile, *(out[z]));
+                                       outputFile = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + treeCalculators[z]->getName() + ".boot" + order->getLabel() + ".tre";
+                                       m->openOutputFile(outputFile, *(out[z]));
                                        outputNames.push_back(outputFile);
                                }
                                
@@ -487,7 +487,7 @@ int BootSharedCommand::process(SharedOrderVector* order) {
                                        //set global data to calc trees
                                        globaldata->gTree = trees[k];
                                        
-                                       string filename = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + treeCalculators[k]->getName() + ".boot" + order->getLabel();
+                                       string filename = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + treeCalculators[k]->getName() + ".boot" + order->getLabel();
                                        consensus = new ConcensusCommand(filename);
                                        consensus->execute();
                                        delete consensus;
index 434c2730bf9a551d4ca3b5282d2c653e776878b2..b185b9f49baf98e96a78fc836c4668a5d0a14972 100644 (file)
@@ -44,7 +44,7 @@ CatchAllCommand::CatchAllCommand(string option)  {
                                it = parameters.find("sabund");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["sabund"] = inputDir + it->second;           }
                                }
@@ -59,7 +59,7 @@ CatchAllCommand::CatchAllCommand(string option)  {
                        string label = validParameter.validFile(parameters, "label", false);                    
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                
@@ -102,13 +102,13 @@ int CatchAllCommand::execute() {
                vector<string> outputNames;
                
                //prepare full output directory
-               outputDir = getFullPathName(outputDir);
+               outputDir = m->getFullPathName(outputDir);
                
                //get location of catchall
                GlobalData* globaldata = GlobalData::getInstance();
                string path = globaldata->argv;
                path = path.substr(0, (path.find_last_of('m')));
-               path = getFullPathName(path);
+               path = m->getFullPathName(path);
 
                string catchAllCommandExe = ""; 
                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
@@ -159,7 +159,7 @@ cout << catchAllCommand << endl;
                                        userLabels.erase(sabund->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(sabund->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(sabund->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = sabund->getLabel();
                                        
                                        delete sabund;          
@@ -264,11 +264,11 @@ cout << catchAllCommand << endl;
 //**********************************************************************************************************************
 string CatchAllCommand::process(SAbundVector* sabund) {
        try {
-               string filename = outputDir + getRootName(getSimpleName(sabundfile)) + sabund->getLabel() + ".catchall";
-               filename = getFullPathName(filename);
+               string filename = outputDir + m->getRootName(m->getSimpleName(sabundfile)) + sabund->getLabel() + ".catchall";
+               filename = m->getFullPathName(filename);
        
                ofstream out;
-               openOutputFile(filename, out);
+               m->openOutputFile(filename, out);
                
                for (int i = 1; i <= sabund->getMaxRank(); i++) {
                        int temp = sabund->get(i);
index c27644866c1f1d52c14a6f86b9f2002e9342d720..15e482a505494574dddbe56f995d3880e9557ac0 100644 (file)
--- a/ccode.cpp
+++ b/ccode.cpp
@@ -25,7 +25,7 @@ Ccode::Ccode(string filename, string temp, bool f, string mask, int win, int num
        distCalc = new eachGapDist();
        decalc = new DeCalculator();
        
-       mapInfo = outputDir + getRootName(getSimpleName(fastafile)) + "mapinfo";
+       mapInfo = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "mapinfo";
        
        #ifdef USE_MPI
                
@@ -58,7 +58,7 @@ Ccode::Ccode(string filename, string temp, bool f, string mask, int win, int num
        #else
 
                ofstream out2;
-               openOutputFile(mapInfo, out2);
+               m->openOutputFile(mapInfo, out2);
                
                out2 << "Place in masked, filtered and trimmed sequence\tPlace in original alignment" << endl;
                out2.close();
@@ -78,7 +78,7 @@ int Ccode::print(ostream& out, ostream& outAcc) {
        try {
                
                ofstream out2;
-               openOutputFileAppend(mapInfo, out2);
+               m->openOutputFileAppend(mapInfo, out2);
                
                out2 << querySeq->getName() << endl;
                for (it = spotMap.begin(); it!= spotMap.end(); it++) {
index 685d6dbdbb990867dd4e4e49fe9b3aa4e46a270d..ae9ad9a46ef1ce5634c867219904857731bf3d6e 100644 (file)
@@ -123,7 +123,7 @@ vector<Sequence*> Chimera::readSeqs(string file) {
                        //delete inFileName;
 
                        if (pid == 0) {
-                               positions = setFilePosFasta(file, numSeqs); //fills MPIPos, returns numSeqs
+                               positions = m->setFilePosFasta(file, numSeqs); //fills MPIPos, returns numSeqs
 
                                //send file positions to all processes
                                for(int i = 1; i < processors; i++) { 
@@ -167,14 +167,14 @@ vector<Sequence*> Chimera::readSeqs(string file) {
        #else
 
                ifstream in;
-               openInputFile(file, in);
+               m->openInputFile(file, in);
                
                //read in seqs and store in vector
                while(!in.eof()){
                        
                        if (m->control_pressed) { return container; }
                        
-                       Sequence* current = new Sequence(in);  gobble(in);
+                       Sequence* current = new Sequence(in);  m->gobble(in);
                        
                        if (count == 0) {  length = current->getAligned().length();  count++;  } //gets first seqs length
                        else if (length != current->getAligned().length()) {    unaligned = true;       }
@@ -241,7 +241,7 @@ void Chimera::setMask(string filename) {
        #else
        
                        ifstream infile;
-                       openInputFile(filename, infile);
+                       m->openInputFile(filename, infile);
                        
                        if (!infile.eof()) {
                                Sequence temp(infile);
index 6d0961689d425b1ffd8ba75a86653453e3e72011..a504d0b496dec5b23795b546c70b573bc6c0c2ca 100644 (file)
@@ -42,12 +42,12 @@ ChimeraBellerophonCommand::ChimeraBellerophonCommand(string option)  {
                        fastafile = validParameter.validFile(parameters, "fasta", false);
                        if (fastafile == "not found") { fastafile = ""; m->mothurOut("fasta is a required parameter for the chimera.bellerophon command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fastafile, fastaFileNames);
+                               m->splitAtDash(fastafile, fastaFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastaFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastaFileNames[i]);
+                                               string path = m->hasPath(fastaFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastaFileNames[i] = inputDir + fastaFileNames[i];               }
                                        }
@@ -55,14 +55,14 @@ ChimeraBellerophonCommand::ChimeraBellerophonCommand(string option)  {
                                        int ableToOpen;
                                        ifstream in;
 
-                                       ableToOpen = openInputFile(fastaFileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(fastaFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastaFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastaFileNames[i]);
                                                        m->mothurOut("Unable to open " + fastaFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastaFileNames[i] = tryPath;
                                                }
                                        }
@@ -84,15 +84,15 @@ ChimeraBellerophonCommand::ChimeraBellerophonCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
 
                        string temp;
                        temp = validParameter.validFile(parameters, "filter", false);                   if (temp == "not found") { temp = "F"; }
-                       filter = isTrue(temp);
+                       filter = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "correction", false);               if (temp == "not found") { temp = "T"; }
-                       correction = isTrue(temp);
+                       correction = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "processors", false);               if (temp == "not found") { temp = "1"; }
                        convert(temp, processors);
@@ -153,8 +153,8 @@ int ChimeraBellerophonCommand::execute(){
                        
                        chimera = new Bellerophon(fastaFileNames[i], filter, correction, window, increment, processors, outputDir);     
                                        
-                       string outputFileName = outputDir + getRootName(getSimpleName(fastaFileNames[i])) +  "bellerophon.chimeras";
-                       string accnosFileName = outputDir + getRootName(getSimpleName(fastaFileNames[i])) + "bellerophon.accnos";
+                       string outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[i])) +  "bellerophon.chimeras";
+                       string accnosFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[i])) + "bellerophon.accnos";
                        
                        chimera->getChimeras();
                        
@@ -183,10 +183,10 @@ int ChimeraBellerophonCommand::execute(){
                #else
                
                        ofstream out;
-                       openOutputFile(outputFileName, out);
+                       m->openOutputFile(outputFileName, out);
                        
                        ofstream out2;
-                       openOutputFile(accnosFileName, out2);
+                       m->openOutputFile(accnosFileName, out2);
                        
                        numSeqs = chimera->print(out, out2);
                        out.close();
index 7a9431ef914b8f1741bbfcdd7fb25b52c554a910..6a1904f16deed06b0a0515253a47a2dc8038c430 100644 (file)
@@ -43,7 +43,7 @@ ChimeraCcodeCommand::ChimeraCcodeCommand(string option)  {
                                it = parameters.find("template");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["template"] = inputDir + it->second;         }
                                }
@@ -53,12 +53,12 @@ ChimeraCcodeCommand::ChimeraCcodeCommand(string option)  {
                        fastafile = validParameter.validFile(parameters, "fasta", false);
                        if (fastafile == "not found") { fastafile = ""; m->mothurOut("fasta is a required parameter for the chimera.ccode command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fastafile, fastaFileNames);
+                               m->splitAtDash(fastafile, fastaFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastaFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastaFileNames[i]);
+                                               string path = m->hasPath(fastaFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastaFileNames[i] = inputDir + fastaFileNames[i];               }
                                        }
@@ -66,14 +66,14 @@ ChimeraCcodeCommand::ChimeraCcodeCommand(string option)  {
                                        int ableToOpen;
                                        ifstream in;
                                        
-                                       ableToOpen = openInputFile(fastaFileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(fastaFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastaFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastaFileNames[i]);
                                                        m->mothurOut("Unable to open " + fastaFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastaFileNames[i] = tryPath;
                                                }
                                        }
@@ -94,7 +94,7 @@ ChimeraCcodeCommand::ChimeraCcodeCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
 
                        templatefile = validParameter.validFile(parameters, "template", true);
@@ -105,20 +105,20 @@ ChimeraCcodeCommand::ChimeraCcodeCommand(string option)  {
                        if (maskfile == "not found") { maskfile = "";  }        
                        else if (maskfile != "default")  { 
                                if (inputDir != "") {
-                                       string path = hasPath(maskfile);
+                                       string path = m->hasPath(maskfile);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       maskfile = inputDir + maskfile;         }
                                }
 
                                ifstream in;
-                               int     ableToOpen = openInputFile(maskfile, in);
+                               int     ableToOpen = m->openInputFile(maskfile, in);
                                if (ableToOpen == 1) { abort = true; }
                                in.close();
                        }
                        
                        string temp;
                        temp = validParameter.validFile(parameters, "filter", false);                   if (temp == "not found") { temp = "F"; }
-                       filter = isTrue(temp);
+                       filter = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "processors", false);               if (temp == "not found") { temp = "1"; }
                        convert(temp, processors);
@@ -194,14 +194,14 @@ int ChimeraCcodeCommand::execute(){
                        
                        string outputFileName, accnosFileName;
                        if (maskfile != "") {
-                               outputFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + maskfile + ".ccode.chimeras";
-                               accnosFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + maskfile + ".ccode.accnos";
+                               outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + maskfile + ".ccode.chimeras";
+                               accnosFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + maskfile + ".ccode.accnos";
                        }else {
-                               outputFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s]))  + "ccode.chimeras";
-                               accnosFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s]))  + "ccode.accnos";
+                               outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s]))  + "ccode.chimeras";
+                               accnosFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s]))  + "ccode.accnos";
                        }
 
-                       string mapInfo = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + "mapinfo";
+                       string mapInfo = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + "mapinfo";
                        
                        if (m->control_pressed) { delete chimera;  for (int j = 0; j < outputNames.size(); j++) {       remove(outputNames[j].c_str()); }  return 0;    }
                        
@@ -248,7 +248,7 @@ int ChimeraCcodeCommand::execute(){
                                        MPI_File_write_shared(outMPI, buf2, length, MPI_CHAR, &status);
                                        delete buf2;
 
-                                       MPIPos = setFilePosFasta(fastaFileNames[s], numSeqs); //fills MPIPos, returns numSeqs
+                                       MPIPos = m->setFilePosFasta(fastaFileNames[s], numSeqs); //fills MPIPos, returns numSeqs
                                        
                                        //send file positions to all processes
                                        for(int i = 1; i < processors; i++) { 
@@ -293,14 +293,14 @@ int ChimeraCcodeCommand::execute(){
                                        
                #else
                        ofstream outHeader;
-                       string tempHeader = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + maskfile + "ccode.chimeras.tempHeader";
-                       openOutputFile(tempHeader, outHeader);
+                       string tempHeader = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + maskfile + "ccode.chimeras.tempHeader";
+                       m->openOutputFile(tempHeader, outHeader);
                        
                        outHeader << "For full window mapping info refer to " << mapInfo << endl << endl;
 
                        outHeader.close();
                        
-                       vector<unsigned long int> positions = divideFile(fastaFileNames[s], processors);
+                       vector<unsigned long int> positions = m->divideFile(fastaFileNames[s], processors);
                                
                        for (int i = 0; i < (positions.size()-1); i++) {
                                lines.push_back(new linePair(positions[i], positions[(i+1)]));
@@ -324,13 +324,13 @@ int ChimeraCcodeCommand::execute(){
                                                
                                        //append output files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((outputFileName + toString(processIDS[i]) + ".temp"), outputFileName);
+                                               m->appendFiles((outputFileName + toString(processIDS[i]) + ".temp"), outputFileName);
                                                remove((outputFileName + toString(processIDS[i]) + ".temp").c_str());
                                        }
                                        
                                        //append output files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((accnosFileName + toString(processIDS[i]) + ".temp"), accnosFileName);
+                                               m->appendFiles((accnosFileName + toString(processIDS[i]) + ".temp"), accnosFileName);
                                                remove((accnosFileName + toString(processIDS[i]) + ".temp").c_str());
                                        }
                                        
@@ -352,7 +352,7 @@ int ChimeraCcodeCommand::execute(){
                                
                        #endif
        
-                       appendFiles(outputFileName, tempHeader);
+                       m->appendFiles(outputFileName, tempHeader);
                
                        remove(outputFileName.c_str());
                        rename(tempHeader.c_str(), outputFileName.c_str());
@@ -387,13 +387,13 @@ int ChimeraCcodeCommand::execute(){
 int ChimeraCcodeCommand::driver(linePair* filePos, string outputFName, string filename, string accnos){
        try {
                ofstream out;
-               openOutputFile(outputFName, out);
+               m->openOutputFile(outputFName, out);
                
                ofstream out2;
-               openOutputFile(accnos, out2);
+               m->openOutputFile(accnos, out2);
                
                ifstream inFASTA;
-               openInputFile(filename, inFASTA);
+               m->openInputFile(filename, inFASTA);
 
                inFASTA.seekg(filePos->start);
 
@@ -404,7 +404,7 @@ int ChimeraCcodeCommand::driver(linePair* filePos, string outputFName, string fi
                
                        if (m->control_pressed) {       return 1;       }
                
-                       Sequence* candidateSeq = new Sequence(inFASTA);  gobble(inFASTA);
+                       Sequence* candidateSeq = new Sequence(inFASTA);  m->gobble(inFASTA);
                                
                        if (candidateSeq->getName() != "") { //incase there is a commented sequence at the end of a file
                                
@@ -468,7 +468,7 @@ int ChimeraCcodeCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_File
                        istringstream iss (tempBuf,istringstream::in);
                        delete buf4;
 
-                       Sequence* candidateSeq = new Sequence(iss);  gobble(iss);
+                       Sequence* candidateSeq = new Sequence(iss);  m->gobble(iss);
                                
                        if (candidateSeq->getName() != "") { //incase there is a commented sequence at the end of a file
                                
@@ -523,7 +523,7 @@ int ChimeraCcodeCommand::createProcesses(string outputFileName, string filename,
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = outputFileName + toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                out << num << endl;
                                out.close();
 
@@ -540,7 +540,7 @@ int ChimeraCcodeCommand::createProcesses(string outputFileName, string filename,
                for (int i = 0; i < processIDS.size(); i++) {
                        ifstream in;
                        string tempFile =  outputFileName + toString(processIDS[i]) + ".num.temp";
-                       openInputFile(tempFile, in);
+                       m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
                        in.close(); remove(tempFile.c_str());
                }
index de6f438d81f7fcd62e111d97a02e87d63aad1e66..4d99aa4d32a19b3f8db893c9f30186ad878a50d5 100644 (file)
@@ -41,7 +41,7 @@ ChimeraCheckCommand::ChimeraCheckCommand(string option)  {
                                it = parameters.find("template");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       string path = hasPath(it->second);
+                                       string path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["template"] = inputDir + it->second;         }
                                }
@@ -51,12 +51,12 @@ ChimeraCheckCommand::ChimeraCheckCommand(string option)  {
                        fastafile = validParameter.validFile(parameters, "fasta", false);
                        if (fastafile == "not found") { fastafile = ""; m->mothurOut("fasta is a required parameter for the chimera.check command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fastafile, fastaFileNames);
+                               m->splitAtDash(fastafile, fastaFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastaFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastaFileNames[i]);
+                                               string path = m->hasPath(fastaFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastaFileNames[i] = inputDir + fastaFileNames[i];               }
                                        }
@@ -64,14 +64,14 @@ ChimeraCheckCommand::ChimeraCheckCommand(string option)  {
                                        int ableToOpen;
                                        ifstream in;
                                        
-                                       ableToOpen = openInputFile(fastaFileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(fastaFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastaFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastaFileNames[i]);
                                                        m->mothurOut("Unable to open " + fastaFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastaFileNames[i] = tryPath;
                                                }
                                        }
@@ -99,12 +99,12 @@ ChimeraCheckCommand::ChimeraCheckCommand(string option)  {
                        namefile = validParameter.validFile(parameters, "name", false);
                        if (namefile == "not found") { namefile = ""; }
                        else { 
-                               splitAtDash(namefile, nameFileNames);
+                               m->splitAtDash(namefile, nameFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < nameFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(nameFileNames[i]);
+                                               string path = m->hasPath(nameFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       nameFileNames[i] = inputDir + nameFileNames[i];         }
                                        }
@@ -112,14 +112,14 @@ ChimeraCheckCommand::ChimeraCheckCommand(string option)  {
                                        int ableToOpen;
                                        ifstream in;
                                        
-                                       ableToOpen = openInputFile(nameFileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(nameFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(nameFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(nameFileNames[i]);
                                                        m->mothurOut("Unable to open " + nameFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        nameFileNames[i] = tryPath;
                                                }
                                        }
@@ -150,7 +150,7 @@ ChimeraCheckCommand::ChimeraCheckCommand(string option)  {
                        convert(temp, ksize);
                        
                        temp = validParameter.validFile(parameters, "svg", false);                              if (temp == "not found") { temp = "F"; }
-                       svg = isTrue(temp);
+                       svg = m->isTrue(temp);
                        if (nameFileNames.size() != 0) { svg = true; }
                        
                        temp = validParameter.validFile(parameters, "increment", false);                if (temp == "not found") { temp = "10"; }
@@ -217,7 +217,7 @@ int ChimeraCheckCommand::execute(){
 
                        if (m->control_pressed) { delete chimera;       return 0;       }
                        
-                       string outputFileName = outputDir + getRootName(getSimpleName(fastaFileNames[i]))  + "chimeracheck.chimeras";
+                       string outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[i]))  + "chimeracheck.chimeras";
                        outputNames.push_back(outputFileName);
                        
                #ifdef USE_MPI
@@ -248,7 +248,7 @@ int ChimeraCheckCommand::execute(){
                                if (m->control_pressed) {  MPI_File_close(&inMPI);  MPI_File_close(&outMPI);  for (int j = 0; j < outputNames.size(); j++) {    remove(outputNames[j].c_str()); } delete chimera; return 0;  }
                                
                                if (pid == 0) { //you are the root process 
-                                       MPIPos = setFilePosFasta(fastaFileNames[i], numSeqs); //fills MPIPos, returns numSeqs
+                                       MPIPos = m->setFilePosFasta(fastaFileNames[i], numSeqs); //fills MPIPos, returns numSeqs
                                        
                                        //send file positions to all processes
                                        for(int j = 1; j < processors; j++) { 
@@ -299,7 +299,7 @@ int ChimeraCheckCommand::execute(){
                                MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
                #else
                        
-                       vector<unsigned long int> positions = divideFile(fastaFileNames[i], processors);
+                       vector<unsigned long int> positions = m->divideFile(fastaFileNames[i], processors);
                                
                        for (int s = 0; s < (positions.size()-1); s++) {
                                lines.push_back(new linePair(positions[s], positions[(s+1)]));
@@ -321,7 +321,7 @@ int ChimeraCheckCommand::execute(){
                                                
                                        //append output files
                                        for(int j=1;j<processors;j++){
-                                               appendFiles((outputFileName + toString(processIDS[j]) + ".temp"), outputFileName);
+                                               m->appendFiles((outputFileName + toString(processIDS[j]) + ".temp"), outputFileName);
                                                remove((outputFileName + toString(processIDS[j]) + ".temp").c_str());
                                        }
                                        
@@ -365,12 +365,12 @@ int ChimeraCheckCommand::execute(){
 int ChimeraCheckCommand::driver(linePair* filePos, string outputFName, string filename){
        try {
                ofstream out;
-               openOutputFile(outputFName, out);
+               m->openOutputFile(outputFName, out);
                
                ofstream out2;
                
                ifstream inFASTA;
-               openInputFile(filename, inFASTA);
+               m->openInputFile(filename, inFASTA);
 
                inFASTA.seekg(filePos->start);
 
@@ -381,7 +381,7 @@ int ChimeraCheckCommand::driver(linePair* filePos, string outputFName, string fi
 
                        if (m->control_pressed) {       return 1;       }
                
-                       Sequence* candidateSeq = new Sequence(inFASTA);  gobble(inFASTA);
+                       Sequence* candidateSeq = new Sequence(inFASTA);  m->gobble(inFASTA);
                                
                        if (candidateSeq->getName() != "") { //incase there is a commented sequence at the end of a file
                                //find chimeras
@@ -437,7 +437,7 @@ int ChimeraCheckCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_File
                        istringstream iss (tempBuf,istringstream::in);
                        delete buf4;
 
-                       Sequence* candidateSeq = new Sequence(iss);  gobble(iss);
+                       Sequence* candidateSeq = new Sequence(iss);  m->gobble(iss);
                                
                        if (candidateSeq->getName() != "") { //incase there is a commented sequence at the end of a file
                                //find chimeras
@@ -484,7 +484,7 @@ int ChimeraCheckCommand::createProcesses(string outputFileName, string filename)
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = outputFileName + toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                out << num << endl;
                                out.close();
                                
@@ -501,7 +501,7 @@ int ChimeraCheckCommand::createProcesses(string outputFileName, string filename)
                for (int i = 0; i < processIDS.size(); i++) {
                        ifstream in;
                        string tempFile =  outputFileName + toString(processIDS[i]) + ".num.temp";
-                       openInputFile(tempFile, in);
+                       m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
                        in.close(); remove(tempFile.c_str());
                }
index e89277b12078c089688c9c1cba7f9abe734ea8bc..1840c382627f8a65ff9849919b5f95de4cf60db0 100644 (file)
@@ -283,7 +283,7 @@ void ChimeraCheckRDP::readName(string namefile) {
                delete buffer;
                
                while(!iss.eof()) {
-                       iss >> name; gobble(iss);
+                       iss >> name; m->gobble(iss);
                        names[name] = name;
                }
        
@@ -292,10 +292,10 @@ void ChimeraCheckRDP::readName(string namefile) {
        #else   
        
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                                
                while (!in.eof()) {
-                       in >> name; gobble(in);
+                       in >> name; m->gobble(in);
                        names[name] = name;
                }
                in.close();
@@ -432,7 +432,7 @@ void ChimeraCheckRDP::makeSVGpic(vector<sim> info) {
                
                string file = outputDir + querySeq->getName() + ".chimeracheck.svg";
                ofstream outsvg;
-               openOutputFile(file, outsvg);
+               m->openOutputFile(file, outsvg);
                
                int width = (info.size()*5) + 150;
                
index 9e1bfe19e0fd82e82425f7d76e529238a10e28b6..a8a85eb07bd8df6639ee7a3db7122d588c889e34 100644 (file)
@@ -43,7 +43,7 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                                it = parameters.find("template");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["template"] = inputDir + it->second;         }
                                }
@@ -51,7 +51,7 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                                it = parameters.find("conservation");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["conservation"] = inputDir + it->second;             }
                                }
@@ -59,7 +59,7 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                                it = parameters.find("quantile");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["quantile"] = inputDir + it->second;         }
                                }
@@ -70,12 +70,12 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                        fastafile = validParameter.validFile(parameters, "fasta", false);
                        if (fastafile == "not found") { fastafile = ""; m->mothurOut("fasta is a required parameter for the chimera.pintail command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fastafile, fastaFileNames);
+                               m->splitAtDash(fastafile, fastaFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastaFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastaFileNames[i]);
+                                               string path = m->hasPath(fastaFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastaFileNames[i] = inputDir + fastaFileNames[i];               }
                                        }
@@ -83,14 +83,14 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                                        int ableToOpen;
                                        ifstream in;
                                        
-                                       ableToOpen = openInputFile(fastaFileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(fastaFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastaFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastaFileNames[i]);
                                                        m->mothurOut("Unable to open " + fastaFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastaFileNames[i] = tryPath;
                                                }
                                        }
@@ -110,7 +110,7 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                        
                        string temp;
                        temp = validParameter.validFile(parameters, "filter", false);                   if (temp == "not found") { temp = "F"; }
-                       filter = isTrue(temp);
+                       filter = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "processors", false);               if (temp == "not found") { temp = "1"; }
                        convert(temp, processors);
@@ -125,13 +125,13 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                        if (maskfile == "not found") { maskfile = "";  }        
                        else if (maskfile != "default")  { 
                                if (inputDir != "") {
-                                       string path = hasPath(maskfile);
+                                       string path = m->hasPath(maskfile);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       maskfile = inputDir + maskfile;         }
                                }
 
                                ifstream in;
-                               int     ableToOpen = openInputFile(maskfile, in);
+                               int     ableToOpen = m->openInputFile(maskfile, in);
                                if (ableToOpen == 1) { abort = true; }
                                in.close();
                        }
@@ -140,7 +140,7 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
                
                        templatefile = validParameter.validFile(parameters, "template", true);
@@ -152,10 +152,10 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                        else if (consfile == "not found") { 
                                consfile = "";  
                                //check for consfile
-                               string tempConsFile = getRootName(inputDir + getSimpleName(templatefile)) + "freq";
+                               string tempConsFile = m->getRootName(inputDir + m->getSimpleName(templatefile)) + "freq";
                                ifstream FileTest(tempConsFile.c_str());
                                if(FileTest){   
-                                       bool GoodFile = checkReleaseVersion(FileTest, m->getVersion());
+                                       bool GoodFile = m->checkReleaseVersion(FileTest, m->getVersion());
                                        if (GoodFile) {  
                                                m->mothurOut("I found " + tempConsFile + " in your input file directory. I will use it to save time."); m->mothurOutEndLine();  consfile = tempConsFile;  FileTest.close();     
                                        }
@@ -227,18 +227,18 @@ int ChimeraPintailCommand::execute(){
                        //check for quantile to save the time
                        string tempQuan = "";
                        if ((!filter) && (maskfile == "")) {
-                               tempQuan = inputDir + getRootName(getSimpleName(templatefile)) + "pintail.quan";
+                               tempQuan = inputDir + m->getRootName(m->getSimpleName(templatefile)) + "pintail.quan";
                        }else if ((!filter) && (maskfile != "")) { 
-                               tempQuan = inputDir + getRootName(getSimpleName(templatefile)) + "pintail.masked.quan";
+                               tempQuan = inputDir + m->getRootName(m->getSimpleName(templatefile)) + "pintail.masked.quan";
                        }else if ((filter) && (maskfile != "")) { 
-                               tempQuan = inputDir + getRootName(getSimpleName(templatefile)) + "pintail.filtered." + getSimpleName(getRootName(fastaFileNames[s])) + "masked.quan";
+                               tempQuan = inputDir + m->getRootName(m->getSimpleName(templatefile)) + "pintail.filtered." + m->getSimpleName(m->getRootName(fastaFileNames[s])) + "masked.quan";
                        }else if ((filter) && (maskfile == "")) { 
-                               tempQuan = inputDir + getRootName(getSimpleName(templatefile)) + "pintail.filtered." + getSimpleName(getRootName(fastaFileNames[s])) + "quan";
+                               tempQuan = inputDir + m->getRootName(m->getSimpleName(templatefile)) + "pintail.filtered." + m->getSimpleName(m->getRootName(fastaFileNames[s])) + "quan";
                        }
                        
                        ifstream FileTest(tempQuan.c_str());
                        if(FileTest){   
-                               bool GoodFile = checkReleaseVersion(FileTest, m->getVersion());
+                               bool GoodFile = m->checkReleaseVersion(FileTest, m->getVersion());
                                if (GoodFile) {  
                                        m->mothurOut("I found " + tempQuan + " in your input file directory. I will use it to save time."); m->mothurOutEndLine();  quanfile = tempQuan;  FileTest.close();     
                                }
@@ -248,11 +248,11 @@ int ChimeraPintailCommand::execute(){
                        
                        string outputFileName, accnosFileName;
                        if (maskfile != "") {
-                               outputFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + maskfile + ".pintail.chimeras";
-                               accnosFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + maskfile + ".pintail.accnos";
+                               outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + maskfile + ".pintail.chimeras";
+                               accnosFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + maskfile + ".pintail.accnos";
                        }else {
-                               outputFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s]))  + "pintail.chimeras";
-                               accnosFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s]))  + "pintail.accnos";
+                               outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s]))  + "pintail.chimeras";
+                               accnosFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s]))  + "pintail.accnos";
                        }
                        
                        if (m->control_pressed) { delete chimera; for (int j = 0; j < outputNames.size(); j++) {        remove(outputNames[j].c_str()); }  return 0;    }
@@ -297,7 +297,7 @@ int ChimeraPintailCommand::execute(){
 
                                if (pid == 0) { //you are the root process 
                                                                
-                                       MPIPos = setFilePosFasta(fastaFileNames[s], numSeqs); //fills MPIPos, returns numSeqs
+                                       MPIPos = m->setFilePosFasta(fastaFileNames[s], numSeqs); //fills MPIPos, returns numSeqs
                                        
                                        //send file positions to all processes
                                        for(int i = 1; i < processors; i++) { 
@@ -337,7 +337,7 @@ int ChimeraPintailCommand::execute(){
                                MPI_File_close(&outMPIAccnos);
                                MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
                #else
-                       vector<unsigned long int> positions = divideFile(fastaFileNames[s], processors);
+                       vector<unsigned long int> positions = m->divideFile(fastaFileNames[s], processors);
                                
                        for (int i = 0; i < (positions.size()-1); i++) {
                                lines.push_back(new linePair(positions[i], positions[(i+1)]));
@@ -361,13 +361,13 @@ int ChimeraPintailCommand::execute(){
                                                
                                        //append output files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((outputFileName + toString(processIDS[i]) + ".temp"), outputFileName);
+                                               m->appendFiles((outputFileName + toString(processIDS[i]) + ".temp"), outputFileName);
                                                remove((outputFileName + toString(processIDS[i]) + ".temp").c_str());
                                        }
                                        
                                        //append output files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((accnosFileName + toString(processIDS[i]) + ".temp"), accnosFileName);
+                                               m->appendFiles((accnosFileName + toString(processIDS[i]) + ".temp"), accnosFileName);
                                                remove((accnosFileName + toString(processIDS[i]) + ".temp").c_str());
                                        }
                                                                                
@@ -417,13 +417,13 @@ int ChimeraPintailCommand::execute(){
 int ChimeraPintailCommand::driver(linePair* filePos, string outputFName, string filename, string accnos){
        try {
                ofstream out;
-               openOutputFile(outputFName, out);
+               m->openOutputFile(outputFName, out);
                
                ofstream out2;
-               openOutputFile(accnos, out2);
+               m->openOutputFile(accnos, out2);
                
                ifstream inFASTA;
-               openInputFile(filename, inFASTA);
+               m->openInputFile(filename, inFASTA);
 
                inFASTA.seekg(filePos->start);
 
@@ -434,7 +434,7 @@ int ChimeraPintailCommand::driver(linePair* filePos, string outputFName, string
                                
                        if (m->control_pressed) {       return 1;       }
                
-                       Sequence* candidateSeq = new Sequence(inFASTA);  gobble(inFASTA);
+                       Sequence* candidateSeq = new Sequence(inFASTA);  m->gobble(inFASTA);
                                
                        if (candidateSeq->getName() != "") { //incase there is a commented sequence at the end of a file
                                
@@ -497,7 +497,7 @@ int ChimeraPintailCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_Fi
                        istringstream iss (tempBuf,istringstream::in);
                        delete buf4;
 
-                       Sequence* candidateSeq = new Sequence(iss);  gobble(iss);
+                       Sequence* candidateSeq = new Sequence(iss);  m->gobble(iss);
                                
                        if (candidateSeq->getName() != "") { //incase there is a commented sequence at the end of a file
                                
@@ -552,7 +552,7 @@ int ChimeraPintailCommand::createProcesses(string outputFileName, string filenam
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = outputFileName + toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                out << num << endl;
                                out.close();
 
@@ -569,7 +569,7 @@ int ChimeraPintailCommand::createProcesses(string outputFileName, string filenam
                for (int i = 0; i < processIDS.size(); i++) {
                        ifstream in;
                        string tempFile =  outputFileName + toString(processIDS[i]) + ".num.temp";
-                       openInputFile(tempFile, in);
+                       m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
                        in.close(); remove(tempFile.c_str());
                }
index ff13590cd3a91cb8960e26af803ca7fa63918035..1bfdafeaa5f6540e4e8254572b0202c81c1a0325 100644 (file)
@@ -105,7 +105,7 @@ int ChimeraSlayer::doPrep() {
                        bool needToGenerateLeft = true;
                        
                        if(kmerFileTestLeft){   
-                               bool GoodFile = checkReleaseVersion(kmerFileTestLeft, m->getVersion());
+                               bool GoodFile = m->checkReleaseVersion(kmerFileTestLeft, m->getVersion());
                                if (GoodFile) {  needToGenerateLeft = false;    }
                        }
                        
@@ -136,7 +136,7 @@ int ChimeraSlayer::doPrep() {
                        bool needToGenerateRight = true;
                        
                        if(kmerFileTestRight){  
-                               bool GoodFile = checkReleaseVersion(kmerFileTestRight, m->getVersion());
+                               bool GoodFile = m->checkReleaseVersion(kmerFileTestRight, m->getVersion());
                                if (GoodFile) {  needToGenerateRight = false;   }
                        }
                        
index 35f3b988f86ec2e868d8eb5a825efc853e1662e7..8a80d4dc2517309b3778186ed6ac4e5c937a73f1 100644 (file)
@@ -45,7 +45,7 @@ ChimeraSlayerCommand::ChimeraSlayerCommand(string option)  {
                                it = parameters.find("template");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["template"] = inputDir + it->second;         }
                                }
@@ -56,12 +56,12 @@ ChimeraSlayerCommand::ChimeraSlayerCommand(string option)  {
                        fastafile = validParameter.validFile(parameters, "fasta", false);
                        if (fastafile == "not found") { fastafile = ""; m->mothurOut("fasta is a required parameter for the chimera.slayer command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fastafile, fastaFileNames);
+                               m->splitAtDash(fastafile, fastaFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastaFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastaFileNames[i]);
+                                               string path = m->hasPath(fastaFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastaFileNames[i] = inputDir + fastaFileNames[i];               }
                                        }
@@ -69,14 +69,14 @@ ChimeraSlayerCommand::ChimeraSlayerCommand(string option)  {
                                        int ableToOpen;
                                        ifstream in;
                                        
-                                       ableToOpen = openInputFile(fastaFileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(fastaFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastaFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastaFileNames[i]);
                                                        m->mothurOut("Unable to open " + fastaFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastaFileNames[i] = tryPath;
                                                }
                                        }
@@ -97,7 +97,7 @@ ChimeraSlayerCommand::ChimeraSlayerCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
 
                        templatefile = validParameter.validFile(parameters, "template", true);
@@ -138,7 +138,7 @@ ChimeraSlayerCommand::ChimeraSlayerCommand(string option)  {
                        convert(temp, parents); 
                        
                        temp = validParameter.validFile(parameters, "realign", false);                  if (temp == "not found") { temp = "f"; }
-                       realign = isTrue(temp); 
+                       realign = m->isTrue(temp); 
                        
                        search = validParameter.validFile(parameters, "search", false);                 if (search == "not found") { search = "distance"; }
                        
@@ -219,8 +219,8 @@ int ChimeraSlayerCommand::execute(){
                        
                        chimera = new ChimeraSlayer(fastaFileNames[s], templatefile, search, ksize, match, mismatch, window, divR, minSimilarity, minCoverage, minBS, minSNP, parents, iters, increment, numwanted, realign);   
                                                        
-                       string outputFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + "slayer.chimeras";
-                       string accnosFileName = outputDir + getRootName(getSimpleName(fastaFileNames[s]))  + "slayer.accnos";
+                       string outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + "slayer.chimeras";
+                       string accnosFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s]))  + "slayer.accnos";
                        
                        if (m->control_pressed) { delete chimera; for (int j = 0; j < outputNames.size(); j++) {        remove(outputNames[j].c_str()); }  return 0;    }
                        
@@ -277,7 +277,7 @@ int ChimeraSlayerCommand::execute(){
                                        MPI_File_write_shared(outMPI, buf2, length, MPI_CHAR, &status);
                                        delete buf2;
 
-                                       MPIPos = setFilePosFasta(fastaFileNames[s], numSeqs); //fills MPIPos, returns numSeqs
+                                       MPIPos = m->setFilePosFasta(fastaFileNames[s], numSeqs); //fills MPIPos, returns numSeqs
                                        
                                        //send file positions to all processes
                                        for(int i = 1; i < processors; i++) { 
@@ -319,13 +319,13 @@ int ChimeraSlayerCommand::execute(){
                                
                #else
                        ofstream outHeader;
-                       string tempHeader = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + "slayer.chimeras.tempHeader";
-                       openOutputFile(tempHeader, outHeader);
+                       string tempHeader = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + "slayer.chimeras.tempHeader";
+                       m->openOutputFile(tempHeader, outHeader);
                        
                        chimera->printHeader(outHeader);
                        outHeader.close();
                        
-                       vector<unsigned long int> positions = divideFile(fastaFileNames[s], processors);
+                       vector<unsigned long int> positions = m->divideFile(fastaFileNames[s], processors);
                                
                        for (int i = 0; i < (positions.size()-1); i++) {
                                lines.push_back(new linePair(positions[i], positions[(i+1)]));
@@ -348,13 +348,13 @@ int ChimeraSlayerCommand::execute(){
                                                
                                        //append output files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((outputFileName + toString(processIDS[i]) + ".temp"), outputFileName);
+                                               m->appendFiles((outputFileName + toString(processIDS[i]) + ".temp"), outputFileName);
                                                remove((outputFileName + toString(processIDS[i]) + ".temp").c_str());
                                        }
                                        
                                        //append output files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((accnosFileName + toString(processIDS[i]) + ".temp"), accnosFileName);
+                                               m->appendFiles((accnosFileName + toString(processIDS[i]) + ".temp"), accnosFileName);
                                                remove((accnosFileName + toString(processIDS[i]) + ".temp").c_str());
                                        }
                                        
@@ -368,7 +368,7 @@ int ChimeraSlayerCommand::execute(){
                                
                        #endif
                        
-                       appendFiles(outputFileName, tempHeader);
+                       m->appendFiles(outputFileName, tempHeader);
                
                        remove(outputFileName.c_str());
                        rename(tempHeader.c_str(), outputFileName.c_str());
@@ -403,13 +403,13 @@ int ChimeraSlayerCommand::execute(){
 int ChimeraSlayerCommand::driver(linePair* filePos, string outputFName, string filename, string accnos){
        try {
                ofstream out;
-               openOutputFile(outputFName, out);
+               m->openOutputFile(outputFName, out);
                
                ofstream out2;
-               openOutputFile(accnos, out2);
+               m->openOutputFile(accnos, out2);
                
                ifstream inFASTA;
-               openInputFile(filename, inFASTA);
+               m->openInputFile(filename, inFASTA);
 
                inFASTA.seekg(filePos->start);
 
@@ -420,7 +420,7 @@ int ChimeraSlayerCommand::driver(linePair* filePos, string outputFName, string f
                
                        if (m->control_pressed) {       return 1;       }
                
-                       Sequence* candidateSeq = new Sequence(inFASTA);  gobble(inFASTA);
+                       Sequence* candidateSeq = new Sequence(inFASTA);  m->gobble(inFASTA);
                                
                        if (candidateSeq->getName() != "") { //incase there is a commented sequence at the end of a file
                                
@@ -483,7 +483,7 @@ int ChimeraSlayerCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_Fil
 
                        delete buf4;
 
-                       Sequence* candidateSeq = new Sequence(iss);  gobble(iss);
+                       Sequence* candidateSeq = new Sequence(iss);  m->gobble(iss);
                
                        if (candidateSeq->getName() != "") { //incase there is a commented sequence at the end of a file
                                
@@ -539,7 +539,7 @@ int ChimeraSlayerCommand::createProcesses(string outputFileName, string filename
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = outputFileName + toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                out << num << endl;
                                out.close();
                                
@@ -556,7 +556,7 @@ int ChimeraSlayerCommand::createProcesses(string outputFileName, string filename
                for (int i = 0; i < processIDS.size(); i++) {
                        ifstream in;
                        string tempFile =  outputFileName + toString(processIDS[i]) + ".num.temp";
-                       openInputFile(tempFile, in);
+                       m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
                        in.close(); remove(tempFile.c_str());
                }
index 2eabbc1099c40cab04f6de929014b326fddab6d4..12e48f4ad34720a449a7dd7e2c197fe57faa4f64 100644 (file)
@@ -46,7 +46,7 @@ ChopSeqsCommand::ChopSeqsCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -61,7 +61,7 @@ ChopSeqsCommand::ChopSeqsCommand(string option)  {
                        convert(temp, numbases);   
                        
                        temp = validParameter.validFile(parameters, "countgaps", false);        if (temp == "not found") { temp = "f"; } 
-                       countGaps = isTrue(temp);   
+                       countGaps = m->isTrue(temp);   
                
                        keep = validParameter.validFile(parameters, "keep", false);             if (keep == "not found") { keep = "front"; } 
                                
@@ -100,17 +100,17 @@ int ChopSeqsCommand::execute(){
                
                if (abort == true) { return 0; }
                
-               string outputFileName = outputDir + getRootName(getSimpleName(fastafile)) + "chop.fasta";
-               string outputFileNameAccnos = outputDir + getRootName(getSimpleName(fastafile)) + "chop.accnos";
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "chop.fasta";
+               string outputFileNameAccnos = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "chop.accnos";
                
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
                ofstream outAcc;
-               openOutputFile(outputFileNameAccnos, outAcc);
+               m->openOutputFile(outputFileNameAccnos, outAcc);
                
                ifstream in;
-               openInputFile(fastafile, in);
+               m->openInputFile(fastafile, in);
                
                bool wroteAccnos = false;
                
index 59a615881418f25ace4a0db84b1a0d35f9d9fcd5..875628d85d8dbcb4caf6d712b41be517eefef733 100644 (file)
@@ -46,7 +46,7 @@ void Classify::generateDatabaseAndNames(string tfile, string tempFile, string me
                        //delete inFileName;
 
                        if (pid == 0) { //only one process needs to scan file
-                               positions = setFilePosFasta(tempFile, numSeqs); //fills MPIPos, returns numSeqs
+                               positions = m->setFilePosFasta(tempFile, numSeqs); //fills MPIPos, returns numSeqs
 
                                //send file positions to all processes
                                for(int i = 1; i < processors; i++) { 
@@ -96,8 +96,8 @@ void Classify::generateDatabaseAndNames(string tfile, string tempFile, string me
                //need to know number of template seqs for suffixdb
                if (method == "suffix") {
                        ifstream inFASTA;
-                       openInputFile(tempFile, inFASTA);
-                       getNumSeqs(inFASTA, numSeqs);
+                       m->openInputFile(tempFile, inFASTA);
+                       m->getNumSeqs(inFASTA, numSeqs);
                        inFASTA.close();
                }
 
@@ -109,7 +109,7 @@ void Classify::generateDatabaseAndNames(string tfile, string tempFile, string me
                        kmerDBName = tempFile.substr(0,tempFile.find_last_of(".")+1) + char('0'+ kmerSize) + "mer";
                        ifstream kmerFileTest(kmerDBName.c_str());
                        if(kmerFileTest){       
-                               bool GoodFile = checkReleaseVersion(kmerFileTest, m->getVersion());
+                               bool GoodFile = m->checkReleaseVersion(kmerFileTest, m->getVersion());
                                if (GoodFile) {  needToGenerate = false;        }
                        }
                }
@@ -124,11 +124,11 @@ void Classify::generateDatabaseAndNames(string tfile, string tempFile, string me
                
                if (needToGenerate) {
                        ifstream fastaFile;
-                       openInputFile(tempFile, fastaFile);
+                       m->openInputFile(tempFile, fastaFile);
                        
                        while (!fastaFile.eof()) {
                                Sequence temp(fastaFile);
-                               gobble(fastaFile);
+                               m->gobble(fastaFile);
                        
                                names.push_back(temp.getName());
                                                        
@@ -143,11 +143,11 @@ void Classify::generateDatabaseAndNames(string tfile, string tempFile, string me
                        database->readKmerDB(kmerFileTest);     
                
                        ifstream fastaFile;
-                       openInputFile(tempFile, fastaFile);
+                       m->openInputFile(tempFile, fastaFile);
                        
                        while (!fastaFile.eof()) {
                                Sequence temp(fastaFile);
-                               gobble(fastaFile);
+                               m->gobble(fastaFile);
 
                                names.push_back(temp.getName());
                        }
@@ -204,7 +204,7 @@ int Classify::readTaxonomy(string file) {
                //delete inFileName;
 
                if (pid == 0) {
-                       positions = setFilePosEachLine(file, num);
+                       positions = m->setFilePosEachLine(file, num);
                        
                        //send file positions to all processes
                        for(int i = 1; i < processors; i++) { 
@@ -239,7 +239,7 @@ int Classify::readTaxonomy(string file) {
                MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
 #else                          
                ifstream inTax;
-               openInputFile(file, inTax);
+               m->openInputFile(file, inTax);
        
                //read template seqs and save
                while (!inTax.eof()) {
@@ -249,7 +249,7 @@ int Classify::readTaxonomy(string file) {
                        
                        phyloTree->addSeqToTree(name, taxInfo);
                
-                       gobble(inTax);
+                       m->gobble(inTax);
                }
                inTax.close();
 #endif 
index 00f04b08d6a6d42437faced7e76c736e6075d5cb..0e23461c39803cd49cac67023d6c99255284f851 100644 (file)
@@ -45,7 +45,7 @@ ClassifyOtuCommand::ClassifyOtuCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -53,7 +53,7 @@ ClassifyOtuCommand::ClassifyOtuCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -61,7 +61,7 @@ ClassifyOtuCommand::ClassifyOtuCommand(string option)  {
                                it = parameters.find("taxonomy");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["taxonomy"] = inputDir + it->second;         }
                                }
@@ -89,7 +89,7 @@ ClassifyOtuCommand::ClassifyOtuCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; allLines = 1;  }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -97,7 +97,7 @@ ClassifyOtuCommand::ClassifyOtuCommand(string option)  {
                        convert(temp, cutoff); 
                        
                        temp = validParameter.validFile(parameters, "probs", false);                                    if (temp == "not found"){       temp = "true";                  }
-                       probs = isTrue(temp);
+                       probs = m->isTrue(temp);
                        
                        
                        if ((cutoff < 51) || (cutoff > 100)) { m->mothurOut("cutoff must be above 50, and no greater than 100."); m->mothurOutEndLine(); abort = true;  }
@@ -171,7 +171,7 @@ int ClassifyOtuCommand::execute(){
                                        userLabels.erase(list->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = list->getLabel();
                                        
                                        delete list;
@@ -241,18 +241,18 @@ int ClassifyOtuCommand::readNamesFile() {
        try {
                
                ifstream inNames;
-               openInputFile(namefile, inNames);
+               m->openInputFile(namefile, inNames);
                
                string name, names;
        
                while(inNames){
                        inNames >> name;                        //read from first column  A
                        inNames >> names;               //read from second column  A,B,C,D
-                       gobble(inNames);
+                       m->gobble(inNames);
                        
                        //parse names into vector
                        vector<string> theseNames;
-                       splitAtComma(names, theseNames);
+                       m->splitAtComma(names, theseNames);
 
                        for (int i = 0; i < theseNames.size(); i++) {  nameMap[theseNames[i]] = name;  }
                        
@@ -272,13 +272,13 @@ int ClassifyOtuCommand::readTaxonomyFile() {
        try {
                
                ifstream in;
-               openInputFile(taxfile, in);
+               m->openInputFile(taxfile, in);
                
                string name, tax;
        
                while(!in.eof()){
                        in >> name >> tax;              
-                       gobble(in);
+                       m->gobble(in);
                        
                        //are there confidence scores, if so remove them
                        if (tax.find_first_of('(') != -1) {  removeConfidences(tax);    }
@@ -306,7 +306,7 @@ string ClassifyOtuCommand::findConsensusTaxonomy(int bin, ListVector* thisList,
 
                //parse names into vector
                string binnames = thisList->get(bin);
-               splitAtComma(binnames, names);
+               m->splitAtComma(binnames, names);
 
                //create a tree containing sequences from this bin
                PhyloTree* phylo = new PhyloTree();
@@ -417,11 +417,11 @@ int ClassifyOtuCommand::process(ListVector* processList) {
                int size;
                
                //create output file
-               if (outputDir == "") { outputDir += hasPath(listfile); }
+               if (outputDir == "") { outputDir += m->hasPath(listfile); }
                                
                ofstream out;
-               string outputFile = outputDir + getRootName(getSimpleName(listfile)) + processList->getLabel() + ".cons.taxonomy";
-               openOutputFile(outputFile, out);
+               string outputFile = outputDir + m->getRootName(m->getSimpleName(listfile)) + processList->getLabel() + ".cons.taxonomy";
+               m->openOutputFile(outputFile, out);
                outputNames.push_back(outputFile);
                
                //for each bin in the list vector
index c8c0d72ca2e74a0b08c36a93f6f3a382cc411a33..e934d9d6d114a18759ec317185cd01085ac72052 100644 (file)
@@ -51,7 +51,7 @@ ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
                                it = parameters.find("template");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["template"] = inputDir + it->second;         }
                                }
@@ -59,7 +59,7 @@ ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
                                it = parameters.find("taxonomy");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["taxonomy"] = inputDir + it->second;         }
                                }
@@ -67,7 +67,7 @@ ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -86,12 +86,12 @@ ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
                        fastaFileName = validParameter.validFile(parameters, "fasta", false);
                        if (fastaFileName == "not found") { m->mothurOut("fasta is a required parameter for the classify.seqs command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fastaFileName, fastaFileNames);
+                               m->splitAtDash(fastaFileName, fastaFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastaFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastaFileNames[i]);
+                                               string path = m->hasPath(fastaFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastaFileNames[i] = inputDir + fastaFileNames[i];               }
                                        }
@@ -99,14 +99,14 @@ ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
                                        int ableToOpen;
                                        
                                        ifstream in;
-                                       ableToOpen = openInputFile(fastaFileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(fastaFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastaFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastaFileNames[i]);
                                                        m->mothurOut("Unable to open " + fastaFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastaFileNames[i] = tryPath;
                                                }
                                        }
@@ -139,26 +139,26 @@ ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
                        if (namefile == "not found") { namefile = "";  }
 
                        else { 
-                               splitAtDash(namefile, namefileNames);
+                               m->splitAtDash(namefile, namefileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < namefileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(namefileNames[i]);
+                                               string path = m->hasPath(namefileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       namefileNames[i] = inputDir + namefileNames[i];         }
                                        }
                                        int ableToOpen;
                                        
                                        ifstream in;
-                                       ableToOpen = openInputFile(namefileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(namefileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(namefileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(namefileNames[i]);
                                                        m->mothurOut("Unable to open " + namefileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        namefileNames[i] = tryPath;
                                                }
                                        }
@@ -181,26 +181,26 @@ ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
                        groupfile = validParameter.validFile(parameters, "group", false);
                        if (groupfile == "not found") { groupfile = "";  }
                        else { 
-                               splitAtDash(groupfile, groupfileNames);
+                               m->splitAtDash(groupfile, groupfileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < groupfileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(groupfileNames[i]);
+                                               string path = m->hasPath(groupfileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       groupfileNames[i] = inputDir + groupfileNames[i];               }
                                        }
                                        int ableToOpen;
                                        
                                        ifstream in;
-                                       ableToOpen = openInputFile(groupfileNames[i], in, "noerror");
+                                       ableToOpen = m->openInputFile(groupfileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(groupfileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(groupfileNames[i]);
                                                        m->mothurOut("Unable to open " + groupfileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        groupfileNames[i] = tryPath;
                                                }
                                        }
@@ -253,7 +253,7 @@ ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
                        convert(temp, cutoff);
                        
                        temp = validParameter.validFile(parameters, "probs", false);            if (temp == "not found"){       temp = "true";                  }
-                       probs = isTrue(temp);
+                       probs = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "iters", false);            if (temp == "not found") { temp = "100";                        }
                        convert(temp, iters); 
@@ -342,18 +342,18 @@ int ClassifySeqsCommand::execute(){
                
                        m->mothurOut("Classifying sequences from " + fastaFileNames[s] + " ..." ); m->mothurOutEndLine();
                        
-                       string RippedTaxName = getRootName(getSimpleName(taxonomyFileName));
-                       RippedTaxName = getExtension(RippedTaxName.substr(0, RippedTaxName.length()-1));
+                       string RippedTaxName = m->getRootName(m->getSimpleName(taxonomyFileName));
+                       RippedTaxName = m->getExtension(RippedTaxName.substr(0, RippedTaxName.length()-1));
                        if (RippedTaxName[0] == '.') { RippedTaxName = RippedTaxName.substr(1, RippedTaxName.length()); }
                        RippedTaxName +=  "."; 
                
-                       if (outputDir == "") { outputDir += hasPath(fastaFileNames[s]); }
-                       string newTaxonomyFile = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + RippedTaxName + "taxonomy";
-                       string tempTaxonomyFile = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + "taxonomy.temp";
-                       string taxSummary = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + RippedTaxName + "tax.summary";
+                       if (outputDir == "") { outputDir += m->hasPath(fastaFileNames[s]); }
+                       string newTaxonomyFile = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + RippedTaxName + "taxonomy";
+                       string tempTaxonomyFile = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + "taxonomy.temp";
+                       string taxSummary = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + RippedTaxName + "tax.summary";
                        
                        if ((method == "knn") && (search == "distance")) { 
-                               string DistName = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + "match.dist";
+                               string DistName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + "match.dist";
                                classify->setDistName(DistName);  outputNames.push_back(DistName);
                        }
                        
@@ -410,7 +410,7 @@ int ClassifySeqsCommand::execute(){
                                
                                if (pid == 0) { //you are the root process 
                                        
-                                       MPIPos = setFilePosFasta(fastaFileNames[s], numFastaSeqs); //fills MPIPos, returns numSeqs
+                                       MPIPos = m->setFilePosFasta(fastaFileNames[s], numFastaSeqs); //fills MPIPos, returns numSeqs
                                        
                                        //send file positions to all processes
                                        for(int i = 1; i < processors; i++) { 
@@ -461,7 +461,7 @@ int ClassifySeqsCommand::execute(){
                                
 #else
                
-                       vector<unsigned long int> positions = divideFile(fastaFileNames[s], processors);
+                       vector<unsigned long int> positions = m->divideFile(fastaFileNames[s], processors);
                                
                        for (int i = 0; i < (positions.size()-1); i++) {
                                lines.push_back(new linePair(positions[i], positions[(i+1)]));
@@ -510,14 +510,14 @@ int ClassifySeqsCommand::execute(){
                                nameMap.clear(); //remove old names
                                
                                ifstream inNames;
-                               openInputFile(namefileNames[s], inNames);
+                               m->openInputFile(namefileNames[s], inNames);
                                
                                string firstCol, secondCol;
                                while(!inNames.eof()) {
-                                       inNames >> firstCol >> secondCol; gobble(inNames);
+                                       inNames >> firstCol >> secondCol; m->gobble(inNames);
                                        
                                        vector<string> temp;
-                                       splitAtComma(secondCol, temp);
+                                       m->splitAtComma(secondCol, temp);
                        
                                        nameMap[firstCol] = temp;  
                                }
@@ -537,13 +537,13 @@ int ClassifySeqsCommand::execute(){
                        if (namefile == "") {  taxaSum.summarize(tempTaxonomyFile);  }
                        else {
                                ifstream in;
-                               openInputFile(tempTaxonomyFile, in);
+                               m->openInputFile(tempTaxonomyFile, in);
                                
                                //read in users taxonomy file and add sequences to tree
                                string name, taxon;
                                
                                while(!in.eof()){
-                                       in >> name >> taxon; gobble(in);
+                                       in >> name >> taxon; m->gobble(in);
                                        
                                        itNames = nameMap.find(name);
                
@@ -565,17 +565,17 @@ int ClassifySeqsCommand::execute(){
                        
                        //print summary file
                        ofstream outTaxTree;
-                       openOutputFile(taxSummary, outTaxTree);
+                       m->openOutputFile(taxSummary, outTaxTree);
                        taxaSum.print(outTaxTree);
                        outTaxTree.close();
                        
                        //output taxonomy with the unclassified bins added
                        ifstream inTax;
-                       openInputFile(newTaxonomyFile, inTax);
+                       m->openInputFile(newTaxonomyFile, inTax);
                        
                        ofstream outTax;
                        string unclass = newTaxonomyFile + ".unclass.temp";
-                       openOutputFile(unclass, outTax);
+                       m->openOutputFile(unclass, outTax);
                        
                        //get maxLevel from phylotree so you know how many 'unclassified's to add
                        int maxLevel = taxaSum.getMaxLevel();
@@ -585,7 +585,7 @@ int ClassifySeqsCommand::execute(){
                        while (!inTax.eof()) {
                                if (m->control_pressed) {  for (int i = 0; i < outputNames.size(); i++) {       remove(outputNames[i].c_str()); } remove(unclass.c_str()); delete classify; return 0; }
 
-                               inTax >> name >> taxon; gobble(inTax);
+                               inTax >> name >> taxon; m->gobble(inTax);
                                
                                string newTax = addUnclassifieds(taxon, maxLevel);
                                
@@ -669,7 +669,7 @@ int ClassifySeqsCommand::createProcesses(string taxFileName, string tempTaxFile,
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = filename + toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                out << num << endl;
                                out.close();
 
@@ -686,7 +686,7 @@ int ClassifySeqsCommand::createProcesses(string taxFileName, string tempTaxFile,
                for (int i = 0; i < processIDS.size(); i++) {
                        ifstream in;
                        string tempFile =  filename + toString(processIDS[i]) + ".num.temp";
-                       openInputFile(tempFile, in);
+                       m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
                        in.close(); remove(tempFile.c_str());
                }
@@ -706,8 +706,8 @@ void ClassifySeqsCommand::appendTaxFiles(string temp, string filename) {
                
                ofstream output;
                ifstream input;
-               openOutputFileAppend(filename, output);
-               openInputFile(temp, input);
+               m->openOutputFileAppend(filename, output);
+               m->openInputFile(temp, input);
                
                while(char c = input.get()){
                        if(input.eof())         {       break;                  }
@@ -728,13 +728,13 @@ void ClassifySeqsCommand::appendTaxFiles(string temp, string filename) {
 int ClassifySeqsCommand::driver(linePair* filePos, string taxFName, string tempTFName, string filename){
        try {
                ofstream outTax;
-               openOutputFile(taxFName, outTax);
+               m->openOutputFile(taxFName, outTax);
                
                ofstream outTaxSimple;
-               openOutputFile(tempTFName, outTaxSimple);
+               m->openOutputFile(tempTFName, outTaxSimple);
        
                ifstream inFASTA;
-               openInputFile(filename, inFASTA);
+               m->openInputFile(filename, inFASTA);
                
                string taxonomy;
 
@@ -746,7 +746,7 @@ int ClassifySeqsCommand::driver(linePair* filePos, string taxFName, string tempT
                while (!done) {
                        if (m->control_pressed) { return 0; }
                
-                       Sequence* candidateSeq = new Sequence(inFASTA); gobble(inFASTA);
+                       Sequence* candidateSeq = new Sequence(inFASTA); m->gobble(inFASTA);
                
                        if (candidateSeq->getName() != "") {
                                taxonomy = classify->getTaxonomy(candidateSeq);
@@ -890,10 +890,10 @@ int ClassifySeqsCommand::MPIReadNamesFile(string nameFilename){
                
                string firstCol, secondCol;
                while(!iss.eof()) {
-                       iss >> firstCol >> secondCol; gobble(iss);
+                       iss >> firstCol >> secondCol; m->gobble(iss);
                        
                        vector<string> temp;
-                       splitAtComma(secondCol, temp);
+                       m->splitAtComma(secondCol, temp);
                        
                        nameMap[firstCol] = temp;  
                }
index b1f40e0a03f65e3dc04153cd554abdb8e8adb5aa..d6c284d68159b66255d3cdb29d57217e9dd73af6 100644 (file)
@@ -42,7 +42,7 @@ ClearcutCommand::ClearcutCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -50,7 +50,7 @@ ClearcutCommand::ClearcutCommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -72,53 +72,53 @@ ClearcutCommand::ClearcutCommand(string option)  {
 
                        
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
-                       outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  outputDir = hasPath(inputFile); }
+                       outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  outputDir = m->hasPath(inputFile);      }
                        
                        string temp;
                        temp = validParameter.validFile(parameters, "version", false);          if (temp == "not found"){       temp = "F";                     }
-                       version = isTrue(temp);
+                       version = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "verbose", false);          if (temp == "not found"){       temp = "F";                     }
-                       verbose = isTrue(temp); 
+                       verbose = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "quiet", false);            if (temp == "not found"){       temp = "F";                     }
-                       quiet = isTrue(temp); 
+                       quiet = m->isTrue(temp); 
                        
                        seed = validParameter.validFile(parameters, "seed", false);                     if (seed == "not found"){       seed = "*";                     }
                        
                        temp = validParameter.validFile(parameters, "norandom", false);         if (temp == "not found"){       temp = "F";                     }
-                       norandom = isTrue(temp); 
+                       norandom = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "shuffle", false);          if (temp == "not found"){       temp = "F";                     }
-                       shuffle = isTrue(temp); 
+                       shuffle = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "neighbor", false);         if (temp == "not found"){       temp = "T";                     }
-                       neighbor = isTrue(temp); 
+                       neighbor = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "DNA", false);                      if (temp == "not found"){       temp = "F";                     }
-                       DNA = isTrue(temp);
+                       DNA = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "protein", false);          if (temp == "not found"){       temp = "F";                     }
-                       protein = isTrue(temp);
+                       protein = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "jukes", false);            if (temp == "not found"){       temp = "F";                     }
-                       jukes = isTrue(temp);
+                       jukes = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "kimura", false);           if (temp == "not found"){       temp = "F";                     }
-                       kimura = isTrue(temp);
+                       kimura = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "stdout", false);           if (temp == "not found"){       temp = "F";                     }
-                       stdoutWanted = isTrue(temp); 
+                       stdoutWanted = m->isTrue(temp); 
                        
                        matrixout = validParameter.validFile(parameters, "matrixout", false);   if (matrixout == "not found"){  matrixout = "";         }
                        
                        ntrees = validParameter.validFile(parameters, "ntrees", false);         if (ntrees == "not found"){     ntrees = "1";           }
                        
                        temp = validParameter.validFile(parameters, "expblen", false);          if (temp == "not found"){       temp = "F";                     }
-                       expblen = isTrue(temp);
+                       expblen = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "expdist", false);          if (temp == "not found"){       temp = "F";                     }
-                       expdist = isTrue(temp);
+                       expdist = m->isTrue(temp);
                        
                        if ((fastafile != "") && ((!DNA) && (!protein))) { m->mothurOut("You must specify the type of sequences you are using: DNA or protein"); m->mothurOutEndLine(); abort=true; }
                }
@@ -175,7 +175,7 @@ int ClearcutCommand::execute() {
                if (abort == true) { return 0; }
                                
                //prepare filename
-               string outputName = outputDir + getRootName(getSimpleName(inputFile)) + "tre";
+               string outputName = outputDir + m->getRootName(m->getSimpleName(inputFile)) + "tre";
                
                //get location of clearcut
                GlobalData* globaldata = GlobalData::getInstance();
index a766e08d47b4af7a46d8093323cb795d57d6aa78..440562c07bcfc19d426779e4f627b84f7b0df3a1 100644 (file)
@@ -53,7 +53,7 @@ rabund(rav), list(lv), dMatrix(dm), method(f)
        // sequence in the distance matrix.
 //ofstream outtemp;
 //string temp = "temp";
-//openOutputFile(temp, outtemp);       
+//m->openOutputFile(temp, outtemp);    
 //cout << lv->size() << endl;
        seqVec = vector<MatVec>(lv->size());
        for (MatData currentCell = dMatrix->begin(); currentCell != dMatrix->end(); currentCell++) {
index 3f27560ae9bfbc69c5ac3d49875847a829f49bf3..6df5faad98cd9a0cd1a78644794cecc3eef0df7d 100644 (file)
@@ -57,7 +57,7 @@ ClusterCommand::ClusterCommand(string option)  {
                        convert(temp, precision); 
                        
                        temp = validParameter.validFile(parameters, "hard", false);                     if (temp == "not found") { temp = "F"; }
-                       hard = isTrue(temp);
+                       hard = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "cutoff", false);
                        if (temp == "not found") { temp = "10"; }
@@ -94,12 +94,12 @@ ClusterCommand::ClusterCommand(string option)  {
                                else if(method == "weighted"){  cluster = new WeightedLinkage(rabund, list, matrix, cutoff, method);    }
                                tag = cluster->getTag();
                                
-                               if (outputDir == "") { outputDir += hasPath(globaldata->inputFileName); }
-                               fileroot = outputDir + getRootName(getSimpleName(globaldata->inputFileName));
+                               if (outputDir == "") { outputDir += m->hasPath(globaldata->inputFileName); }
+                               fileroot = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName));
                        
-                               openOutputFile(fileroot+ tag + ".sabund",       sabundFile);
-                               openOutputFile(fileroot+ tag + ".rabund",       rabundFile);
-                               openOutputFile(fileroot+ tag + ".list",         listFile);
+                               m->openOutputFile(fileroot+ tag + ".sabund",    sabundFile);
+                               m->openOutputFile(fileroot+ tag + ".rabund",    rabundFile);
+                               m->openOutputFile(fileroot+ tag + ".list",              listFile);
                                
                                outputNames.push_back(fileroot+ tag + ".sabund");
                                outputNames.push_back(fileroot+ tag + ".rabund");
@@ -169,9 +169,9 @@ int ClusterCommand::execute(){
                                return 0;
                        }
                
-                       if (print_start && isTrue(timing)) {
+                       if (print_start && m->isTrue(timing)) {
                                m->mothurOut("Clustering (" + tag + ") dist " + toString(matrix->getSmallDist()) + "/" 
-                                       + toString(roundDist(matrix->getSmallDist(), precision)) 
+                                       + toString(m->roundDist(matrix->getSmallDist(), precision)) 
                                        + "\t(precision: " + toString(precision) + ", Nodes: " + toString(matrix->getNNodes()) + ")");
                                cout.flush();
                                print_start = false;
@@ -184,9 +184,9 @@ int ClusterCommand::execute(){
                        float dist = matrix->getSmallDist();
                        float rndDist;
                        if (hard) {
-                               rndDist = ceilDist(dist, precision); 
+                               rndDist = m->ceilDist(dist, precision); 
                        }else{
-                               rndDist = roundDist(dist, precision); 
+                               rndDist = m->roundDist(dist, precision); 
                        }
 
                        if(previousDist <= 0.0000 && dist != previousDist){
@@ -202,7 +202,7 @@ int ClusterCommand::execute(){
                        oldList = *list;
                }
 
-               if (print_start && isTrue(timing)) {
+               if (print_start && m->isTrue(timing)) {
                        m->mothurOut("Clustering (" + tag + ") for distance " + toString(previousDist) + "/" + toString(rndPreviousDist) 
                                         + "\t(precision: " + toString(precision) + ", Nodes: " + toString(matrix->getNNodes()) + ")");
                        cout.flush();
@@ -233,8 +233,8 @@ int ClusterCommand::execute(){
                listFile.close();
        
                if (saveCutoff != cutoff) { 
-                       if (hard)       {  saveCutoff = ceilDist(saveCutoff, precision);        }
-                       else            {       saveCutoff = roundDist(saveCutoff, precision);  }
+                       if (hard)       {  saveCutoff = m->ceilDist(saveCutoff, precision);     }
+                       else            {       saveCutoff = m->roundDist(saveCutoff, precision);  }
 
                        m->mothurOut("changed cutoff to " + toString(cutoff)); m->mothurOutEndLine(); 
                }
@@ -245,7 +245,7 @@ int ClusterCommand::execute(){
                m->mothurOutEndLine();
 
                
-               //if (isTrue(timing)) {
+               //if (m->isTrue(timing)) {
                        m->mothurOut("It took " + toString(time(NULL) - estart) + " seconds to cluster"); m->mothurOutEndLine();
                //}
                
@@ -262,7 +262,7 @@ int ClusterCommand::execute(){
 
 void ClusterCommand::printData(string label){
        try {
-               if (isTrue(timing)) {
+               if (m->isTrue(timing)) {
                        m->mothurOut("\tTime: " + toString(time(NULL) - start) + "\tsecs for " + toString(oldRAbund.getNumBins()) 
                     + "\tclusters. Updates: " + toString(loops)); m->mothurOutEndLine();
                }
@@ -271,7 +271,7 @@ void ClusterCommand::printData(string label){
                start = time(NULL);
 
                oldRAbund.setLabel(label);
-               if (isTrue(showabund)) {
+               if (m->isTrue(showabund)) {
                        oldRAbund.getSAbundVector().print(cout);
                }
                oldRAbund.print(rabundFile);
index ced5a6384c792188d34068f4d899ff5ef306adeb..fb1a7029636d3ee2e28045c8d1b233bec7c8a889 100644 (file)
@@ -57,7 +57,7 @@ ClusterSplitCommand::ClusterSplitCommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -65,7 +65,7 @@ ClusterSplitCommand::ClusterSplitCommand(string option)  {
                                it = parameters.find("column");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["column"] = inputDir + it->second;           }
                                }
@@ -73,7 +73,7 @@ ClusterSplitCommand::ClusterSplitCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -81,7 +81,7 @@ ClusterSplitCommand::ClusterSplitCommand(string option)  {
                                it = parameters.find("taxonomy");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["taxonomy"] = inputDir + it->second;         }
                                }
@@ -89,7 +89,7 @@ ClusterSplitCommand::ClusterSplitCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -142,10 +142,10 @@ ClusterSplitCommand::ClusterSplitCommand(string option)  {
                        convert(temp, precision); 
                        
                        temp = validParameter.validFile(parameters, "hard", false);                     if (temp == "not found") { temp = "F"; }
-                       hard = isTrue(temp);
+                       hard = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "large", false);                    if (temp == "not found") { temp = "F"; }
-                       large = isTrue(temp);
+                       large = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "processors", false);       if (temp == "not found"){       temp = "1";                             }
                        convert(temp, processors); 
@@ -271,7 +271,7 @@ int ClusterSplitCommand::execute(){
                        if (namefile == "") {  //you need to make a namefile for split matrix
                                ofstream out;
                                namefile = phylipfile + ".names";
-                               openOutputFile(namefile, out);
+                               m->openOutputFile(namefile, out);
                                for (int i = 0; i < listToMakeNameFile->getNumBins(); i++) {
                                        string bin = listToMakeNameFile->get(i);
                                        out << bin << '\t' << bin << endl;
@@ -497,13 +497,13 @@ int ClusterSplitCommand::execute(){
                                        for(int i=0;i<processors;i++){
                                                string filename = toString(processIDS[i]) + ".temp";
                                                ifstream in;
-                                               openInputFile(filename, in);
+                                               m->openInputFile(filename, in);
                                                
-                                               in >> tag; gobble(in);
+                                               in >> tag; m->gobble(in);
                                                
                                                while(!in.eof()) {
                                                        string tempName;
-                                                       in >> tempName; gobble(in);
+                                                       in >> tempName; m->gobble(in);
                                                        listFileNames.push_back(tempName);
                                                }
                                                in.close();
@@ -512,15 +512,15 @@ int ClusterSplitCommand::execute(){
                                                //get labels
                                                filename = toString(processIDS[i]) + ".temp.labels";
                                                ifstream in2;
-                                               openInputFile(filename, in2);
+                                               m->openInputFile(filename, in2);
                                                
                                                float tempCutoff;
-                                               in2 >> tempCutoff; gobble(in2);
+                                               in2 >> tempCutoff; m->gobble(in2);
                                                if (tempCutoff < cutoff) { cutoff = tempCutoff; }
                                                
                                                while(!in2.eof()) {
                                                        string tempName;
-                                                       in2 >> tempName; gobble(in2);
+                                                       in2 >> tempName; m->gobble(in2);
                                                        if (labels.count(tempName) == 0) { labels.insert(tempName); }
                                                }
                                                in2.close();
@@ -586,12 +586,12 @@ map<float, int> ClusterSplitCommand::completeListFile(vector<string> listNames,
                //read in singletons
                if (singleton != "none") {
                        ifstream in;
-                       openInputFile(singleton, in);
+                       m->openInputFile(singleton, in);
                                
                        string firstCol, secondCol;
                        listSingle = new ListVector();
                        while (!in.eof()) {
-                               in >> firstCol >> secondCol; gobble(in);
+                               in >> firstCol >> secondCol; m->gobble(in);
                                listSingle->push_back(secondCol);
                        }
                        in.close();
@@ -632,7 +632,7 @@ map<float, int> ClusterSplitCommand::completeListFile(vector<string> listNames,
                        
                        string filledInList = listNames[k] + "filledInTemp";
                        ofstream outFilled;
-                       openOutputFile(filledInList, outFilled);
+                       m->openOutputFile(filledInList, outFilled);
        
                        //for each label needed
                        for(int l = 0; l < orderFloat.size(); l++){
@@ -689,12 +689,12 @@ map<float, int> ClusterSplitCommand::completeListFile(vector<string> listNames,
 //**********************************************************************************************************************
 int ClusterSplitCommand::mergeLists(vector<string> listNames, map<float, int> userLabels, ListVector* listSingle){
        try {
-               if (outputDir == "") { outputDir += hasPath(distfile); }
-               fileroot = outputDir + getRootName(getSimpleName(distfile));
+               if (outputDir == "") { outputDir += m->hasPath(distfile); }
+               fileroot = outputDir + m->getRootName(m->getSimpleName(distfile));
                
-               openOutputFile(fileroot+ tag + ".sabund",       outSabund);
-               openOutputFile(fileroot+ tag + ".rabund",       outRabund);
-               openOutputFile(fileroot+ tag + ".list",         outList);
+               m->openOutputFile(fileroot+ tag + ".sabund",    outSabund);
+               m->openOutputFile(fileroot+ tag + ".rabund",    outRabund);
+               m->openOutputFile(fileroot+ tag + ".list",              outList);
                                
                outputNames.push_back(fileroot+ tag + ".sabund");
                outputNames.push_back(fileroot+ tag + ".rabund");
@@ -718,7 +718,7 @@ int ClusterSplitCommand::mergeLists(vector<string> listNames, map<float, int> us
                        if (listSingle != NULL) {
                                for (int j = 0; j < listSingle->getNumBins(); j++) {
                                        outList << listSingle->get(j) << '\t';
-                                       rabund->push_back(getNumNames(listSingle->get(j)));
+                                       rabund->push_back(m->getNumNames(listSingle->get(j)));
                                }
                        }
                        
@@ -735,7 +735,7 @@ int ClusterSplitCommand::mergeLists(vector<string> listNames, map<float, int> us
                                else {          
                                        for (int j = 0; j < list->getNumBins(); j++) {
                                                outList << list->get(j) << '\t';
-                                               rabund->push_back(getNumNames(list->get(j)));
+                                               rabund->push_back(m->getNumNames(list->get(j)));
                                        }
                                        delete list;
                                }
@@ -775,7 +775,7 @@ void ClusterSplitCommand::printData(ListVector* oldList){
                RAbundVector oldRAbund = oldList->getRAbundVector();
                
                oldRAbund.setLabel(label);
-               if (isTrue(showabund)) {
+               if (m->isTrue(showabund)) {
                        oldRAbund.getSAbundVector().print(cout);
                }
                oldRAbund.print(outRabund);
@@ -811,7 +811,7 @@ int ClusterSplitCommand::createProcesses(vector < vector < map<string, string> >
                                //write out names to file
                                string filename = toString(getpid()) + ".temp";
                                ofstream out;
-                               openOutputFile(filename, out);
+                               m->openOutputFile(filename, out);
                                out << tag << endl;
                                for (int j = 0; j < listFileNames.size(); j++) { out << listFileNames[j] << endl;  }
                                out.close();
@@ -819,7 +819,7 @@ int ClusterSplitCommand::createProcesses(vector < vector < map<string, string> >
                                //print out labels
                                ofstream outLabels;
                                filename = toString(getpid()) + ".temp.labels";
-                               openOutputFile(filename, outLabels);
+                               m->openOutputFile(filename, outLabels);
                                
                                outLabels << cutoff << endl;
                                for (set<string>::iterator it = labels.begin(); it != labels.end(); it++) {
@@ -917,11 +917,11 @@ vector<string> ClusterSplitCommand::cluster(vector< map<string, string> > distNa
                        else if(method == "average"){   cluster = new AverageLinkage(rabund, list, matrix, cutoff, method);     }
                        tag = cluster->getTag();
                
-                       if (outputDir == "") { outputDir += hasPath(thisDistFile); }
-                       fileroot = outputDir + getRootName(getSimpleName(thisDistFile));
+                       if (outputDir == "") { outputDir += m->hasPath(thisDistFile); }
+                       fileroot = outputDir + m->getRootName(m->getSimpleName(thisDistFile));
                        
                        ofstream listFile;
-                       openOutputFile(fileroot+ tag + ".list", listFile);
+                       m->openOutputFile(fileroot+ tag + ".list",      listFile);
                
                        listFileNames.push_back(fileroot+ tag + ".list");
                
@@ -950,9 +950,9 @@ vector<string> ClusterSplitCommand::cluster(vector< map<string, string> > distNa
                                float dist = matrix->getSmallDist();
                                float rndDist;
                                if (hard) {
-                                       rndDist = ceilDist(dist, precision); 
+                                       rndDist = m->ceilDist(dist, precision); 
                                }else{
-                                       rndDist = roundDist(dist, precision); 
+                                       rndDist = m->roundDist(dist, precision); 
                                }
 
                                if(previousDist <= 0.0000 && dist != previousDist){
@@ -995,8 +995,8 @@ vector<string> ClusterSplitCommand::cluster(vector< map<string, string> > distNa
                        remove(thisNamefile.c_str());
                        
                        if (saveCutoff != cutoff) { 
-                               if (hard)       {  saveCutoff = ceilDist(saveCutoff, precision);        }
-                               else            {       saveCutoff = roundDist(saveCutoff, precision);  }
+                               if (hard)       {  saveCutoff = m->ceilDist(saveCutoff, precision);     }
+                               else            {       saveCutoff = m->roundDist(saveCutoff, precision);  }
                        
                                m->mothurOut("Cutoff was " + toString(cutoff) + " changed cutoff to " + toString(saveCutoff)); m->mothurOutEndLine();  
                        }
index ca48d75d276a274ff5b2259ffe211b653a02f1a9..2d952fa9b9a60ea762a83f967dc7e6c125fff61d 100644 (file)
@@ -73,7 +73,7 @@ CollectCommand::CollectCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -88,7 +88,7 @@ CollectCommand::CollectCommand(string option)  {
                        else { 
                                 if (calc == "default")  {  calc = "sobs-chao-ace-jack-shannon-npshannon-simpson";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
 
                        string temp;
                        temp = validParameter.validFile(parameters, "freq", false);                     if (temp == "not found") { temp = "100"; }
@@ -150,8 +150,8 @@ int CollectCommand::execute(){
                        
                        if (m->control_pressed) {  for (int i = 0; i < outputNames.size(); i++) {       remove(outputNames[i].c_str());         }  globaldata->Groups.clear(); if (hadShared != "") {  globaldata->setSharedFile(hadShared); globaldata->setFormat("sharedfile");  } return 0; }
                        
-                       if (outputDir == "") { outputDir += hasPath(inputFileNames[p]); }
-                       string fileNameRoot = outputDir + getRootName(getSimpleName(inputFileNames[p]));
+                       if (outputDir == "") { outputDir += m->hasPath(inputFileNames[p]); }
+                       string fileNameRoot = outputDir + m->getRootName(m->getSimpleName(inputFileNames[p]));
                        globaldata->inputFileName = inputFileNames[p];
                
                        if (inputFileNames.size() > 1) {
@@ -296,7 +296,7 @@ int CollectCommand::execute(){
                                        
                                }
                                //you have a label the user want that is smaller than this label and the last label has not already been processed 
-                               if ((anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                               if ((m->anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = order->getLabel();
                                        
                                        delete order;
@@ -414,7 +414,7 @@ vector<string> CollectCommand::parseSharedFile(string filename) {
                input = globaldata->ginput;
                vector<SharedRAbundVector*> lookup = input->getSharedRAbundVectors();
                
-               string sharedFileRoot = getRootName(filename);
+               string sharedFileRoot = m->getRootName(filename);
                
                //clears file before we start to write to it below
                for (int i=0; i<lookup.size(); i++) {
@@ -433,7 +433,7 @@ vector<string> CollectCommand::parseSharedFile(string filename) {
                
                        for (int i = 0; i < lookup.size(); i++) {
                                RAbundVector rav = lookup[i]->getRAbundVector();
-                               openOutputFileAppend(sharedFileRoot + lookup[i]->getGroup() + ".rabund", *(filehandles[lookup[i]->getGroup()]));
+                               m->openOutputFileAppend(sharedFileRoot + lookup[i]->getGroup() + ".rabund", *(filehandles[lookup[i]->getGroup()]));
                                rav.print(*(filehandles[lookup[i]->getGroup()]));
                                (*(filehandles[lookup[i]->getGroup()])).close();
                        }
index 40b911bb8c844ad252a714383ce93109772209a0..c0b8248e58981473b1f7bf70709863c36c68992b 100644 (file)
@@ -79,7 +79,7 @@ CollectSharedCommand::CollectSharedCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -94,12 +94,12 @@ CollectSharedCommand::CollectSharedCommand(string option)  {
                        else { 
                                 if (calc == "default")  {  calc = "sharedsobs-sharedchao-sharedace-jabund-sorabund-jclass-sorclass-jest-sorest-thetayc-thetan";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
                        
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                        }
                        globaldata->Groups = Groups;
                        
@@ -108,12 +108,12 @@ CollectSharedCommand::CollectSharedCommand(string option)  {
                        convert(temp, freq); 
                        
                        temp = validParameter.validFile(parameters, "all", false);                              if (temp == "not found") { temp = "false"; }
-                       all = isTrue(temp);
+                       all = m->isTrue(temp);
                                                
                        if (abort == false) {
                                
-                               if (outputDir == "") { outputDir += hasPath(globaldata->inputFileName); }
-                               string fileNameRoot = outputDir + getRootName(getSimpleName(globaldata->inputFileName));
+                               if (outputDir == "") { outputDir += m->hasPath(globaldata->inputFileName); }
+                               string fileNameRoot = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName));
                                format = globaldata->getFormat();
                                int i;
                                
@@ -283,7 +283,7 @@ int CollectSharedCommand::execute(){
                        }
                        
                        //you have a label the user want that is smaller than this label and the last label has not already been processed
-                       if ((anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = order->getLabel();
                                
                                delete order;
index 2fef5b16a062ed99cd90c2fc43e7617c25d5ee13..a65d56fb86c2a8a91ac2915def73d05c7e53b6d6 100644 (file)
@@ -68,7 +68,7 @@ int ConcensusCommand::execute(){
                
                //open file for pairing not included in the tree
                notIncluded = filename + ".cons.pairs";
-               openOutputFile(notIncluded, out2);
+               m->openOutputFile(notIncluded, out2);
                
                consensusTree = new Tree();
                
@@ -151,7 +151,7 @@ int ConcensusCommand::execute(){
                }
                
                outputFile = filename + ".cons.tre";
-               openOutputFile(outputFile, out);
+               m->openOutputFile(outputFile, out);
                
                consensusTree->printForBoot(out);
                
index 94b6c938009bb412ad62420bf6dfea2b6428e6e7..a5a0ec0ed7e35c49440b3ce0ffa0abef91ee951a 100644 (file)
@@ -290,10 +290,10 @@ vector<float> DeCalculator::calcFreq(vector<Sequence*> seqs, string filename) {
        try {
 
                vector<float> prob;
-               string freqfile = getRootName(filename) + "freq";
+               string freqfile = m->getRootName(filename) + "freq";
                ofstream outFreq;
                
-               openOutputFile(freqfile, outFreq);
+               m->openOutputFile(freqfile, outFreq);
                
                outFreq << "#" << m->getVersion() << endl;
                
index 663a6bf81d0fbbda91052e6cc0433df8e2d7fb4a..b3fa7ddd397e973b7ac3895acfb8c0ebf0505f1f 100644 (file)
@@ -41,7 +41,7 @@ DeconvoluteCommand::DeconvoluteCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -49,7 +49,7 @@ DeconvoluteCommand::DeconvoluteCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -64,7 +64,7 @@ DeconvoluteCommand::DeconvoluteCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(inFastaName); //if user entered a file with a path then preserve it        
+                               outputDir += m->hasPath(inFastaName); //if user entered a file with a path then preserve it     
                        }
                        
                        oldNameMapFName = validParameter.validFile(parameters, "name", true);
@@ -102,8 +102,8 @@ int DeconvoluteCommand::execute() {
                if (abort == true) { return 0; }
 
                //prepare filenames and open files
-               string outNameFile = outputDir + getRootName(getSimpleName(inFastaName)) + "names";
-               string outFastaFile = outputDir + getRootName(getSimpleName(inFastaName)) + "unique" + getExtension(inFastaName);
+               string outNameFile = outputDir + m->getRootName(m->getSimpleName(inFastaName)) + "names";
+               string outFastaFile = outputDir + m->getRootName(m->getSimpleName(inFastaName)) + "unique" + m->getExtension(inFastaName);
                
                FastaMap fastamap;
        
index 8f8a5c3901d845b27cdbeb5a3f0c34df0b587ce2..6a9c25eb74d240404b16f2677ec30b047781a159 100644 (file)
@@ -43,25 +43,25 @@ DegapSeqsCommand::DegapSeqsCommand(string option)  {
                        fastafile = validParameter.validFile(parameters, "fasta", false);
                        if (fastafile == "not found") { fastafile = ""; m->mothurOut("fasta is a required parameter for the degap.seqs command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fastafile, fastaFileNames);
+                               m->splitAtDash(fastafile, fastaFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastaFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastaFileNames[i]);
+                                               string path = m->hasPath(fastaFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastaFileNames[i] = inputDir + fastaFileNames[i];               }
                                        }
        
                                        ifstream in;
-                                       int ableToOpen = openInputFile(fastaFileNames[i], in, "noerror");
+                                       int ableToOpen = m->openInputFile(fastaFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastaFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastaFileNames[i]);
                                                        m->mothurOut("Unable to open " + fastaFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastaFileNames[i] = tryPath;
                                                }
                                        }
@@ -83,7 +83,7 @@ DegapSeqsCommand::DegapSeqsCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
 
                }
@@ -128,16 +128,16 @@ int DegapSeqsCommand::execute(){
                                
                        m->mothurOut("Degapping sequences from " + fastaFileNames[s] + " ..." ); m->mothurOutEndLine();
                        ifstream inFASTA;
-                       openInputFile(fastaFileNames[s], inFASTA);
+                       m->openInputFile(fastaFileNames[s], inFASTA);
                        
                        ofstream outFASTA;
-                       string degapFile = outputDir + getRootName(getSimpleName(fastaFileNames[s])) + "ng.fasta";
-                       openOutputFile(degapFile, outFASTA);
+                       string degapFile = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + "ng.fasta";
+                       m->openOutputFile(degapFile, outFASTA);
                        
                        while(!inFASTA.eof()){
                                if (m->control_pressed) {  inFASTA.close();  outFASTA.close(); remove(degapFile.c_str()); for (int j = 0; j < outputNames.size(); j++) {        remove(outputNames[j].c_str()); } return 0; }
                                 
-                               Sequence currSeq(inFASTA);  gobble(inFASTA);
+                               Sequence currSeq(inFASTA);  m->gobble(inFASTA);
                                if (currSeq.getName() != "") {
                                        outFASTA << ">" << currSeq.getName() << endl;
                                        outFASTA << currSeq.getUnaligned() << endl;
index 36bae2e4b7c4d6a843aa6b8ed023faa5a9a74786..351a3f4f758a28bb78f8277e520ae74092e5b740 100644 (file)
@@ -48,7 +48,7 @@ DistanceCommand::DistanceCommand(string option) {
                                it2 = parameters.find("fasta");
                                //user has given a template file
                                if(it2 != parameters.end()){ 
-                                       path = hasPath(it2->second);
+                                       path = m->hasPath(it2->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it2->second;           }
                                }
@@ -56,7 +56,7 @@ DistanceCommand::DistanceCommand(string option) {
                                it2 = parameters.find("oldfasta");
                                //user has given a template file
                                if(it2 != parameters.end()){ 
-                                       path = hasPath(it2->second);
+                                       path = m->hasPath(it2->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["oldfasta"] = inputDir + it2->second;                }
                                }
@@ -64,7 +64,7 @@ DistanceCommand::DistanceCommand(string option) {
                                it2 = parameters.find("column");
                                //user has given a template file
                                if(it2 != parameters.end()){ 
-                                       path = hasPath(it2->second);
+                                       path = m->hasPath(it2->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["column"] = inputDir + it2->second;          }
                                }
@@ -76,7 +76,7 @@ DistanceCommand::DistanceCommand(string option) {
                        else if (fastafile == "not open") { abort = true; }     
                        else{
                                ifstream inFASTA;
-                               openInputFile(fastafile, inFASTA);
+                               m->openInputFile(fastafile, inFASTA);
                                alignDB = SequenceDB(inFASTA); 
                                inFASTA.close();
                        }
@@ -92,7 +92,7 @@ DistanceCommand::DistanceCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
 
                        //check for optional parameter and set defaults
@@ -102,7 +102,7 @@ DistanceCommand::DistanceCommand(string option) {
                        else { 
                                 if (calc == "default")  {  calc = "onegap";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
 
                        string temp;
                        temp = validParameter.validFile(parameters, "countends", false);        if(temp == "not found"){        temp = "T";     }
@@ -124,7 +124,7 @@ DistanceCommand::DistanceCommand(string option) {
                        
                        ValidCalculators validCalculator;
                        
-                       if (isTrue(countends) == true) {
+                       if (m->isTrue(countends) == true) {
                                for (int i=0; i<Estimators.size(); i++) {
                                        if (validCalculator.isValidCalculator("distance", Estimators[i]) == true) { 
                                                if (Estimators[i] == "nogaps")                  {       distCalculator = new ignoreGaps();      }
@@ -207,12 +207,12 @@ int DistanceCommand::execute(){
                string outputFile;
                                
                if (output == "lt") { //does the user want lower triangle phylip formatted file 
-                       outputFile = outputDir + getRootName(getSimpleName(fastafile)) + "phylip.dist";
+                       outputFile = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "phylip.dist";
                        remove(outputFile.c_str());
                        
                        //output numSeqs to phylip formatted dist file
                }else if (output == "column") { //user wants column format
-                       outputFile = outputDir + getRootName(getSimpleName(fastafile)) + "dist";
+                       outputFile = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "dist";
                        
                        //so we don't accidentally overwrite
                        if (outputFile == column) { 
@@ -222,7 +222,7 @@ int DistanceCommand::execute(){
                        
                        remove(outputFile.c_str());
                }else { //assume square
-                       outputFile = outputDir + getRootName(getSimpleName(fastafile)) + "square.dist";
+                       outputFile = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "square.dist";
                        remove(outputFile.c_str());
                }
                
@@ -367,7 +367,7 @@ int DistanceCommand::execute(){
                        
                        //append and remove temp files
                        for (; it != processIDS.end(); it++) {
-                               appendFiles((outputFile + toString(it->second) + ".temp"), outputFile);
+                               m->appendFiles((outputFile + toString(it->second) + ".temp"), outputFile);
                                remove((outputFile + toString(it->second) + ".temp").c_str());
                        }
                }
@@ -390,7 +390,7 @@ int DistanceCommand::execute(){
                ifstream fileHandle;
                fileHandle.open(outputFile.c_str());
                if(fileHandle) {
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                        if (fileHandle.eof()) { m->mothurOut(outputFile + " is blank. This can result if there are no distances below your cutoff.");  m->mothurOutEndLine(); }
                }
                
@@ -399,10 +399,10 @@ int DistanceCommand::execute(){
                        //we had to rename the column file so we didnt overwrite above, but we want to keep old name
                        if (outputFile == column) { 
                                string tempcolumn = column + ".old";
-                               appendFiles(tempcolumn, outputFile);
+                               m->appendFiles(tempcolumn, outputFile);
                                remove(tempcolumn.c_str());
                        }else{
-                               appendFiles(outputFile, column);
+                               m->appendFiles(outputFile, column);
                                remove(outputFile.c_str());
                                outputFile = column;
                        }
@@ -666,7 +666,7 @@ int DistanceCommand::convertMatrix(string outputFile) {
        try{
 
                //sort file by first column so the distances for each row are together
-               string outfile = getRootName(outputFile) + "sorted.dist.temp";
+               string outfile = m->getRootName(outputFile) + "sorted.dist.temp";
                
                //use the unix sort 
                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
@@ -680,10 +680,10 @@ int DistanceCommand::convertMatrix(string outputFile) {
 
                //output to new file distance for each row and save positions in file where new row begins
                ifstream in;
-               openInputFile(outfile, in);
+               m->openInputFile(outfile, in);
                
                ofstream out;
-               openOutputFile(outputFile, out);
+               m->openOutputFile(outputFile, out);
                
                out.setf(ios::fixed, ios::floatfield); out.setf(ios::showpoint);
 
@@ -701,12 +701,12 @@ int DistanceCommand::convertMatrix(string outputFile) {
                rowDists[first] = 0.00; //distance to yourself is 0.0
                
                in.seekg(0);
-               //openInputFile(outfile, in);
+               //m->openInputFile(outfile, in);
                
                while(!in.eof()) {
                        if (m->control_pressed) { in.close(); remove(outfile.c_str()); out.close(); return 0; }
                        
-                       in >> first >> second >> dist; gobble(in);
+                       in >> first >> second >> dist; m->gobble(in);
                                
                        if (first != currentRow) {
                                //print out last row
@@ -754,7 +754,7 @@ int DistanceCommand::convertToLowerTriangle(string outputFile) {
        try{
 
                //sort file by first column so the distances for each row are together
-               string outfile = getRootName(outputFile) + "sorted.dist.temp";
+               string outfile = m->getRootName(outputFile) + "sorted.dist.temp";
                
                //use the unix sort 
                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
@@ -768,10 +768,10 @@ int DistanceCommand::convertToLowerTriangle(string outputFile) {
 
                //output to new file distance for each row and save positions in file where new row begins
                ifstream in;
-               openInputFile(outfile, in);
+               m->openInputFile(outfile, in);
                
                ofstream out;
-               openOutputFile(outputFile, out);
+               m->openOutputFile(outputFile, out);
                
                out.setf(ios::fixed, ios::floatfield); out.setf(ios::showpoint);
 
@@ -791,12 +791,12 @@ int DistanceCommand::convertToLowerTriangle(string outputFile) {
                rowDists[first] = 0.00; //distance to yourself is 0.0
                
                in.seekg(0);
-               //openInputFile(outfile, in);
+               //m->openInputFile(outfile, in);
                
                while(!in.eof()) {
                        if (m->control_pressed) { in.close(); remove(outfile.c_str()); out.close(); return 0; }
                        
-                       in >> first >> second >> dist; gobble(in);
+                       in >> first >> second >> dist; m->gobble(in);
                                
                        if (first != currentRow) {
                                //print out last row
@@ -853,7 +853,7 @@ bool DistanceCommand::sanityCheck() {
                
                //make sure the 2 fasta files have the same alignment length
                ifstream in;
-               openInputFile(fastafile, in);
+               m->openInputFile(fastafile, in);
                int fastaAlignLength = 0;
                if (in) { 
                        Sequence tempIn(in);
@@ -862,7 +862,7 @@ bool DistanceCommand::sanityCheck() {
                in.close();
                
                ifstream in2;
-               openInputFile(oldfastafile, in2);
+               m->openInputFile(oldfastafile, in2);
                int oldfastaAlignLength = 0;
                if (in2) { 
                        Sequence tempIn2(in2);
@@ -876,7 +876,7 @@ bool DistanceCommand::sanityCheck() {
                set<string> namesOldFasta;
                
                ifstream inFasta;
-               openInputFile(oldfastafile, inFasta);
+               m->openInputFile(oldfastafile, inFasta);
                
                while (!inFasta.eof()) {
                        if (m->control_pressed) {  inFasta.close(); return good;  }
@@ -888,25 +888,25 @@ bool DistanceCommand::sanityCheck() {
                                alignDB.push_back(temp);  //add to DB
                        }
                        
-                       gobble(inFasta);
+                       m->gobble(inFasta);
                }
                
                inFasta.close();
                
                //read through the column file checking names and removing distances above the cutoff
                ifstream inDist;
-               openInputFile(column, inDist);
+               m->openInputFile(column, inDist);
                
                ofstream outDist;
                string outputFile = column + ".temp";
-               openOutputFile(outputFile, outDist);
+               m->openOutputFile(outputFile, outDist);
                
                string name1, name2;
                float dist;
                while (!inDist.eof()) {
                        if (m->control_pressed) {  inDist.close(); outDist.close(); remove(outputFile.c_str()); return good;  }
                
-                       inDist >> name1 >> name2 >> dist; gobble(inDist);
+                       inDist >> name1 >> name2 >> dist; m->gobble(inDist);
                        
                        //both names are in fasta file and distance is below cutoff
                        if ((namesOldFasta.count(name1) == 0) || (namesOldFasta.count(name2) == 0)) {  good = false; break;  }
@@ -929,20 +929,20 @@ bool DistanceCommand::sanityCheck() {
                
        }
        catch(exception& e) {
-               m->errorOut(e, "DistanceCommand", "appendFiles");
+               m->errorOut(e, "DistanceCommand", "m->appendFiles");
                exit(1);
        }
 }
 
 /**************************************************************************************************
-void DistanceCommand::appendFiles(string temp, string filename) {
+void DistanceCommand::m->appendFiles(string temp, string filename) {
        try{
                ofstream output;
                ifstream input;
        
                //open output file in append mode
-               openOutputFileAppend(filename, output);
-               openInputFile(temp, input);
+               m->openOutputFileAppend(filename, output);
+               m->openInputFile(temp, input);
                
                while(char c = input.get()){
                        if(input.eof())         {       break;                  }
@@ -953,7 +953,7 @@ void DistanceCommand::appendFiles(string temp, string filename) {
                output.close();
        }
        catch(exception& e) {
-               m->errorOut(e, "DistanceCommand", "appendFiles");
+               m->errorOut(e, "DistanceCommand", "m->appendFiles");
                exit(1);
        }
 }
index 36a1e24b0986bb24a106fb3b72f6cba17f1acfce..4a257612a85c7d1b23ebf37fcc2a8435b996ab60 100644 (file)
@@ -43,7 +43,7 @@ private:
        bool abort;
        vector<string>  Estimators; //holds estimators to be used
        
-       //void appendFiles(string, string);
+       //void m->appendFiles(string, string);
        void createProcesses(string);
        int driver(/*Dist*, SequenceDB, */int, int, string, float);
        
index fbf986dc6965de7d9d269c31f35e99ed85467a9d..5e82d1344d9fa068078e0176b1e655a8290cd42b 100644 (file)
@@ -49,7 +49,7 @@ InteractEngine::InteractEngine(string path){
                
                //break apart path variable by ':'
                vector<string> dirs;
-               splitAtChar(envPath, dirs, delim);
+               mout->splitAtChar(envPath, dirs, delim);
                
                //get path related to mothur
                string mothurPath = "";
@@ -199,7 +199,7 @@ string Engine::getCommand()  {
                                string nextCommand = "";
                                
                                mout->mothurOut("mothur > ");
-                               getline(cin, nextCommand);
+                               m->getline(cin, nextCommand);
                                mout->mothurOutJustToLog(toString(nextCommand));
                                
                                return nextCommand;
@@ -218,7 +218,7 @@ BatchEngine::BatchEngine(string path, string batchFileName){
        try {
                globaldata = GlobalData::getInstance();
        
-               openedBatch = openInputFile(batchFileName, inputBatchFile);
+               openedBatch = mout->openInputFile(batchFileName, inputBatchFile);
                
                string temppath = path.substr(0, (path.find_last_of('m')));
        
@@ -237,7 +237,7 @@ BatchEngine::BatchEngine(string path, string batchFileName){
                        
                        //break apart path variable by ':'
                        vector<string> dirs;
-                       splitAtChar(envPath, dirs, delim);
+                       mout->splitAtChar(envPath, dirs, delim);
                        
                        //get path related to mothur
                        string mothurPath = "";
@@ -370,7 +370,7 @@ bool BatchEngine::getInput(){
                                }
                                
                        }
-                       gobble(inputBatchFile);
+                       mout->gobble(inputBatchFile);
                }
                
                inputBatchFile.close();
@@ -388,7 +388,7 @@ string BatchEngine::getNextCommand(ifstream& inputBatchFile) {
                string nextcommand = "";
                
                if (inputBatchFile.eof()) { nextcommand = "quit()"; }
-               else { nextcommand = getline(inputBatchFile); }
+               else { nextcommand = mout->getline(inputBatchFile); }
                
                return nextcommand;
        }
@@ -425,7 +425,7 @@ ScriptEngine::ScriptEngine(string path, string commandString){
                        
                        //break apart path variable by ':'
                        vector<string> dirs;
-                       splitAtChar(envPath, dirs, delim);
+                       mout->splitAtChar(envPath, dirs, delim);
                        
                        //get path related to mothur
                        string mothurPath = "";
index 36b072121b044490332a8926f0f3f287bf816fab..95d3f3cfe34397f603aecca3dc62bd65dc38c634 100644 (file)
@@ -15,7 +15,7 @@
 void FastaMap::readFastaFile(string inFileName) {
        try {
                ifstream in;
-               openInputFile(inFileName, in);
+               m->openInputFile(inFileName, in);
                string name, sequence, line;
                sequence = "";
                string temp;
@@ -41,7 +41,7 @@ void FastaMap::readFastaFile(string inFileName) {
                                        //                              data[sequence].groupnumber++;
                                }       
                        }
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();             
        }
@@ -56,7 +56,7 @@ void FastaMap::readFastaFile(string inFileName) {
 void FastaMap::readFastaFile(string inFastaFile, string oldNameFileName){ //prints data
        
        ifstream oldNameFile;
-       openInputFile(oldNameFileName, oldNameFile);
+       m->openInputFile(oldNameFileName, oldNameFile);
        
        map<string,string> oldNameMap;
        string name, list;
@@ -65,12 +65,12 @@ void FastaMap::readFastaFile(string inFastaFile, string oldNameFileName){ //prin
                
                oldNameFile >> name >> list;
                oldNameMap[name] = list;
-               gobble(oldNameFile);
+               m->gobble(oldNameFile);
        }
        oldNameFile.close();
        
        ifstream inFASTA;
-       openInputFile(inFastaFile, inFASTA);
+       m->openInputFile(inFastaFile, inFASTA);
        string sequence;
        while(!inFASTA.eof()){
                if (m->control_pressed) { break; }
@@ -93,7 +93,7 @@ void FastaMap::readFastaFile(string inFastaFile, string oldNameFileName){ //prin
                                //                      data[sequence].groupnumber++;
                        }       
                }
-               gobble(inFASTA);
+               m->gobble(inFASTA);
        }
        
        
@@ -147,7 +147,7 @@ int FastaMap::sizeUnique(){ //returns datas size which is the number of unique s
 void FastaMap::printNamesFile(string outFileName){ //prints data
        try {
                ofstream outFile;
-               openOutputFile(outFileName, outFile);
+               m->openOutputFile(outFileName, outFile);
                
                // two column file created with groupname and them list of identical sequence names
                for (map<string,group>::iterator it = data.begin(); it != data.end(); it++) {
@@ -167,7 +167,7 @@ void FastaMap::printNamesFile(string outFileName){ //prints data
 void FastaMap::printCondensedFasta(string outFileName){ //prints data
        try {
                ofstream out;
-               openOutputFile(outFileName, out);
+               m->openOutputFile(outFileName, out);
                //creates a fasta file
                for (map<string,group>::iterator it = data.begin(); it != data.end(); it++) {
                        if (m->control_pressed) { break; }
index 117f8ab1c3a9a93c5f80f38613c4aefa1c898e32..c2432acaaf039b9ef9ac59b287cd55649f606105 100644 (file)
@@ -23,16 +23,16 @@ ThreeColumnFile::~ThreeColumnFile(){
 void ThreeColumnFile::initFile(string label){
        try {
                if(counter != 0){
-                       openOutputFile(outName, outFile);
-                       openInputFile(inName, inFile);
+                       m->openOutputFile(outName, outFile);
+                       m->openInputFile(inName, inFile);
 
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
                
                        outFile <<  inputBuffer << '\t' << label << "\tlci\thci" << endl;
                }
                else{
-                       openOutputFile(outName, outFile);
+                       m->openOutputFile(outName, outFile);
                        outFile << "numsampled\t" << label << "\tlci\thci" << endl;
                }
 
@@ -51,7 +51,7 @@ void ThreeColumnFile::output(int nSeqs, vector<double> data){
        try {
                if(counter != 0){               
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
                
                        outFile <<  inputBuffer << setprecision(4) << '\t' << data[0] << '\t' << data[1] << '\t' << data[2] << endl;
                }
@@ -110,11 +110,11 @@ ColumnFile::~ColumnFile(){
 void ColumnFile::initFile(string label, vector<string> tags){
        try {
                if(counter != 0){
-                       openOutputFile(outName, outFile);
-                       openInputFile(inName, inFile);
+                       m->openOutputFile(outName, outFile);
+                       m->openInputFile(inName, inFile);
 
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
                
                        outFile <<  inputBuffer << '\t'; 
                        for(int i = 0; i < tags.size(); i++) {
@@ -123,7 +123,7 @@ void ColumnFile::initFile(string label, vector<string> tags){
                        outFile << endl;
                }
                else{
-                       openOutputFile(outName, outFile);
+                       m->openOutputFile(outName, outFile);
                        for(int i = 0; i < tags.size(); i++) {
                                outFile << label + tags[i] << '\t';
                        }
@@ -146,7 +146,7 @@ void ColumnFile::output(vector<double> data){
        
                if(counter != 0){               
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
 
                        outFile << inputBuffer << '\t' << setprecision(6) << data[0] << setprecision(iters.length());
                        for (int i = 1; i< data.size(); i++) {
@@ -214,16 +214,16 @@ SharedThreeColumnFile::~SharedThreeColumnFile(){
 void SharedThreeColumnFile::initFile(string label){
        try {
                if(counter != 0){
-                       openOutputFile(outName, outFile);
-                       openInputFile(inName, inFile);
+                       m->openOutputFile(outName, outFile);
+                       m->openInputFile(inName, inFile);
 
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
                
                        outFile <<  inputBuffer << '\t' << label << "\tlci\thci" << endl;
                }
                else{
-                       openOutputFile(outName, outFile);
+                       m->openOutputFile(outName, outFile);
                        outFile << "numsampled\t" << groupLabel << '\t' << label << "\tlci\thci" << endl;
                }
 
@@ -242,7 +242,7 @@ void SharedThreeColumnFile::output(int nSeqs, vector<double> data){
        try {
                if(counter != 0){               
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
                
                        outFile <<  inputBuffer << setprecision(4) << '\t' << data[0] << '\t' << data[1] << '\t' << data[2] << endl;
                }
@@ -303,16 +303,16 @@ OneColumnFile::~OneColumnFile(){
 void OneColumnFile::initFile(string label){
        try {
                if(counter != 0){
-                       openOutputFile(outName, outFile);
-                       openInputFile(inName, inFile);
+                       m->openOutputFile(outName, outFile);
+                       m->openInputFile(inName, inFile);
                
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
                
                        outFile <<  inputBuffer << '\t' << label << endl;
                }
                else{
-                       openOutputFile(outName, outFile);
+                       m->openOutputFile(outName, outFile);
                        outFile << "numsampled\t" << label << endl;
                }
        
@@ -331,7 +331,7 @@ void OneColumnFile::output(int nSeqs, vector<double> data){
        try {   
                if(counter != 0){               
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
                
                        outFile <<  inputBuffer << setprecision(4) << '\t'  << data[0] << endl;
                }
@@ -390,17 +390,17 @@ SharedOneColumnFile::~SharedOneColumnFile(){
 void SharedOneColumnFile::initFile(string label){
        try {
                if(counter != 0){
-                       openOutputFile(outName, outFile);
-                       openInputFile(inName, inFile);
+                       m->openOutputFile(outName, outFile);
+                       m->openInputFile(inName, inFile);
                
                        string inputBuffer;
-                       inputBuffer = getline(inFile);
+                       inputBuffer = m->getline(inFile);
                
                        outFile <<  inputBuffer << '\t' << label  << endl;
 
                }
                else{
-                       openOutputFile(outName, outFile);
+                       m->openOutputFile(outName, outFile);
                        outFile << "sampled\t" << label << endl;
                
                }
@@ -427,7 +427,7 @@ void SharedOneColumnFile::output(int nSeqs, vector<double> data){
                        }
                        if(counter != 0){               
                                string inputBuffer;
-                               inputBuffer = getline(inFile);
+                               inputBuffer = m->getline(inFile);
 
                                outFile <<  inputBuffer << setprecision(2) << '\t' << dataOutput << endl;
                        }
index 13607e78045a35a9a3ac00c675ba6c0b46995f42..21bc8bb5eec729d7b3f59d06d2a6cc6aff09080a 100644 (file)
--- a/filters.h
+++ b/filters.h
@@ -19,7 +19,7 @@
 class Filters {
 
 public:
-       Filters() {};
+       Filters() { m = MothurOut::getInstance(); };
        ~Filters(){};
                
        string getFilter()                      {       return filter;          }
@@ -77,7 +77,7 @@ public:
 
        void doHard(string hard) {
                ifstream fileHandle;
-               openInputFile(hard, fileHandle);
+               m->openInputFile(hard, fileHandle);
        
                fileHandle >> filter;
        
@@ -102,6 +102,7 @@ protected:
        int alignmentLength, numSeqs;
        float soft;
        char trump;
+       MothurOut* m;
 
 };
 
index 2c61465449410bd3ec974924f1f0ce2e97739835..4ee674856223d3ef6ec2e9605437ae915f6e3ac7 100644 (file)
@@ -44,7 +44,7 @@ FilterSeqsCommand::FilterSeqsCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -52,7 +52,7 @@ FilterSeqsCommand::FilterSeqsCommand(string option)  {
                                it = parameters.find("hard");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["hard"] = inputDir + it->second;             }
                                }
@@ -62,25 +62,25 @@ FilterSeqsCommand::FilterSeqsCommand(string option)  {
                        fasta = validParameter.validFile(parameters, "fasta", false);
                        if (fasta == "not found") { m->mothurOut("fasta is a required parameter for the filter.seqs command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fasta, fastafileNames);
+                               m->splitAtDash(fasta, fastafileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastafileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastafileNames[i]);
+                                               string path = m->hasPath(fastafileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastafileNames[i] = inputDir + fastafileNames[i];               }
                                        }
 
                                        ifstream in;
-                                       int ableToOpen = openInputFile(fastafileNames[i], in, "noerror");
+                                       int ableToOpen = m->openInputFile(fastafileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastafileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastafileNames[i]);
                                                        m->mothurOut("Unable to open " + fastafileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastafileNames[i] = tryPath;
                                                }
                                        }
@@ -92,7 +92,7 @@ FilterSeqsCommand::FilterSeqsCommand(string option)  {
                                                fastafileNames.erase(fastafileNames.begin()+i);
                                                i--;
                                        }else{  
-                                               string simpleName = getSimpleName(fastafileNames[i]);
+                                               string simpleName = m->getSimpleName(fastafileNames[i]);
                                                filterFileName += simpleName.substr(0, simpleName.find_first_of('.'));
                                        }
                                        in.close();
@@ -106,7 +106,7 @@ FilterSeqsCommand::FilterSeqsCommand(string option)  {
                                //if the user changes the output directory command factory will send this info to us in the output parameter 
                                outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                        outputDir = ""; 
-                                       outputDir += hasPath(fastafileNames[0]); //if user entered a file with a path then preserve it  
+                                       outputDir += m->hasPath(fastafileNames[0]); //if user entered a file with a path then preserve it       
                                }
                        }
                        //check for optional parameter and set defaults
@@ -174,7 +174,7 @@ int FilterSeqsCommand::execute() {
                if (abort == true) { return 0; }
                
                ifstream inFASTA;
-               openInputFile(fastafileNames[0], inFASTA);
+               m->openInputFile(fastafileNames[0], inFASTA);
                
                Sequence testSeq(inFASTA);
                alignmentLength = testSeq.getAlignLength();
@@ -199,7 +199,7 @@ int FilterSeqsCommand::execute() {
                ofstream outFilter;
                
                string filterFile = outputDir + filterFileName + ".filter";
-               openOutputFile(filterFile, outFilter);
+               m->openOutputFile(filterFile, outFilter);
                outFilter << filter << endl;
                outFilter.close();
                outputNames.push_back(filterFile);
@@ -254,7 +254,7 @@ int FilterSeqsCommand::filterSequences() {
                        
                                for (int i = 0; i < lines.size(); i++) {  delete lines[i];  }  lines.clear();
                                
-                               string filteredFasta = outputDir + getRootName(getSimpleName(fastafileNames[s])) + "filter.fasta";
+                               string filteredFasta = outputDir + m->getRootName(m->getSimpleName(fastafileNames[s])) + "filter.fasta";
 #ifdef USE_MPI 
                                int pid, start, end, numSeqsPerProcessor, num; 
                                int tag = 2001;
@@ -283,7 +283,7 @@ int FilterSeqsCommand::filterSequences() {
 
                                if (pid == 0) { //you are the root process 
                                        
-                                       MPIPos = setFilePosFasta(fastafileNames[s], num); //fills MPIPos, returns numSeqs
+                                       MPIPos = m->setFilePosFasta(fastafileNames[s], num); //fills MPIPos, returns numSeqs
                                        numSeqs += num;
                                        
                                        //send file positions to all processes
@@ -338,7 +338,7 @@ int FilterSeqsCommand::filterSequences() {
                                MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
                                
 #else
-                       vector<unsigned long int> positions = divideFile(fastafileNames[s], processors);
+                       vector<unsigned long int> positions = m->divideFile(fastafileNames[s], processors);
                                
                        for (int i = 0; i < (positions.size()-1); i++) {
                                lines.push_back(new linePair(positions[i], positions[(i+1)]));
@@ -355,7 +355,7 @@ int FilterSeqsCommand::filterSequences() {
                                
                                        //append fasta files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((fastafileNames[s] + toString(processIDS[i]) + ".temp"), filteredFasta);
+                                               m->appendFiles((fastafileNames[s] + toString(processIDS[i]) + ".temp"), filteredFasta);
                                                remove((fastafileNames[s] + toString(processIDS[i]) + ".temp").c_str());
                                        }
                                }
@@ -400,7 +400,7 @@ int FilterSeqsCommand::driverMPIRun(int start, int num, MPI_File& inMPI, MPI_Fil
                        istringstream iss (tempBuf,istringstream::in);
                        delete buf4;
        
-                       Sequence seq(iss);  gobble(iss);
+                       Sequence seq(iss);  m->gobble(iss);
                        
                        if (seq.getName() != "") {
                                string align = seq.getAligned();
@@ -456,10 +456,10 @@ int FilterSeqsCommand::driverMPIRun(int start, int num, MPI_File& inMPI, MPI_Fil
 int FilterSeqsCommand::driverRunFilter(string F, string outputFilename, string inputFilename, linePair* filePos) {     
        try {
                ofstream out;
-               openOutputFile(outputFilename, out);
+               m->openOutputFile(outputFilename, out);
                
                ifstream in;
-               openInputFile(inputFilename, in);
+               m->openInputFile(inputFilename, in);
                                
                in.seekg(filePos->start);
 
@@ -470,7 +470,7 @@ int FilterSeqsCommand::driverRunFilter(string F, string outputFilename, string i
                                
                                if (m->control_pressed) { in.close(); out.close(); return 0; }
                                
-                               Sequence seq(in); gobble(in);
+                               Sequence seq(in); m->gobble(in);
                                if (seq.getName() != "") {
                                        string align = seq.getAligned();
                                        string filterSeq = "";
@@ -528,7 +528,7 @@ int FilterSeqsCommand::createProcessesRunFilter(string F, string filename) {
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = filename +  toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                out << num << endl;
                                out.close();
                                
@@ -545,7 +545,7 @@ int FilterSeqsCommand::createProcessesRunFilter(string F, string filename) {
                for (int i = 0; i < processIDS.size(); i++) {
                        ifstream in;
                        string tempFile =  filename + toString(processIDS[i]) + ".num.temp";
-                       openInputFile(tempFile, in);
+                       m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
                        in.close(); remove(tempFile.c_str());
                }
@@ -570,7 +570,7 @@ string FilterSeqsCommand::createFilter() {
                
                F.setLength(alignmentLength);
                
-               if(trump != '*' || isTrue(vertical) || soft != 0){
+               if(trump != '*' || m->isTrue(vertical) || soft != 0){
                        F.initialize();
                }
                
@@ -578,7 +578,7 @@ string FilterSeqsCommand::createFilter() {
                else                                            {       F.setFilter(string(alignmentLength, '1'));      }
                
                numSeqs = 0;
-               if(trump != '*' || isTrue(vertical) || soft != 0){
+               if(trump != '*' || m->isTrue(vertical) || soft != 0){
                        for (int s = 0; s < fastafileNames.size(); s++) {
                        
                                for (int i = 0; i < lines.size(); i++) {  delete lines[i];  }  lines.clear();
@@ -604,7 +604,7 @@ string FilterSeqsCommand::createFilter() {
                                if (m->control_pressed) {  MPI_File_close(&inMPI);  return 0;  }
                                
                                if (pid == 0) { //you are the root process
-                                               MPIPos = setFilePosFasta(fastafileNames[s], num); //fills MPIPos, returns numSeqs
+                                               MPIPos = m->setFilePosFasta(fastafileNames[s], num); //fills MPIPos, returns numSeqs
                                                numSeqs += num;
                                                
                                                //send file positions to all processes
@@ -646,7 +646,7 @@ string FilterSeqsCommand::createFilter() {
                                MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
                                
 #else
-               vector<unsigned long int> positions = divideFile(fastafileNames[s], processors);
+               vector<unsigned long int> positions = m->divideFile(fastafileNames[s], processors);
                                
                for (int i = 0; i < (positions.size()-1); i++) {
                        lines.push_back(new linePair(positions[i], positions[(i+1)]));
@@ -679,7 +679,7 @@ string FilterSeqsCommand::createFilter() {
                
                MPI_Comm_rank(MPI_COMM_WORLD, &pid); 
                
-               if(trump != '*' || isTrue(vertical) || soft != 0){
+               if(trump != '*' || m->isTrue(vertical) || soft != 0){
                        
                        if (pid == 0) { //only one process should output the filter
                        
@@ -727,8 +727,9 @@ string FilterSeqsCommand::createFilter() {
                
                if (pid == 0) { //only one process should output the filter
 #endif
+
                F.setNumSeqs(numSeqs);
-               if(isTrue(vertical) == 1)       {       F.doVertical(); }
+               if(m->isTrue(vertical) == 1)    {       F.doVertical(); }
                if(soft != 0)                           {       F.doSoft();             }
                filterString = F.getFilter();
                
@@ -764,7 +765,7 @@ int FilterSeqsCommand::driverCreateFilter(Filters& F, string filename, linePair*
        try {
                
                ifstream in;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                                
                in.seekg(filePos->start);
 
@@ -775,12 +776,12 @@ int FilterSeqsCommand::driverCreateFilter(Filters& F, string filename, linePair*
                                
                        if (m->control_pressed) { in.close(); return 1; }
                                        
-                       Sequence seq(in); gobble(in);
+                       Sequence seq(in); m->gobble(in);
                        if (seq.getName() != "") {
                                        if (seq.getAligned().length() != alignmentLength) { m->mothurOut("Sequences are not all the same length, please correct."); m->mothurOutEndLine(); m->control_pressed = true;  }
                                        
                                        if(trump != '*')                        {       F.doTrump(seq);         }
-                                       if(isTrue(vertical) || soft != 0)       {       F.getFreqs(seq);        }
+                                       if(m->isTrue(vertical) || soft != 0)    {       F.getFreqs(seq);        }
                                        cout.flush();
                                        count++;
                        }
@@ -831,7 +832,7 @@ int FilterSeqsCommand::MPICreateFilter(int start, int num, Filters& F, MPI_File&
                        if (seq.getAligned().length() != alignmentLength) {  cout << "Alignment length is " << alignmentLength << " and sequence " << seq.getName() << " has length " << seq.getAligned().length() << ", please correct." << endl; exit(1);  }
                        
                        if(trump != '*'){       F.doTrump(seq); }
-                       if(isTrue(vertical) || soft != 0){      F.getFreqs(seq);        }
+                       if(m->isTrue(vertical) || soft != 0){   F.getFreqs(seq);        }
                        cout.flush();
                                                
                        //report progress
@@ -878,7 +879,7 @@ int FilterSeqsCommand::createProcessesCreateFilter(Filters& F, string filename)
                                //write out filter counts to file
                                filename += toString(getpid()) + "filterValues.temp";
                                ofstream out;
-                               openOutputFile(filename, out);
+                               m->openOutputFile(filename, out);
                                
                                out << num << endl;
                                out << F.getFilter() << endl;
@@ -905,21 +906,21 @@ int FilterSeqsCommand::createProcessesCreateFilter(Filters& F, string filename)
                for (int i = 0; i < processIDS.size(); i++) {
                        string tempFilename = filename + toString(processIDS[i]) + "filterValues.temp";
                        ifstream in;
-                       openInputFile(tempFilename, in);
+                       m->openInputFile(tempFilename, in);
                        
                        int temp, tempNum;
                        string tempFilterString;
 
-                       in >> tempNum; gobble(in); num += tempNum;
+                       in >> tempNum; m->gobble(in); num += tempNum;
 
                        in >> tempFilterString;
                        F.mergeFilter(tempFilterString);
 
-                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.a[k] += temp; }           gobble(in);
-                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.t[k] += temp; }           gobble(in);
-                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.g[k] += temp; }           gobble(in);
-                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.c[k] += temp; }           gobble(in);
-                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.gap[k] += temp; } gobble(in);
+                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.a[k] += temp; }           m->gobble(in);
+                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.t[k] += temp; }           m->gobble(in);
+                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.g[k] += temp; }           m->gobble(in);
+                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.c[k] += temp; }           m->gobble(in);
+                       for (int k = 0; k < alignmentLength; k++) {             in >> temp; F.gap[k] += temp; } m->gobble(in);
                                
                        in.close();
                        remove(tempFilename.c_str());
index 64b85317d1303658627f4ed6cfde1f99b51d3677..2bbcf518b864aa5a5656a271f2922c531e74af11 100644 (file)
@@ -12,7 +12,7 @@
 
 /***********************************************************************/
 FormatColumnMatrix::FormatColumnMatrix(string df) : filename(df){
-       openInputFile(filename, fileHandle);
+       m->openInputFile(filename, fileHandle);
 }
 /***********************************************************************/
 
@@ -35,7 +35,7 @@ int FormatColumnMatrix::read(NameAssignment* nameMap){
                
                ofstream out;
                string tempOutFile = filename + ".temp";
-               openOutputFile(tempOutFile, out);
+               m->openOutputFile(tempOutFile, out);
        
                while(fileHandle && lt == 1){  //let's assume it's a triangular matrix...
                
@@ -68,7 +68,7 @@ int FormatColumnMatrix::read(NameAssignment* nameMap){
                                
                                reading->update(itA->second * nseqs / 2);
                        }
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                }
                out.close();
                fileHandle.close();
@@ -79,7 +79,7 @@ int FormatColumnMatrix::read(NameAssignment* nameMap){
                }else{ squareFile = tempOutFile; }
                
                //sort file by first column so the distances for each row are together
-               string outfile = getRootName(squareFile) + "sorted.dist.temp";
+               string outfile = m->getRootName(squareFile) + "sorted.dist.temp";
                
                //use the unix sort 
                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
@@ -94,10 +94,10 @@ int FormatColumnMatrix::read(NameAssignment* nameMap){
 
                //output to new file distance for each row and save positions in file where new row begins
                ifstream in;
-               openInputFile(outfile, in);
+               m->openInputFile(outfile, in);
                
                distFile = outfile + ".rowFormatted";
-               openOutputFile(distFile, out);
+               m->openOutputFile(distFile, out);
                
                rowPos.resize(nseqs, -1);
                int currentRow;
@@ -117,7 +117,7 @@ int FormatColumnMatrix::read(NameAssignment* nameMap){
                        
                        if (m->control_pressed) { in.close(); out.close(); remove(distFile.c_str()); remove(tempOutFile.c_str()); remove(outfile.c_str()); delete reading; return 0; }
                        
-                       in >> first >> second >> dist; gobble(in);
+                       in >> first >> second >> dist; m->gobble(in);
                        
                        if (first != currentRow) {
                                //save position in file of each new row
index 206df7edfbd915f00947c46d6de07f44fc021c38..60a3b4136810515bc628b334d948fb0d957605d2 100644 (file)
@@ -12,7 +12,7 @@
 
 /***********************************************************************/
 FormatPhylipMatrix::FormatPhylipMatrix(string df) : filename(df) {
-        openInputFile(filename, fileHandle);
+        m->openInputFile(filename, fileHandle);
 }
 /***********************************************************************/
 //not using nameMap
@@ -37,11 +37,11 @@ int FormatPhylipMatrix::read(NameAssignment* nameMap){
                                        fileHandle.close();  //reset file
                                        
                                        //open and get through numSeqs, code below formats rest of file
-                                       openInputFile(filename, fileHandle);
-                                       fileHandle >> nseqs; gobble(fileHandle);
+                                       m->openInputFile(filename, fileHandle);
+                                       fileHandle >> nseqs; m->gobble(fileHandle);
                                        
                                        distFile = filename + ".rowFormatted";
-                                       openOutputFile(distFile, out);
+                                       m->openOutputFile(distFile, out);
                                        break;
                                }
                                if(d == '\n'){
@@ -59,7 +59,7 @@ int FormatPhylipMatrix::read(NameAssignment* nameMap){
                                
                                ofstream outTemp;
                                string tempFile = filename + ".temp";
-                               openOutputFile(tempFile, outTemp);
+                               m->openOutputFile(tempFile, outTemp);
                 
                                //convert to square column matrix
                                for(int i=1;i<nseqs;i++){
@@ -88,7 +88,7 @@ int FormatPhylipMatrix::read(NameAssignment* nameMap){
                                
                                //format from square column to rowFormatted
                                //sort file by first column so the distances for each row are together
-                               string outfile = getRootName(tempFile) + "sorted.dist.temp";
+                               string outfile = m->getRootName(tempFile) + "sorted.dist.temp";
                                
                                //use the unix sort 
                                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
@@ -103,10 +103,10 @@ int FormatPhylipMatrix::read(NameAssignment* nameMap){
 
                                //output to new file distance for each row and save positions in file where new row begins
                                ifstream in;
-                               openInputFile(outfile, in);
+                               m->openInputFile(outfile, in);
                                
                                distFile = outfile + ".rowFormatted";
-                               openOutputFile(distFile, out);
+                               m->openOutputFile(distFile, out);
                                
                                rowPos.resize(nseqs, -1);
                                int currentRow;
@@ -125,7 +125,7 @@ int FormatPhylipMatrix::read(NameAssignment* nameMap){
                                while(!in.eof()) {
                                        if (m->control_pressed) { in.close(); out.close(); remove(tempFile.c_str()); remove(distFile.c_str()); remove(outfile.c_str());  delete reading; return 0; }
 
-                                       in >> first >> second >> dist; gobble(in);
+                                       in >> first >> second >> dist; m->gobble(in);
                                        
                                        if (first != currentRow) {
                                                //save position in file of each new row
@@ -196,7 +196,7 @@ int FormatPhylipMatrix::read(NameAssignment* nameMap){
                                                reading->update(index);
                                        }
                                        
-                                       gobble(fileHandle);
+                                       m->gobble(fileHandle);
                        
                                        //save position in file of each new row
                                        rowPos[i] = out.tellp();
index 817331f8ce06a531c447896707951b2e6ffb7b9d..cf47661bb6a8084740262d8a6b4b157181a2b0ab 100644 (file)
@@ -40,12 +40,12 @@ GetgroupCommand::GetgroupCommand(string option)  {
                        if (abort == false) {
                                //open shared file
                                sharedfile = globaldata->getSharedFile();
-                               openInputFile(sharedfile, in);
+                               m->openInputFile(sharedfile, in);
                
                                //open output file
-                               if (outputDir == "") { outputDir += hasPath(sharedfile); }
-                               outputFile = outputDir + getRootName(getSimpleName(sharedfile)) + "bootGroups";
-                               openOutputFile(outputFile, out);
+                               if (outputDir == "") { outputDir += m->hasPath(sharedfile); }
+                               outputFile = outputDir + m->getRootName(m->getSimpleName(sharedfile)) + "bootGroups";
+                               m->openOutputFile(outputFile, out);
 
                        }
                }
index 1c08eb1fab8905674700bdc440a93ebd38b88a4f..971feb4b33f70f44bcfbabdf6de55caf17bda3cd 100644 (file)
@@ -59,7 +59,7 @@ int GetlabelCommand::execute(){
                
                filename = globaldata->inputFileName;
                ifstream in;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                string label;
                int numBins = 0;
                int count = -1;
index 43280edd76b1c924ed87572412977f682d3d7b17..23c0eaf0dd1852e9406fc600ce09ae8e80042431 100644 (file)
@@ -46,7 +46,7 @@ GetListCountCommand::GetListCountCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -70,7 +70,7 @@ GetListCountCommand::GetListCountCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -160,7 +160,7 @@ int GetListCountCommand::execute(){
                                userLabels.erase(list->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = list->getLabel();
                                
                                delete list;
@@ -245,9 +245,9 @@ int GetListCountCommand::execute(){
 void GetListCountCommand::process(ListVector* list) {
        try {
                string binnames;
-               if (outputDir == "") { outputDir += hasPath(listfile); }
-               string outputFileName = outputDir + getRootName(getSimpleName(listfile)) + list->getLabel() + ".otu";
-               openOutputFile(outputFileName, out);
+               if (outputDir == "") { outputDir += m->hasPath(listfile); }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(listfile)) + list->getLabel() + ".otu";
+               m->openOutputFile(outputFileName, out);
                outputNames.push_back(outputFileName);
                
                m->mothurOut(list->getLabel()); m->mothurOutEndLine();
@@ -262,7 +262,7 @@ void GetListCountCommand::process(ListVector* list) {
                                out << i+1 << '\t' << binnames << endl;
                        }else{ //sort = name
                                vector<string> names;
-                               splitAtComma(binnames, names);
+                               m->splitAtComma(binnames, names);
                                
                                for (int j = 0; j < names.size(); j++) {
                                        out << names[j] << '\t' << i+1 << endl;
index de7d761dc68169f3f0df446f42ca07cd9f3b16aa..6b2570c9808ab9083a06c4fc41439c6fd99b22e2 100644 (file)
@@ -70,7 +70,7 @@ GetOTURepCommand::GetOTURepCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -78,7 +78,7 @@ GetOTURepCommand::GetOTURepCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -86,7 +86,7 @@ GetOTURepCommand::GetOTURepCommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -94,7 +94,7 @@ GetOTURepCommand::GetOTURepCommand(string option)  {
                                it = parameters.find("column");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["column"] = inputDir + it->second;           }
                                }
@@ -102,7 +102,7 @@ GetOTURepCommand::GetOTURepCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -110,7 +110,7 @@ GetOTURepCommand::GetOTURepCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -153,7 +153,7 @@ GetOTURepCommand::GetOTURepCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; allLines = 1;  }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -179,13 +179,13 @@ GetOTURepCommand::GetOTURepCommand(string option)  {
                                        m->mothurOut("You must provide a groupfile to use groups."); m->mothurOutEndLine();
                                        abort = true;
                                }else { 
-                                       splitAtDash(groups, Groups);
+                                       m->splitAtDash(groups, Groups);
                                }
                        }
                        globaldata->Groups = Groups;
                        
                        string temp = validParameter.validFile(parameters, "large", false);             if (temp == "not found") {      temp = "F";     }
-                       large = isTrue(temp);
+                       large = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "precision", false);                        if (temp == "not found") { temp = "100"; }
                        convert(temp, precision); 
@@ -307,7 +307,7 @@ int GetOTURepCommand::execute(){
                        delete nameMap;
                        
                        //openfile for getMap to use
-                       openInputFile(distFile, inRow);
+                       m->openInputFile(distFile, inRow);
                        
                        if (m->control_pressed) { inRow.close(); remove(distFile.c_str()); return 0; }
                }
@@ -322,7 +322,7 @@ int GetOTURepCommand::execute(){
                                names.clear();
                                binnames = globaldata->gListVector->get(i);
                                
-                               splitAtComma(binnames, names);
+                               m->splitAtComma(binnames, names);
                                
                                for (int j = 0; j < names.size(); j++) {
                                        nameToIndex[names[j]] = i;
@@ -386,7 +386,7 @@ int GetOTURepCommand::execute(){
                                        userLabels.erase(list->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = list->getLabel();
                                        
                                        delete list;
@@ -489,7 +489,7 @@ int GetOTURepCommand::execute(){
 void GetOTURepCommand::readNamesFile() {
        try {
                vector<string> dupNames;
-               openInputFile(namefile, inNames);
+               m->openInputFile(namefile, inNames);
                
                string name, names, sequence;
        
@@ -500,7 +500,7 @@ void GetOTURepCommand::readNamesFile() {
                        dupNames.clear();
                        
                        //parse names into vector
-                       splitAtComma(names, dupNames);
+                       m->splitAtComma(names, dupNames);
                        
                        //store names in fasta map
                        sequence = fasta->getSequence(name);
@@ -508,7 +508,7 @@ void GetOTURepCommand::readNamesFile() {
                                fasta->push_back(dupNames[i], sequence);
                        }
                
-                       gobble(inNames);
+                       m->gobble(inNames);
                }
                inNames.close();
 
@@ -598,15 +598,15 @@ int GetOTURepCommand::process(ListVector* processList) {
                string nameRep;
 
                //create output file
-               if (outputDir == "") { outputDir += hasPath(listfile); }
+               if (outputDir == "") { outputDir += m->hasPath(listfile); }
                                
                ofstream newNamesOutput;
                string outputNamesFile;
                map<string, ofstream*> filehandles;
                
                if (Groups.size() == 0) { //you don't want to use groups
-                       outputNamesFile  = outputDir + getRootName(getSimpleName(listfile)) + processList->getLabel() + ".rep.names";
-                       openOutputFile(outputNamesFile, newNamesOutput);
+                       outputNamesFile  = outputDir + m->getRootName(m->getSimpleName(listfile)) + processList->getLabel() + ".rep.names";
+                       m->openOutputFile(outputNamesFile, newNamesOutput);
                        outputNames.push_back(outputNamesFile);
                        outputNameFiles[outputNamesFile] = processList->getLabel();
                }else{ //you want to use groups
@@ -614,9 +614,9 @@ int GetOTURepCommand::process(ListVector* processList) {
                        for (int i=0; i<Groups.size(); i++) {
                                temp = new ofstream;
                                filehandles[Groups[i]] = temp;
-                               outputNamesFile = outputDir + getRootName(getSimpleName(listfile)) + processList->getLabel() + "." + Groups[i] + ".rep.names";
+                               outputNamesFile = outputDir + m->getRootName(m->getSimpleName(listfile)) + processList->getLabel() + "." + Groups[i] + ".rep.names";
                                
-                               openOutputFile(outputNamesFile, *(temp));
+                               m->openOutputFile(outputNamesFile, *(temp));
                                outputNames.push_back(outputNamesFile);
                                outputNameFiles[outputNamesFile] = processList->getLabel() + "." + Groups[i];
                        }
@@ -639,7 +639,7 @@ int GetOTURepCommand::process(ListVector* processList) {
                        
                        string temp = processList->get(i);
                        vector<string> namesInBin;
-                       splitAtComma(temp, namesInBin);
+                       m->splitAtComma(temp, namesInBin);
                        
                        if (Groups.size() == 0) {
                                nameRep = findRep(namesInBin);
@@ -655,7 +655,7 @@ int GetOTURepCommand::process(ListVector* processList) {
                                        
                                        if (thisgroup == "not found") { m->mothurOut(namesInBin[j] + " is not in your groupfile, please correct."); m->mothurOutEndLine(); m->control_pressed = true; }
                                        
-                                       if (inUsersGroups(thisgroup, Groups)) { //add this name to correct group
+                                       if (m->inUsersGroups(thisgroup, Groups)) { //add this name to correct group
                                                NamesInGroup[thisgroup].push_back(namesInBin[j]);
                                        }
                                }
@@ -701,27 +701,27 @@ int GetOTURepCommand::processNames(string filename, string label) {
        try{
 
                //create output file
-               if (outputDir == "") { outputDir += hasPath(listfile); }
-               string outputFileName = outputDir + getRootName(getSimpleName(listfile)) + label + ".rep.fasta";
-               openOutputFile(outputFileName, out);
+               if (outputDir == "") { outputDir += m->hasPath(listfile); }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(listfile)) + label + ".rep.fasta";
+               m->openOutputFile(outputFileName, out);
                vector<repStruct> reps;
                outputNames.push_back(outputFileName);
                
                ofstream out2;
                string tempNameFile = filename + ".temp";
-               openOutputFile(tempNameFile, out2);
+               m->openOutputFile(tempNameFile, out2);
                
                ifstream in;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                
                int i = 0;
                while (!in.eof()) {
                        string rep, binnames;
-                       in >> i >> rep >> binnames; gobble(in);
+                       in >> i >> rep >> binnames; m->gobble(in);
                        out2 << rep << '\t' << binnames << endl;
                        
                        vector<string> names;
-                       splitAtComma(binnames, names);
+                       m->splitAtComma(binnames, names);
                        int binsize = names.size();
                        
                        //if you have a groupfile
index b665c88cdede4273b1aadd5bf1d4ee21ddec6b85..b7dd7153609ada80c297d5d51cab70d3cae5ebc4 100644 (file)
@@ -39,7 +39,7 @@ GetRAbundCommand::GetRAbundCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        string outputDir = validParameter.validFile(parameters, "outputdir", false);            if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
                        
                        //make sure the user has already run the read.otu command
@@ -50,12 +50,12 @@ GetRAbundCommand::GetRAbundCommand(string option)  {
                        
                        string temp;
                        temp = validParameter.validFile(parameters, "sorted", false);                   if (temp == "not found") { temp = "T"; }
-                       sorted = isTrue(temp);
+                       sorted = m->isTrue(temp);
                        
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -66,8 +66,8 @@ GetRAbundCommand::GetRAbundCommand(string option)  {
                        }
                                
                        if (abort == false) {
-                               filename = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "rabund";
-                               openOutputFile(filename, out);
+                               filename = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + "rabund";
+                               m->openOutputFile(filename, out);
                        }
                }
 
@@ -141,7 +141,7 @@ int GetRAbundCommand::execute(){
                                        userLabels.erase(list->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = list->getLabel();
                                        
                                        delete list;
index 037cd3ee70b970a7f0ecce05e2e0c073e449562e..4c79b21ab53e903fec94fa17296a7da30a9569bf 100644 (file)
@@ -39,7 +39,7 @@ GetRelAbundCommand::GetRelAbundCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
                        
                        //make sure the user has already run the read.otu command
@@ -52,7 +52,7 @@ GetRelAbundCommand::GetRelAbundCommand(string option) {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -66,7 +66,7 @@ GetRelAbundCommand::GetRelAbundCommand(string option) {
                        if (groups == "not found") { groups = ""; pickedGroups = false; }
                        else { 
                                pickedGroups = true;
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                        
@@ -118,9 +118,9 @@ int GetRelAbundCommand::execute(){
        
                if (abort == true) { return 0; }
                
-               string outputFileName = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "relabund";
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + "relabund";
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                out.setf(ios::fixed, ios::floatfield); out.setf(ios::showpoint);
                
                read = new ReadOTUFile(globaldata->inputFileName);      
@@ -147,7 +147,7 @@ int GetRelAbundCommand::execute(){
                                userLabels.erase(lookup[0]->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = lookup[0]->getLabel();
                        
                                for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  }  
index ca8c8a66a9445c21a7472301dce1bce71abe34b3..ba05ea1e11d3e5e603ec84babe81ee172c68a440 100644 (file)
@@ -39,7 +39,7 @@ GetSAbundCommand::GetSAbundCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        string outputDir = validParameter.validFile(parameters, "outputdir", false);            if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
 
                        //make sure the user has already run the read.otu command
@@ -50,7 +50,7 @@ GetSAbundCommand::GetSAbundCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -61,8 +61,8 @@ GetSAbundCommand::GetSAbundCommand(string option)  {
                        }
                                
                        if (abort == false) {
-                               filename = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "sabund";
-                               openOutputFile(filename, out);
+                               filename = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + "sabund";
+                               m->openOutputFile(filename, out);
                        }
                }
 
@@ -133,7 +133,7 @@ int GetSAbundCommand::execute(){
                                        userLabels.erase(order->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = order->getLabel();
                                        
                                        delete order;           
index ef0a1ac36de925af45e66c1c9420272272b32f2e..e7226ceca0b1e959040fbea6d78818ba23731a6e 100644 (file)
@@ -47,7 +47,7 @@ GetSeqsCommand::GetSeqsCommand(string option)  {
                                it = parameters.find("alignreport");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["alignreport"] = inputDir + it->second;              }
                                }
@@ -55,7 +55,7 @@ GetSeqsCommand::GetSeqsCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -63,7 +63,7 @@ GetSeqsCommand::GetSeqsCommand(string option)  {
                                it = parameters.find("accnos");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["accnos"] = inputDir + it->second;           }
                                }
@@ -71,7 +71,7 @@ GetSeqsCommand::GetSeqsCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -79,7 +79,7 @@ GetSeqsCommand::GetSeqsCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -87,7 +87,7 @@ GetSeqsCommand::GetSeqsCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -95,7 +95,7 @@ GetSeqsCommand::GetSeqsCommand(string option)  {
                                it = parameters.find("taxonomy");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["taxonomy"] = inputDir + it->second;         }
                                }
@@ -133,7 +133,7 @@ GetSeqsCommand::GetSeqsCommand(string option)  {
                        
                        string usedDups = "true";
                        string temp = validParameter.validFile(parameters, "dups", false);      if (temp == "not found") { temp = "false"; usedDups = ""; }
-                       dups = isTrue(temp);
+                       dups = m->isTrue(temp);
                        
                        if ((fastafile == "") && (namefile == "") && (groupfile == "") && (alignfile == "") && (listfile == "") && (taxfile == ""))  { m->mothurOut("You must provide one of the following: fasta, name, group, alignreport, taxonomy or listfile."); m->mothurOutEndLine(); abort = true; }
                
@@ -206,14 +206,14 @@ int GetSeqsCommand::execute(){
 //**********************************************************************************************************************
 int GetSeqsCommand::readFasta(){
        try {
-               if (outputDir == "") { outputDir += hasPath(fastafile); }
-               string outputFileName = outputDir + getRootName(getSimpleName(fastafile)) + "pick" +  getExtension(fastafile);
+               if (outputDir == "") { outputDir += m->hasPath(fastafile); }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "pick" +  m->getExtension(fastafile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
                
                ifstream in;
-               openInputFile(fastafile, in);
+               m->openInputFile(fastafile, in);
                string name;
                
                bool wroteSomething = false;
@@ -233,7 +233,7 @@ int GetSeqsCommand::readFasta(){
                                        currSeq.printSequence(out);
                                }
                        }
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();     
                out.close();
@@ -252,13 +252,13 @@ int GetSeqsCommand::readFasta(){
 //**********************************************************************************************************************
 int GetSeqsCommand::readList(){
        try {
-               if (outputDir == "") { outputDir += hasPath(listfile); }
-               string outputFileName = outputDir + getRootName(getSimpleName(listfile)) + "pick" +  getExtension(listfile);
+               if (outputDir == "") { outputDir += m->hasPath(listfile); }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(listfile)) + "pick" +  m->getExtension(listfile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
                ifstream in;
-               openInputFile(listfile, in);
+               m->openInputFile(listfile, in);
                
                bool wroteSomething = false;
                
@@ -304,7 +304,7 @@ int GetSeqsCommand::readList(){
                                newList.print(out);
                        }
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();     
                out.close();
@@ -323,14 +323,14 @@ int GetSeqsCommand::readList(){
 //**********************************************************************************************************************
 int GetSeqsCommand::readName(){
        try {
-               if (outputDir == "") { outputDir += hasPath(namefile); }
-               string outputFileName = outputDir + getRootName(getSimpleName(namefile)) + "pick" +  getExtension(namefile);
+               if (outputDir == "") { outputDir += m->hasPath(namefile); }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(namefile)) + "pick" +  m->getExtension(namefile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
 
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                string name, firstCol, secondCol;
                
                bool wroteSomething = false;
@@ -396,7 +396,7 @@ int GetSeqsCommand::readName(){
                                        }
                                }
                        }
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                out.close();
@@ -416,14 +416,14 @@ int GetSeqsCommand::readName(){
 //**********************************************************************************************************************
 int GetSeqsCommand::readGroup(){
        try {
-               if (outputDir == "") { outputDir += hasPath(groupfile); }
-               string outputFileName = outputDir + getRootName(getSimpleName(groupfile)) + "pick" + getExtension(groupfile);
+               if (outputDir == "") { outputDir += m->hasPath(groupfile); }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(groupfile)) + "pick" + m->getExtension(groupfile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
 
                ifstream in;
-               openInputFile(groupfile, in);
+               m->openInputFile(groupfile, in);
                string name, group;
                
                bool wroteSomething = false;
@@ -443,7 +443,7 @@ int GetSeqsCommand::readGroup(){
                                out << name << '\t' << group << endl;
                        }
                                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                out.close();
@@ -462,13 +462,13 @@ int GetSeqsCommand::readGroup(){
 //**********************************************************************************************************************
 int GetSeqsCommand::readTax(){
        try {
-               if (outputDir == "") { outputDir += hasPath(taxfile); }
-               string outputFileName = outputDir + getRootName(getSimpleName(taxfile)) + "pick" + getExtension(taxfile);
+               if (outputDir == "") { outputDir += m->hasPath(taxfile); }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(taxfile)) + "pick" + m->getExtension(taxfile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
                ifstream in;
-               openInputFile(taxfile, in);
+               m->openInputFile(taxfile, in);
                string name, tax;
                
                bool wroteSomething = false;
@@ -487,7 +487,7 @@ int GetSeqsCommand::readTax(){
                                out << name << '\t' << tax << endl;
                        }
                                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                out.close();
@@ -507,14 +507,14 @@ int GetSeqsCommand::readTax(){
 //alignreport file has a column header line then all other lines contain 16 columns.  we just want the first column since that contains the name
 int GetSeqsCommand::readAlign(){
        try {
-               if (outputDir == "") { outputDir += hasPath(alignfile); }
-               string outputFileName = outputDir + getRootName(getSimpleName(alignfile)) + "pick.align.report";
+               if (outputDir == "") { outputDir += m->hasPath(alignfile); }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(alignfile)) + "pick.align.report";
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
 
                ifstream in;
-               openInputFile(alignfile, in);
+               m->openInputFile(alignfile, in);
                string name, junk;
                
                bool wroteSomething = false;
@@ -554,7 +554,7 @@ int GetSeqsCommand::readAlign(){
                                }
                        }
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                out.close();
@@ -576,7 +576,7 @@ int GetSeqsCommand::readAccnos(){
        try {
                
                ifstream in;
-               openInputFile(accnosfile, in);
+               m->openInputFile(accnosfile, in);
                string name;
                
                while(!in.eof()){
@@ -584,7 +584,7 @@ int GetSeqsCommand::readAccnos(){
                                                
                        names.insert(name);
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();     
                
index d2e40887851e046fe4ab23f0985c5a76b4903478..492195d702286af6cc82d919311aae7a59260596 100644 (file)
@@ -50,7 +50,7 @@ GetSharedOTUCommand::GetSharedOTUCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -58,7 +58,7 @@ GetSharedOTUCommand::GetSharedOTUCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -66,7 +66,7 @@ GetSharedOTUCommand::GetSharedOTUCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -90,7 +90,7 @@ GetSharedOTUCommand::GetSharedOTUCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -101,7 +101,7 @@ GetSharedOTUCommand::GetSharedOTUCommand(string option)  {
                        if (groups == "not found") { groups = ""; }
                        else { 
                                userGroups = "unique." + groups;
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                                
                        }
@@ -110,7 +110,7 @@ GetSharedOTUCommand::GetSharedOTUCommand(string option)  {
                        if (groups == "not found") { groups = "";  }
                        else { 
                                userGroups = groups;
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                                unique = false;
                        }
@@ -188,12 +188,12 @@ int GetSharedOTUCommand::execute(){
                
                if (fastafile != "") {
                        ifstream inFasta;
-                       openInputFile(fastafile, inFasta);
+                       m->openInputFile(fastafile, inFasta);
                        
                        while(!inFasta.eof()) {
                                if (m->control_pressed) { inFasta.close(); delete groupMap; return 0; }
                                
-                               Sequence seq(inFasta); gobble(inFasta);
+                               Sequence seq(inFasta); m->gobble(inFasta);
                                if (seq.getName() != "") {  seqs.push_back(seq);   }
                        }
                        inFasta.close();
@@ -207,7 +207,7 @@ int GetSharedOTUCommand::execute(){
                set<string> userLabels = labels;
                
                ifstream in;
-               openInputFile(listfile, in);
+               m->openInputFile(listfile, in);
                
                //as long as you are not at the end of the file or done wih the lines you want
                while((!in.eof()) && ((allLines == 1) || (userLabels.size() != 0))) {
@@ -228,7 +228,7 @@ int GetSharedOTUCommand::execute(){
                                userLabels.erase(list->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = list->getLabel();
                                        
                                        m->mothurOut(lastlist->getLabel()); 
@@ -302,13 +302,13 @@ int GetSharedOTUCommand::process(ListVector* shared) {
                ofstream outNames;
                string outputFileNames;
                
-               if (outputDir == "") { outputDir += hasPath(listfile); }
+               if (outputDir == "") { outputDir += m->hasPath(listfile); }
                if (output != "accnos") {
-                       outputFileNames = outputDir + getRootName(getSimpleName(listfile)) + shared->getLabel() + userGroups + ".shared.seqs";
+                       outputFileNames = outputDir + m->getRootName(m->getSimpleName(listfile)) + shared->getLabel() + userGroups + ".shared.seqs";
                }else {
-                       outputFileNames = outputDir + getRootName(getSimpleName(listfile)) + shared->getLabel() + userGroups + ".accnos";
+                       outputFileNames = outputDir + m->getRootName(m->getSimpleName(listfile)) + shared->getLabel() + userGroups + ".accnos";
                }
-               openOutputFile(outputFileNames, outNames);
+               m->openOutputFile(outputFileNames, outNames);
                
                bool wroteSomething = false;
                int num = 0;
@@ -410,10 +410,10 @@ int GetSharedOTUCommand::process(ListVector* shared) {
                
                //if fasta file provided output new fasta file
                if ((fastafile != "") && wroteSomething) {
-                       if (outputDir == "") { outputDir += hasPath(fastafile); }
-                       string outputFileFasta = outputDir + getRootName(getSimpleName(fastafile)) + shared->getLabel() + userGroups + ".shared.fasta";
+                       if (outputDir == "") { outputDir += m->hasPath(fastafile); }
+                       string outputFileFasta = outputDir + m->getRootName(m->getSimpleName(fastafile)) + shared->getLabel() + userGroups + ".shared.fasta";
                        ofstream outFasta;
-                       openOutputFile(outputFileFasta, outFasta);
+                       m->openOutputFile(outputFileFasta, outFasta);
                        outputNames.push_back(outputFileFasta);
                        
                        for (int k = 0; k < seqs.size(); k++) {
index d57646e3e3dad937d3ca0fa81b26f402cfa1ad4d..47fbc36ee55ec4e2ff3fd9b934621eeef9a79a64 100644 (file)
@@ -14,7 +14,7 @@
  GroupMap::GroupMap(string filename) {
        m = MothurOut::getInstance();
        groupFileName = filename;
-       openInputFile(filename, fileHandle);
+       m->openInputFile(filename, fileHandle);
        index = 0;
 }
 
@@ -27,7 +27,7 @@ int GroupMap::readMap() {
                int error = 0;
 
                while(fileHandle){
-                       fileHandle >> seqName;  gobble(fileHandle);             //read from first column
+                       fileHandle >> seqName;  m->gobble(fileHandle);          //read from first column
                        fileHandle >> seqGroup;                 //read from second column
                        
                        if (m->control_pressed) {  fileHandle.close();  return 1; }
@@ -41,7 +41,7 @@ int GroupMap::readMap() {
                                groupmap[seqName] = seqGroup;   //store data in map
                                seqsPerGroup[seqGroup]++;  //increment number of seqs in that group
                        }
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                }
                fileHandle.close();
                return error;
index 9466483c779ce0b32698c8469c6224ea3c63b724..e1830cd8fbaacaf518f17b74a8822b475e485b53 100644 (file)
@@ -27,7 +27,7 @@ HCluster::HCluster(RAbundVector* rav, ListVector* lv, string ms, string d, NameA
                }
                
                if (method != "average") {
-                       openInputFile(distfile, filehandle);
+                       m->openInputFile(distfile, filehandle);
                }else{  
                        processFile();  
                }
@@ -389,7 +389,7 @@ vector<seqDist> HCluster::getSeqsFNNN(){
                //get entry
                while (!filehandle.eof()) {
                        
-                       filehandle >> firstName >> secondName >> distance;    gobble(filehandle); 
+                       filehandle >> firstName >> secondName >> distance;    m->gobble(filehandle); 
        
                        //save first one
                        if (prevDistance == -1) { prevDistance = distance; }
@@ -438,7 +438,7 @@ vector<seqDist> HCluster::getSeqsAN(){
                vector<seqDist> sameSeqs;
                prevDistance = -1;
                
-               openInputFile(distfile, filehandle, "no error"); 
+               m->openInputFile(distfile, filehandle, "no error"); 
                
                //is the smallest value in mergedMin or the distfile?
                float mergedMinDist = 10000;
@@ -446,7 +446,7 @@ vector<seqDist> HCluster::getSeqsAN(){
                if (mergedMin.size() > 0) { mergedMinDist = mergedMin[0].dist;  }
                        
                if (!filehandle.eof()) {  
-                       filehandle >> firstName >> secondName >> distance;    gobble(filehandle);
+                       filehandle >> firstName >> secondName >> distance;    m->gobble(filehandle);
                        //save first one
                        if (prevDistance == -1) { prevDistance = distance; } 
                        if (distance != -1) { //-1 means skip me
@@ -469,7 +469,7 @@ vector<seqDist> HCluster::getSeqsAN(){
                        //get entry
                        while (!filehandle.eof()) {
                                
-                               filehandle >> firstName >> secondName >> distance;    gobble(filehandle); 
+                               filehandle >> firstName >> secondName >> distance;    m->gobble(filehandle); 
                                
                                if (prevDistance == -1) { prevDistance = distance; }
                                
@@ -511,13 +511,13 @@ int HCluster::combineFile() {
                
                string tempDistFile = distfile + ".temp";
                ofstream out;
-               openOutputFile(tempDistFile, out);
+               m->openOutputFile(tempDistFile, out);
                
                //FILE* in;
                //in = fopen(distfile.c_str(), "rb");
        
                ifstream in;
-               openInputFile(distfile, in);
+               m->openInputFile(distfile, in);
                
                int first, second;
                float dist;
@@ -550,7 +550,7 @@ int HCluster::combineFile() {
                           //since file is sorted and mergedMin is sorted 
                           //you can put the smallest distance from each through the code below and keep the file sorted
                           
-                          in >> first >> second >> dist; gobble(in);
+                          in >> first >> second >> dist; m->gobble(in);
                           
                           if (m->control_pressed) { in.close(); out.close(); remove(tempDistFile.c_str()); return 0; }
                           
@@ -688,7 +688,7 @@ seqDist HCluster::getNextDist(char* buffer, int& index, int size){
                        if ((buffer[index] == 10) || (buffer[index] == 13)) { //newline in unix or windows
                                gotDist = true;
                                
-                               //gobble space
+                               //m->gobble space
                                while (index < size) {          
                                        if (isspace(buffer[index])) { index++; }
                                        else { break; }         
@@ -741,17 +741,17 @@ int HCluster::processFile() {
                float distance;
                
                ifstream in;
-               openInputFile(distfile, in);
+               m->openInputFile(distfile, in);
                
                ofstream out;
                string outTemp = distfile + ".temp";
-               openOutputFile(outTemp, out);
+               m->openOutputFile(outTemp, out);
        
                //get entry
                while (!in.eof()) {
                        if (m->control_pressed) { in.close(); out.close(); remove(outTemp.c_str()); return 0; }
                        
-                       in >> firstName >> secondName >> distance;    gobble(in);               
+                       in >> firstName >> secondName >> distance;    m->gobble(in);            
                        
                        map<string,int>::iterator itA = nameMap->find(firstName);
                        map<string,int>::iterator itB = nameMap->find(secondName);
index b4d601751630af81741d64ab605c95d5650838a5..fd95323e745bd0ce499368c5ea4cb7bd0ce21bf8 100644 (file)
@@ -47,7 +47,7 @@ HClusterCommand::HClusterCommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -55,7 +55,7 @@ HClusterCommand::HClusterCommand(string option)  {
                                it = parameters.find("column");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["column"] = inputDir + it->second;           }
                                }
@@ -63,7 +63,7 @@ HClusterCommand::HClusterCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -105,7 +105,7 @@ HClusterCommand::HClusterCommand(string option)  {
                        convert(temp, precision); 
                        
                        temp = validParameter.validFile(parameters, "hard", false);                     if (temp == "not found") { temp = "F"; }
-                       hard = isTrue(temp);
+                       hard = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "cutoff", false);
                        if (temp == "not found") { temp = "10"; }
@@ -123,7 +123,7 @@ HClusterCommand::HClusterCommand(string option)  {
                        
                        sort = validParameter.validFile(parameters, "sorted", false);
                        if (sort == "not found") { sort = "F"; }
-                       sorted = isTrue(sort);
+                       sorted = m->isTrue(sort);
 
                        timing = validParameter.validFile(parameters, "timing", false);
                        if (timing == "not found") { timing = "F"; }
@@ -131,16 +131,16 @@ HClusterCommand::HClusterCommand(string option)  {
                                
                        if (abort == false) {
                                
-                               if (outputDir == "") {  outputDir += hasPath(distfile); }
-                               fileroot = outputDir + getRootName(getSimpleName(distfile));
+                               if (outputDir == "") {  outputDir += m->hasPath(distfile); }
+                               fileroot = outputDir + m->getRootName(m->getSimpleName(distfile));
                                
                                if (method == "furthest")               { tag = "fn";  }
                                else if (method == "nearest")   { tag = "nn";  }
                                else                                                    { tag = "an";  }
                        
-                               openOutputFile(fileroot+ tag + ".sabund",       sabundFile);
-                               openOutputFile(fileroot+ tag + ".rabund",       rabundFile);
-                               openOutputFile(fileroot+ tag + ".list",         listFile);
+                               m->openOutputFile(fileroot+ tag + ".sabund",    sabundFile);
+                               m->openOutputFile(fileroot+ tag + ".rabund",    rabundFile);
+                               m->openOutputFile(fileroot+ tag + ".list",              listFile);
                                
                                outputNames.push_back(fileroot+ tag + ".sabund");
                                outputNames.push_back(fileroot+ tag + ".rabund");
@@ -282,9 +282,9 @@ int HClusterCommand::execute(){
                        
                                        float rndDist;
                                        if (hard) {
-                                               rndDist = ceilDist(seqs[i].dist, precision); 
+                                               rndDist = m->ceilDist(seqs[i].dist, precision); 
                                        }else{
-                                               rndDist = roundDist(seqs[i].dist, precision); 
+                                               rndDist = m->roundDist(seqs[i].dist, precision); 
                                        }
 
                                        
@@ -360,7 +360,7 @@ int HClusterCommand::execute(){
 
 void HClusterCommand::printData(string label){
        try {
-               if (isTrue(timing)) {
+               if (m->isTrue(timing)) {
                        m->mothurOut("\tTime: " + toString(time(NULL) - start) + "\tsecs for " + toString(oldRAbund.getNumBins()) 
                     + "\tclusters. Updates: " + toString(loops)); m->mothurOutEndLine();
                }
@@ -369,7 +369,7 @@ void HClusterCommand::printData(string label){
                start = time(NULL);
 
                oldRAbund.setLabel(label);
-               if (isTrue(showabund)) {
+               if (m->isTrue(showabund)) {
                        oldRAbund.getSAbundVector().print(cout);
                }
                oldRAbund.print(rabundFile);
index aef9f3712d2a1ebedacbf2bf78d1a3a987fc2a1d..2aabfd702eb94e4b7b7279062e7e59c5821379fd 100644 (file)
@@ -63,8 +63,8 @@ string HeatMap::getPic(RAbundVector* rabund) {
                }
                
                
-               string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + rabund->getLabel() + ".heatmap.bin.svg";
-               openOutputFile(filenamesvg, outsvg);
+               string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + rabund->getLabel() + ".heatmap.bin.svg";
+               m->openOutputFile(filenamesvg, outsvg);
                
                //svg image
                outsvg << "<svg xmlns:svg=\"http://www.w3.org/2000/svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 " + toString(300) + " " + toString((rabund->getNumBins()*5 + 120))  + "\">\n";
@@ -148,8 +148,8 @@ string HeatMap::getPic(vector<SharedRAbundVector*> lookup) {
                        }
                }
 
-               string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + ".heatmap.bin.svg";
-               openOutputFile(filenamesvg, outsvg);
+               string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + ".heatmap.bin.svg";
+               m->openOutputFile(filenamesvg, outsvg);
                
                //svg image
                outsvg << "<svg xmlns:svg=\"http://www.w3.org/2000/svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 " + toString(lookup.size() * 300) + " " + toString((lookup[0]->getNumBins()*5 + 120))  + "\">\n";
index b57f3a02670de0711b01bca5c52a711d4aa70292..1ca894fb391eae4e604736d0cb7102986ed3569d 100644 (file)
@@ -40,7 +40,7 @@ HeatMapCommand::HeatMapCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
                        
                        //make sure the user has already run the read.otu command
@@ -53,7 +53,7 @@ HeatMapCommand::HeatMapCommand(string option) {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -66,7 +66,7 @@ HeatMapCommand::HeatMapCommand(string option) {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                        
@@ -178,7 +178,7 @@ int HeatMapCommand::execute(){
                                        userLabels.erase(lookup[0]->getLabel());
                                }
                                
-                               if ((anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                               if ((m->anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = lookup[0]->getLabel();
                                
                                        for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  }  
@@ -252,7 +252,7 @@ int HeatMapCommand::execute(){
                                        userLabels.erase(rabund->getLabel());
                                }
                                
-                               if ((anyLabelsToProcess(rabund->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                               if ((m->anyLabelsToProcess(rabund->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = rabund->getLabel();
                                        
                                        delete rabund;
index 4fb3e37365fdba3dbec421a5c7495314803a6755..efe4140fcdc42aa287af5dbc51a0152fc87371f5 100644 (file)
@@ -36,8 +36,8 @@ vector<string> HeatMapSim::getPic(vector<SharedRAbundVector*> lookup, vector<Cal
                
                        if (m->control_pressed) { return outputNames; }
                
-                       string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + calcs[k]->getName() + ".heatmap.sim.svg";
-                       openOutputFile(filenamesvg, outsvg);
+                       string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + calcs[k]->getName() + ".heatmap.sim.svg";
+                       m->openOutputFile(filenamesvg, outsvg);
                        outputNames.push_back(filenamesvg);
                        
                        //svg image
@@ -114,8 +114,8 @@ string HeatMapSim::getPic(vector< vector<double> > dists, vector<string> groups)
                
                vector<double> sims;
                
-               string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "heatmap.sim.svg";
-               openOutputFile(filenamesvg, outsvg);
+               string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + "heatmap.sim.svg";
+               m->openOutputFile(filenamesvg, outsvg);
                        
                //svg image
                outsvg << "<svg xmlns:svg=\"http://www.w3.org/2000/svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 " + toString((dists.size() * 150) + 160) + " " + toString((dists.size() * 150) + 160)  + "\">\n";
index dc67a8d4374ae90aebf182ce80d5474b17431f95..61e29390c21ae0a851a3acaede4c9da681d4d7d4 100644 (file)
@@ -62,7 +62,7 @@ HeatMapSimCommand::HeatMapSimCommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -70,7 +70,7 @@ HeatMapSimCommand::HeatMapSimCommand(string option)  {
                                it = parameters.find("column");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["column"] = inputDir + it->second;           }
                                }
@@ -78,7 +78,7 @@ HeatMapSimCommand::HeatMapSimCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -88,12 +88,12 @@ HeatMapSimCommand::HeatMapSimCommand(string option)  {
                        phylipfile = validParameter.validFile(parameters, "phylip", true);
                        if (phylipfile == "not open") { abort = true; }
                        else if (phylipfile == "not found") { phylipfile = ""; }        
-                       else {  format = "phylip";      if (outputDir == "") { outputDir += hasPath(phylipfile); }  }
+                       else {  format = "phylip";      if (outputDir == "") { outputDir += m->hasPath(phylipfile); }  }
                        
                        columnfile = validParameter.validFile(parameters, "column", true);
                        if (columnfile == "not open") { abort = true; } 
                        else if (columnfile == "not found") { columnfile = ""; }
-                       else {  format = "column";      if (outputDir == "") { outputDir += hasPath(columnfile); } }
+                       else {  format = "column";      if (outputDir == "") { outputDir += m->hasPath(columnfile); } }
                        
                        namefile = validParameter.validFile(parameters, "name", true);
                        if (namefile == "not open") { abort = true; }   
@@ -113,12 +113,12 @@ HeatMapSimCommand::HeatMapSimCommand(string option)  {
                        //check for optional parameter and set defaults
                        // ...at some point should added some additional type checking...
                        if (format == "shared") {
-                               if (outputDir == "") { outputDir += hasPath(globaldata->getSharedFile()); }
+                               if (outputDir == "") { outputDir += m->hasPath(globaldata->getSharedFile()); }
                                
                                label = validParameter.validFile(parameters, "label", false);                   
                                if (label == "not found") { label = ""; }
                                else { 
-                                       if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                                       if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                        else { allLines = 1;  }
                                }
                                
@@ -133,12 +133,12 @@ HeatMapSimCommand::HeatMapSimCommand(string option)  {
                                else { 
                                        if (calc == "default")  {  calc = "jest-thetayc";  }
                                }
-                               splitAtDash(calc, Estimators);
+                               m->splitAtDash(calc, Estimators);
                                
                                groups = validParameter.validFile(parameters, "groups", false);                 
                                if (groups == "not found") { groups = ""; }
                                else { 
-                                       splitAtDash(groups, Groups);
+                                       m->splitAtDash(groups, Groups);
                                        globaldata->Groups = Groups;
                                }
                        }
@@ -292,7 +292,7 @@ int HeatMapSimCommand::runCommandShared() {
                                userLabels.erase(lookup[0]->getLabel());
                        }
                                
-                       if ((anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = lookup[0]->getLabel();
                        
                                for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  } 
@@ -374,7 +374,7 @@ int HeatMapSimCommand::runCommandDist() {
                //read distance file and create distance vector and names vector
                if (format == "phylip") {
                        //read phylip file
-                       openInputFile(phylipfile, in);
+                       m->openInputFile(phylipfile, in);
                        
                        string name;
                        int numSeqs;
@@ -422,7 +422,7 @@ int HeatMapSimCommand::runCommandDist() {
                                        if (m->control_pressed) { return 0; }
                                        
                                        for(int j=0;j<numSeqs;j++) { in >> matrix[i][j];  }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
                        }else { 
                                double dist;
@@ -436,7 +436,7 @@ int HeatMapSimCommand::runCommandDist() {
                                                in >> dist;
                                                matrix[i][j] = dist;  matrix[j][i] = dist;
                                        }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
                        }
                        in.close();
@@ -459,10 +459,10 @@ int HeatMapSimCommand::runCommandDist() {
                        //read column file
                        string first, second;
                        double dist;
-                       openInputFile(columnfile, in);
+                       m->openInputFile(columnfile, in);
                        
                        while (!in.eof()) {
-                               in >> first >> second >> dist; gobble(in);
+                               in >> first >> second >> dist; m->gobble(in);
                                
                                if (m->control_pressed) { return 0; }
                                
index 65685d6a7e13c09f6563ebb3c2ea3f78dd3fd937..7c9fbe9c0eeda1472e09ce03c80cd5853103833e 100644 (file)
@@ -16,7 +16,7 @@
 
 InputData::InputData(string fName, string f) : format(f){
        m = MothurOut::getInstance();
-       openInputFile(fName, fileHandle);
+       m->openInputFile(fName, fileHandle);
        filename = fName;
        
 }
@@ -36,7 +36,7 @@ InputData::InputData(string fName, string orderFileName, string f) : format(f){
        try {
                m = MothurOut::getInstance();
                ifstream ofHandle;
-               openInputFile(orderFileName, ofHandle);
+               m->openInputFile(orderFileName, ofHandle);
                string name;
 
                int count = 0;
@@ -45,11 +45,11 @@ InputData::InputData(string fName, string orderFileName, string f) : format(f){
                        ofHandle >> name;
                        orderMap[name] = count;
                        count++;
-                       gobble(ofHandle);
+                       m->gobble(ofHandle);
                }
                ofHandle.close();
        
-               openInputFile(fName, fileHandle);
+               m->openInputFile(fName, fileHandle);
        }
        catch(exception& e) {
                m->errorOut(e, "InputData", "InputData");
@@ -65,7 +65,7 @@ ListVector* InputData::getListVector(){
                                list = new ListVector(fileHandle);
                        }else{ list = NULL;  }
                                        
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                        return list;
                }
                else{
@@ -83,7 +83,7 @@ ListVector* InputData::getListVector(string label){
        try {
                ifstream in;
                string  thisLabel;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                
                if(in){
 
@@ -98,7 +98,7 @@ ListVector* InputData::getListVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete list;    }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
                        }else{ list = NULL;  }
                        
@@ -127,7 +127,7 @@ ListVector* InputData::getListVector(string label, bool resetFP){
                        
                                while (fileHandle.eof() != true) {
                                        
-                                       list = new ListVector(fileHandle); gobble(fileHandle);
+                                       list = new ListVector(fileHandle); m->gobble(fileHandle);
                                        thisLabel = list->getLabel();
                                        
                                        //if you are at the last label
@@ -158,7 +158,7 @@ SharedListVector* InputData::getSharedListVector(){
                                SharedList = new SharedListVector(fileHandle);
                        }else{ SharedList = NULL;  }
                                        
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                        return SharedList;
                }
                else{
@@ -176,7 +176,7 @@ SharedListVector* InputData::getSharedListVector(string label){
        try {
                ifstream in;
                string  thisLabel;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                
                if(in){
 
@@ -191,7 +191,7 @@ SharedListVector* InputData::getSharedListVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete SharedList;      }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }else{ SharedList = NULL;  }
@@ -220,7 +220,7 @@ SharedOrderVector* InputData::getSharedOrderVector(){
                                SharedOrder = new SharedOrderVector(fileHandle);
                        }else{ SharedOrder = NULL;  }
                                
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                        return SharedOrder;
                        
                }else{
@@ -239,7 +239,7 @@ SharedOrderVector* InputData::getSharedOrderVector(string label){
        try {
                ifstream in;
                string  thisLabel;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                
                if(in){
 
@@ -254,7 +254,7 @@ SharedOrderVector* InputData::getSharedOrderVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete SharedOrder;     }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }else{ SharedOrder = NULL;  }
@@ -295,7 +295,7 @@ OrderVector* InputData::getOrderVector(){
                                input = new SAbundVector(fileHandle);
                        }
                        
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                        
                        output = new OrderVector();     
                        *output = (input->getOrderVector());
@@ -318,7 +318,7 @@ OrderVector* InputData::getOrderVector(string label){
        
                ifstream in;
                string  thisLabel;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                
                if(in){
                        if((format == "list") || (format == "listorder")) {
@@ -332,7 +332,7 @@ OrderVector* InputData::getOrderVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
                        }
                        else if (format == "shared")  {
@@ -346,7 +346,7 @@ OrderVector* InputData::getOrderVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -361,7 +361,7 @@ OrderVector* InputData::getOrderVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -376,7 +376,7 @@ OrderVector* InputData::getOrderVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -391,7 +391,7 @@ OrderVector* InputData::getOrderVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                        
                                }
 
@@ -431,7 +431,7 @@ vector<SharedRAbundVector*> InputData::getSharedRAbundVectors(){
                                        return SharedList->getSharedRAbundVector();
                                }
                        }
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                }
                                
                //this is created to signal to calling function that the input file is at eof
@@ -450,7 +450,7 @@ vector<SharedRAbundVector*> InputData::getSharedRAbundVectors(string label){
                ifstream in;
                string  thisLabel;
                
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                
                if(in){
                        if (format == "sharedfile")  {
@@ -468,7 +468,7 @@ vector<SharedRAbundVector*> InputData::getSharedRAbundVectors(string label){
                                                        delete SharedRAbund;
                                                }
                                        }else{  break;  }
-                                       gobble(in);
+                                       m->gobble(in);
                                        
                                }
                        }else if (format == "shared") {
@@ -484,7 +484,7 @@ vector<SharedRAbundVector*> InputData::getSharedRAbundVectors(string label){
                                                        delete SharedList;
                                                }
                                        }else{  break;  }
-                                       gobble(in);
+                                       m->gobble(in);
                                        
                                }
                        
@@ -525,7 +525,7 @@ SAbundVector* InputData::getSAbundVector(){
                                input = new SAbundVector(fileHandle);
                        }
                                        
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
 
                        sabund = new SAbundVector();
                        *sabund = (input->getSAbundVector());
@@ -547,7 +547,7 @@ SAbundVector* InputData::getSAbundVector(string label){
        
                ifstream in;
                string  thisLabel;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                
                if(in){
                        if (format == "list") {
@@ -561,7 +561,7 @@ SAbundVector* InputData::getSAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
                        }
                        else if (format == "shared")  {
@@ -575,7 +575,7 @@ SAbundVector* InputData::getSAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -590,7 +590,7 @@ SAbundVector* InputData::getSAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -605,7 +605,7 @@ SAbundVector* InputData::getSAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -620,7 +620,7 @@ SAbundVector* InputData::getSAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                        
                                }
 
@@ -664,7 +664,7 @@ RAbundVector* InputData::getRAbundVector(){
                                input = new SAbundVector(fileHandle);
                        }
                                        
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
 
                        rabund = new RAbundVector();
                        *rabund = (input->getRAbundVector());
@@ -686,7 +686,7 @@ RAbundVector* InputData::getRAbundVector(string label){
        
                ifstream in;
                string  thisLabel;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                
                if(in){
                        if (format == "list") {
@@ -700,7 +700,7 @@ RAbundVector* InputData::getRAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
                        }
                        else if (format == "shared")  {
@@ -714,7 +714,7 @@ RAbundVector* InputData::getRAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -729,7 +729,7 @@ RAbundVector* InputData::getRAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -744,7 +744,7 @@ RAbundVector* InputData::getRAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                }
 
                        }
@@ -759,7 +759,7 @@ RAbundVector* InputData::getRAbundVector(string label){
                                        if (thisLabel == label) {  break;  }
                                        //so you don't loose this memory
                                        else {  delete input;   }
-                                       gobble(in);
+                                       m->gobble(in);
                                        
                                }
 
index 150b7cd6df554711f8b85fdd22a841fe6cd6c6c5..8f0629832208e797efbdc815e619bab28ed49046 100644 (file)
@@ -12,7 +12,7 @@
 /***********************************************************************/
 void Jackknife::getAMatrix(void){
        try {
-               vector<vector<double> > B = binomial(maxOrder);
+               vector<vector<double> > B = m->binomial(maxOrder);
 
                aMat.resize(maxOrder+1);
 
index bd5b9762b41dbc63e116172ad00e419755fdbbf1..29265933d8c22ea32c1f943a877b3b6cf62ccfe0 100644 (file)
@@ -107,7 +107,7 @@ void KmerDB::generateDB(){
        try {
                
                ofstream kmerFile;                                                                              //      once we have the kmerLocations folder print it out
-               openOutputFile(kmerDBName, kmerFile);                                   //      to a file
+               m->openOutputFile(kmerDBName, kmerFile);                                        //      to a file
                
                //output version
                kmerFile << m->getVersion() << endl;
@@ -160,7 +160,7 @@ void KmerDB::readKmerDB(ifstream& kmerDBFile){
                kmerDBFile.seekg(0);                                                                    //      start at the beginning of the file
                
                //read version
-               string line = getline(kmerDBFile); gobble(kmerDBFile);
+               string line = m->getline(kmerDBFile); m->gobble(kmerDBFile);
                
                string seqName;
                int seqNumber;
diff --git a/knn.cpp b/knn.cpp
index a8430723fdd653899e9239b22adaa941af113012..1835c48f802b861f29a6a6c2360a47788d13bc46 100644 (file)
--- a/knn.cpp
+++ b/knn.cpp
@@ -26,7 +26,7 @@ void Knn::setDistName(string s) {
        try {
                outDistName = s;
                ofstream outDistance;
-               openOutputFile(outDistName, outDistance);
+               m->openOutputFile(outDistName, outDistance);
                outDistance << "Name\tBestMatch\tDistance" << endl;
                outDistance.close();
        }
@@ -54,7 +54,7 @@ string Knn::getTaxonomy(Sequence* seq) {
                //use database to find closest seq
                vector<int> closest = database->findClosestSequences(seq, num);
        
-               if (search == "distance") { ofstream outDistance; openOutputFileAppend(outDistName, outDistance); outDistance << seq->getName() << '\t' << database->getName(closest[0]) << '\t' << database->getSearchScore() << endl; outDistance.close();  }
+               if (search == "distance") { ofstream outDistance; m->openOutputFileAppend(outDistName, outDistance); outDistance << seq->getName() << '\t' << database->getName(closest[0]) << '\t' << database->getSearchScore() << endl; outDistance.close();  }
        
                if (m->control_pressed) { return tax; }
 
index 219b0bf5fcb7149ff20ee7d65563ec1932147bf0..773d8d351211f3ab9794770e72aad77235754b53 100644 (file)
@@ -47,7 +47,7 @@ LibShuffCommand::LibShuffCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->getPhylipFile()); //if user entered a file with a path then preserve it        
+                               outputDir += m->hasPath(globaldata->getPhylipFile()); //if user entered a file with a path then preserve it     
                        }
                        
                        //make sure the user has already run the read.dist command
@@ -61,7 +61,7 @@ LibShuffCommand::LibShuffCommand(string option)  {
                        if (groups == "not found") { groups = ""; savegroups = groups; }
                        else { 
                                savegroups = groups;
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                                
@@ -215,8 +215,8 @@ int LibShuffCommand::printCoverageFile() {
        try {
 
                ofstream outCov;
-               summaryFile = outputDir + getRootName(getSimpleName(globaldata->getPhylipFile())) + "libshuff.coverage";
-               openOutputFile(summaryFile, outCov);
+               summaryFile = outputDir + m->getRootName(m->getSimpleName(globaldata->getPhylipFile())) + "libshuff.coverage";
+               m->openOutputFile(summaryFile, outCov);
                outputNames.push_back(summaryFile);
                outCov.setf(ios::fixed, ios::floatfield); outCov.setf(ios::showpoint);
                //cout.setf(ios::fixed, ios::floatfield); cout.setf(ios::showpoint);
@@ -311,8 +311,8 @@ int LibShuffCommand::printSummaryFile() {
        try {
 
                ofstream outSum;
-               summaryFile = outputDir + getRootName(getSimpleName(globaldata->getPhylipFile())) + "libshuff.summary";
-               openOutputFile(summaryFile, outSum);
+               summaryFile = outputDir + m->getRootName(m->getSimpleName(globaldata->getPhylipFile())) + "libshuff.summary";
+               m->openOutputFile(summaryFile, outSum);
                outputNames.push_back(summaryFile);
 
                outSum.setf(ios::fixed, ios::floatfield); outSum.setf(ios::showpoint);
index 3200137343e8691e2e8df3f70fcd1940f933b88c..a3f88cf74d2c1eaa5c88fd792f678a7e5a7b4bf3 100644 (file)
@@ -47,7 +47,7 @@ ListSeqsCommand::ListSeqsCommand(string option)  {
                                it = parameters.find("alignreport");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["alignreport"] = inputDir + it->second;              }
                                }
@@ -55,7 +55,7 @@ ListSeqsCommand::ListSeqsCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -63,7 +63,7 @@ ListSeqsCommand::ListSeqsCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -71,7 +71,7 @@ ListSeqsCommand::ListSeqsCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -79,7 +79,7 @@ ListSeqsCommand::ListSeqsCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -87,7 +87,7 @@ ListSeqsCommand::ListSeqsCommand(string option)  {
                                it = parameters.find("taxonomy");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["taxonomy"] = inputDir + it->second;         }
                                }
@@ -169,12 +169,12 @@ int ListSeqsCommand::execute(){
                //sort in alphabetical order
                sort(names.begin(), names.end());
                
-               if (outputDir == "") {  outputDir += hasPath(inputFileName);  }
+               if (outputDir == "") {  outputDir += m->hasPath(inputFileName);  }
                
-               string outputFileName = outputDir + getRootName(getSimpleName(inputFileName)) + "accnos";
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(inputFileName)) + "accnos";
 
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
                //output to .accnos file
                for (int i = 0; i < names.size(); i++) {
@@ -206,7 +206,7 @@ int ListSeqsCommand::readFasta(){
        try {
                
                ifstream in;
-               openInputFile(fastafile, in);
+               m->openInputFile(fastafile, in);
                string name;
                
                while(!in.eof()){
@@ -218,7 +218,7 @@ int ListSeqsCommand::readFasta(){
                        
                        if (name != "") {  names.push_back(name);  }
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();     
                
@@ -234,7 +234,7 @@ int ListSeqsCommand::readFasta(){
 int ListSeqsCommand::readList(){
        try {
                ifstream in;
-               openInputFile(listfile, in);
+               m->openInputFile(listfile, in);
                
                if(!in.eof()){
                        //read in list vector
@@ -271,7 +271,7 @@ int ListSeqsCommand::readName(){
        try {
                
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                string name, firstCol, secondCol;
                
                while(!in.eof()){
@@ -291,7 +291,7 @@ int ListSeqsCommand::readName(){
                        //get name after last ,
                        names.push_back(secondCol);
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                return 0;
@@ -308,7 +308,7 @@ int ListSeqsCommand::readGroup(){
        try {
        
                ifstream in;
-               openInputFile(groupfile, in);
+               m->openInputFile(groupfile, in);
                string name, group;
                
                while(!in.eof()){
@@ -320,7 +320,7 @@ int ListSeqsCommand::readGroup(){
                        
                        names.push_back(name);
                                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                return 0;
@@ -338,7 +338,7 @@ int ListSeqsCommand::readAlign(){
        try {
        
                ifstream in;
-               openInputFile(alignfile, in);
+               m->openInputFile(alignfile, in);
                string name, junk;
                
                //read column headers
@@ -362,7 +362,7 @@ int ListSeqsCommand::readAlign(){
                        
                        names.push_back(name);
                                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                
@@ -380,7 +380,7 @@ int ListSeqsCommand::readTax(){
        try {
                
                ifstream in;
-               openInputFile(taxfile, in);
+               m->openInputFile(taxfile, in);
                string name, firstCol, secondCol;
                
                while(!in.eof()){
@@ -392,7 +392,7 @@ int ListSeqsCommand::readTax(){
                        
                        names.push_back(firstCol);
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                
index 94ca02662bc1e59f61312e7c33d2244faa30e3ae..4bb45b7f83d9c811a018f5c475fc557a9f65287f 100644 (file)
@@ -28,7 +28,7 @@ ListVector::ListVector(string id, vector<string> lv) : DataVector(id), data(lv){
        try {
                for(int i=0;i<data.size();i++){
                        if(data[i] != ""){
-                               int binSize = getNumNames(data[i]);
+                               int binSize = m->getNumNames(data[i]);
                                numBins = i+1;
                                if(binSize > maxRank)   {       maxRank = binSize;      }
                                numSeqs += binSize;
@@ -56,7 +56,7 @@ ListVector::ListVector(ifstream& f) : DataVector(), maxRank(0), numBins(0), numS
                        set(i, inputData);
                }
                
-               gobble(f);
+               m->gobble(f);
        }
        catch(exception& e) {
                m->errorOut(e, "ListVector", "ListVector");
@@ -68,9 +68,9 @@ ListVector::ListVector(ifstream& f) : DataVector(), maxRank(0), numBins(0), numS
 
 void ListVector::set(int binNumber, string seqNames){
        try {
-               int nNames_old = getNumNames(data[binNumber]);
+               int nNames_old = m->getNumNames(data[binNumber]);
                data[binNumber] = seqNames;
-               int nNames_new = getNumNames(seqNames);
+               int nNames_new = m->getNumNames(seqNames);
        
                if(nNames_old == 0)                     {       numBins++;                              }
                if(nNames_new == 0)                     {       numBins--;                              }
@@ -95,7 +95,7 @@ string ListVector::get(int index){
 void ListVector::push_back(string seqNames){
        try {
                data.push_back(seqNames);
-               int nNames = getNumNames(seqNames);
+               int nNames = m->getNumNames(seqNames);
        
                numBins++;
        
@@ -157,7 +157,7 @@ RAbundVector ListVector::getRAbundVector(){
                RAbundVector rav;
        
                for(int i=0;i<data.size();i++){
-                       int binSize = getNumNames(data[i]);
+                       int binSize = m->getNumNames(data[i]);
                        rav.push_back(binSize);
                }
        
@@ -187,7 +187,7 @@ SAbundVector ListVector::getSAbundVector(){
                SAbundVector sav(maxRank+1);
        
                for(int i=0;i<data.size();i++){
-                       int binSize = getNumNames(data[i]);     
+                       int binSize = m->getNumNames(data[i]);  
                        sav.set(binSize, sav.get(binSize) + 1); 
                }
                sav.set(0, 0);
@@ -210,7 +210,7 @@ OrderVector ListVector::getOrderVector(map<string,int>* orderMap = NULL){
                        OrderVector ov;
                
                        for(int i=0;i<data.size();i++){
-                               int binSize = getNumNames(data[i]);             
+                               int binSize = m->getNumNames(data[i]);          
                                for(int j=0;j<binSize;j++){
                                        ov.push_back(i);
                                }
index 455826a3a8ab61ec1cf7a5af44e91ba791907583..1a2ffe65fd17c79cc28c6a1e7106012ad2e987c7 100644 (file)
@@ -50,25 +50,25 @@ MakeGroupCommand::MakeGroupCommand(string option)  {
                        fastaFileName = validParameter.validFile(parameters, "fasta", false);
                        if (fastaFileName == "not found") { m->mothurOut("fasta is a required parameter for the make.group command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(fastaFileName, fastaFileNames);
+                               m->splitAtDash(fastaFileName, fastaFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < fastaFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(fastaFileNames[i]);
+                                               string path = m->hasPath(fastaFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fastaFileNames[i] = inputDir + fastaFileNames[i];               }
                                        }
        
                                        ifstream in;
-                                       int ableToOpen = openInputFile(fastaFileNames[i], in, "noerror");
+                                       int ableToOpen = m->openInputFile(fastaFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastaFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(fastaFileNames[i]);
                                                        m->mothurOut("Unable to open " + fastaFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        fastaFileNames[i] = tryPath;
                                                }
                                        }
@@ -79,7 +79,7 @@ MakeGroupCommand::MakeGroupCommand(string option)  {
                                                //erase from file list
                                                fastaFileNames.erase(fastaFileNames.begin()+i);
                                                i--;
-                                       }else{  filename += getRootName(getSimpleName(fastaFileNames[i]));  }
+                                       }else{  filename += m->getRootName(m->getSimpleName(fastaFileNames[i]));  }
                                }
                                
                                filename += "groups";
@@ -90,7 +90,7 @@ MakeGroupCommand::MakeGroupCommand(string option)  {
                        
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { m->mothurOut("groups is a required parameter for the make.group command."); m->mothurOutEndLine(); abort = true;  }
-                       else { splitAtDash(groups, groupsNames);        }
+                       else { m->splitAtDash(groups, groupsNames);     }
 
                        if (groupsNames.size() != fastaFileNames.size()) { m->mothurOut("You do not have the same number of valid fastfile files as groups.  This could be because we could not open a fastafile."); m->mothurOutEndLine(); abort = true;  }
                }
@@ -131,18 +131,18 @@ int MakeGroupCommand::execute(){
                if (abort == true) {    return 0;       }
                
                ofstream out;
-               openOutputFile(filename, out);
+               m->openOutputFile(filename, out);
                
                for (int i = 0; i < fastaFileNames.size(); i++) {
                
                        if (m->control_pressed) {  out.close(); remove(filename.c_str()); return 0; }
                        
                        ifstream in;
-                       openInputFile(fastaFileNames[i], in);
+                       m->openInputFile(fastaFileNames[i], in);
                        
                        while (!in.eof()) {
                                
-                               Sequence seq(in, "no align"); gobble(in);
+                               Sequence seq(in, "no align"); m->gobble(in);
                                
                                if (m->control_pressed) {  in.close(); out.close(); remove(filename.c_str()); return 0; }
                                
index 390f47f9fac6f255ce6e30fec4c7b2264e25cdad..a55edd04e1db2f2acd24f57862b4dffb51e0ab8e 100644 (file)
@@ -52,7 +52,7 @@ MatrixOutputCommand::MatrixOutputCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
                        
                        //make sure the user has already run the read.otu command
@@ -66,7 +66,7 @@ MatrixOutputCommand::MatrixOutputCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -82,7 +82,7 @@ MatrixOutputCommand::MatrixOutputCommand(string option)  {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                                
@@ -91,7 +91,7 @@ MatrixOutputCommand::MatrixOutputCommand(string option)  {
                        else { 
                                 if (calc == "default")  {  calc = "jclass-thetayc";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
 
                        if (abort == false) {
                        
@@ -209,7 +209,7 @@ int MatrixOutputCommand::execute(){
                                userLabels.erase(lookup[0]->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = lookup[0]->getLabel();
                                
                                for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  } 
@@ -347,8 +347,8 @@ int MatrixOutputCommand::process(vector<SharedRAbundVector*> thisLookup){
                                                }
                                        }
                                        
-                                       exportFileName = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + matrixCalculators[i]->getName() + "." + thisLookup[0]->getLabel() + "." + output + ".dist";
-                                       openOutputFile(exportFileName, out);
+                                       exportFileName = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + matrixCalculators[i]->getName() + "." + thisLookup[0]->getLabel() + "." + output + ".dist";
+                                       m->openOutputFile(exportFileName, out);
                                        outputNames.push_back(exportFileName);
                                        
                                        printSims(out);
index a076281035ff08fdb2ba0af591dce24f726cd636..098da009eaeacfab076c9ad0f800f626158f4a15 100644 (file)
@@ -40,7 +40,7 @@ MergeFileCommand::MergeFileCommand(string option)  {
                        
                        string fileList = validParameter.validFile(parameters, "input", false);                 
                        if(fileList == "not found") { m->mothurOut("you must enter two or more file names"); m->mothurOutEndLine();  abort=true;  }
-                       else{   splitAtDash(fileList, fileNames);       }
+                       else{   m->splitAtDash(fileList, fileNames);    }
                        
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        string outputDir = validParameter.validFile(parameters, "outputdir", false);            if (outputDir == "not found")   {       outputDir = "";         }
@@ -55,19 +55,19 @@ MergeFileCommand::MergeFileCommand(string option)  {
                        else{
                                for(int i=0;i<numInputFiles;i++){
                                        if (inputDir != "") {
-                                               string path = hasPath(fileNames[i]);
+                                               string path = m->hasPath(fileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       fileNames[i] = inputDir + fileNames[i];         }
                                        }
                                        
-                                       if(openInputFile(fileNames[i], testFile)){      abort = true;   }
+                                       if(m->openInputFile(fileNames[i], testFile)){   abort = true;   }
                                        testFile.close();
                                }
                        }   
                        
                        outputFileName = validParameter.validFile(parameters, "output", false);                 
                        if (outputFileName == "not found") { m->mothurOut("you must enter an output file name"); m->mothurOutEndLine();  abort=true;  }
-                       else if (outputDir != "") { outputFileName = outputDir + getSimpleName(outputFileName); }
+                       else if (outputDir != "") { outputFileName = outputDir + m->getSimpleName(outputFileName); }
                }
                        
        }
@@ -88,13 +88,13 @@ int MergeFileCommand::execute(){
                if (abort == true) {    return 0;       }
                
                ofstream outputFile;
-               openOutputFile(outputFileName, outputFile);
+               m->openOutputFile(outputFileName, outputFile);
                
                char c;
                for(int i=0;i<numInputFiles;i++){
                        ifstream inputFile; //declaration must be inside for loop of windows throws an error
                        
-                       openInputFile(fileNames[i], inputFile);
+                       m->openInputFile(fileNames[i], inputFile);
                        
                        while(!inputFile.eof()){        
                                if (m->control_pressed) { inputFile.close(); outputFile.close(); remove(outputFileName.c_str()); return 0;  }
index 9a1ac215388e09e6477fffa034e0542c38c208b1..eef54ef23b290a930d5560e8dbf444a20da46073 100644 (file)
@@ -42,7 +42,7 @@ MGClusterCommand::MGClusterCommand(string option) {
                                it = parameters.find("blast");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["blast"] = inputDir + it->second;            }
                                }
@@ -50,7 +50,7 @@ MGClusterCommand::MGClusterCommand(string option) {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -65,7 +65,7 @@ MGClusterCommand::MGClusterCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(blastfile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(blastfile); //if user entered a file with a path then preserve it       
                        }
                        
                        namefile = validParameter.validFile(parameters, "name", true);
@@ -97,16 +97,16 @@ MGClusterCommand::MGClusterCommand(string option) {
                        convert(temp, penalty); 
                        
                        temp = validParameter.validFile(parameters, "min", false);                              if (temp == "not found") { temp = "true"; }
-                       minWanted = isTrue(temp); 
+                       minWanted = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "merge", false);                    if (temp == "not found") { temp = "true"; }
-                       merge = isTrue(temp); 
+                       merge = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "hcluster", false);                 if (temp == "not found") { temp = "false"; }
-                       hclusterWanted = isTrue(temp); 
+                       hclusterWanted = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "hard", false);                     if (temp == "not found") { temp = "F"; }
-                       hard = isTrue(temp);
+                       hard = m->isTrue(temp);
                }
 
        }
@@ -153,7 +153,7 @@ int MGClusterCommand::execute(){
                        nameMap->readMap();
                }else{ nameMap= new NameAssignment(); }
                
-               string fileroot = outputDir + getRootName(getSimpleName(blastfile));
+               string fileroot = outputDir + m->getRootName(m->getSimpleName(blastfile));
                string tag = "";
                time_t start;
                float previousDist = 0.00000;
@@ -179,9 +179,9 @@ int MGClusterCommand::execute(){
                else                                                    { tag = "an";  }
                
                //open output files
-               openOutputFile(fileroot+ tag + ".list",  listFile);
-               openOutputFile(fileroot+ tag + ".rabund",  rabundFile);
-               openOutputFile(fileroot+ tag + ".sabund",  sabundFile);
+               m->openOutputFile(fileroot+ tag + ".list",  listFile);
+               m->openOutputFile(fileroot+ tag + ".rabund",  rabundFile);
+               m->openOutputFile(fileroot+ tag + ".sabund",  sabundFile);
                
                if (m->control_pressed) { 
                        delete nameMap; delete read; delete list; delete rabund; 
@@ -223,9 +223,9 @@ int MGClusterCommand::execute(){
                                float dist = distMatrix->getSmallDist();
                                float rndDist;
                                if (hard) {
-                                       rndDist = ceilDist(dist, precision); 
+                                       rndDist = m->ceilDist(dist, precision); 
                                }else{
-                                       rndDist = roundDist(dist, precision); 
+                                       rndDist = m->roundDist(dist, precision); 
                                }
                                
                                if(previousDist <= 0.0000 && dist != previousDist){
@@ -309,7 +309,7 @@ int MGClusterCommand::execute(){
                        
                        vector<seqDist> seqs; seqs.resize(1); // to start loop
                        //ifstream inHcluster;
-                       //openInputFile(distFile, inHcluster);
+                       //m->openInputFile(distFile, inHcluster);
                        
                        if (m->control_pressed) { 
                                delete nameMap;  delete list; delete rabund; delete hcluster;
@@ -345,9 +345,9 @@ int MGClusterCommand::execute(){
        
                                                float rndDist;
                                                if (hard) {
-                                                       rndDist = ceilDist(seqs[i].dist, precision); 
+                                                       rndDist = m->ceilDist(seqs[i].dist, precision); 
                                                }else{
-                                                       rndDist = roundDist(seqs[i].dist, precision); 
+                                                       rndDist = m->roundDist(seqs[i].dist, precision); 
                                                }
                                                                                                
                                                if((previousDist <= 0.0000) && (seqs[i].dist != previousDist)){
@@ -477,7 +477,7 @@ ListVector* MGClusterCommand::mergeOPFs(map<string, int> binInfo, float dist){
                int count = 0;
                
                if (hclusterWanted) {  
-                       openInputFile(overlapFile, inOverlap);  
+                       m->openInputFile(overlapFile, inOverlap);  
                        if (inOverlap.eof()) {  done = true;  }
                }else { if (overlapMatrix.size() == 0)  {  done = true;  } } 
                
@@ -498,7 +498,7 @@ ListVector* MGClusterCommand::mergeOPFs(map<string, int> binInfo, float dist){
                                if (!inOverlap.eof()) {
                                        string firstName, secondName;
                                        float overlapDistance;
-                                       inOverlap >> firstName >> secondName >> overlapDistance; gobble(inOverlap);
+                                       inOverlap >> firstName >> secondName >> overlapDistance; m->gobble(inOverlap);
                                        
                                        //commented out because we check this in readblast already
                                        //map<string,int>::iterator itA = nameMap->find(firstName);
@@ -571,12 +571,12 @@ ListVector* MGClusterCommand::mergeOPFs(map<string, int> binInfo, float dist){
 void MGClusterCommand::sortHclusterFiles(string unsortedDist, string unsortedOverlap) {
        try {
                //sort distFile
-               string sortedDistFile = sortFile(unsortedDist, outputDir);
+               string sortedDistFile = m->sortFile(unsortedDist, outputDir);
                remove(unsortedDist.c_str());  //delete unsorted file
                distFile = sortedDistFile;
                
                //sort overlap file
-               string sortedOverlapFile = sortFile(unsortedOverlap, outputDir);
+               string sortedOverlapFile = m->sortFile(unsortedOverlap, outputDir);
                remove(unsortedOverlap.c_str());  //delete unsorted file
                overlapFile = sortedOverlapFile;
        }
index eb5e8f92c105f708d56a6d4ce681e94aaa0453c3..18d8d437c619a1a38386d21dc511de75db73e946 100644 (file)
@@ -82,7 +82,7 @@ int main(int argc, char *argv[]){
                                if (lastChar != "\\") { temp += "\\"; } 
                        #endif
                        
-                       temp = getFullPathName(temp);
+                       temp = m->getFullPathName(temp);
                        m->setDefaultPath(temp);
                        
                        m->mothurOutJustToLog("Using default file location " + temp);
@@ -192,11 +192,11 @@ int main(int argc, char *argv[]){
 
                        }else {
                                ofstream outNewLog;
-                               openOutputFileAppend(newlogFileName, outNewLog);
+                               m->openOutputFileAppend(newlogFileName, outNewLog);
                                outNewLog << endl << endl << "*********************************************************************************" << endl << endl;
                                outNewLog.close();
                                
-                               appendFiles(logFileName, newlogFileName);
+                               m->appendFiles(logFileName, newlogFileName);
                                remove(logFileName.c_str());
                        }
                }else{  
index d5086b3909ece580bbb552454ced3a742b790dcd..bfe0692cf035a8c96a933da2ce70ced46ca98429 100644 (file)
--- a/mothur.h
+++ b/mothur.h
@@ -132,1119 +132,81 @@ public:
 };
 
 //**********************************************************************************************************************
-
 template<typename T>
-inline void convert(const string& s, T& x, bool failIfLeftoverChars = true){
-       istringstream i(s);
-       char c;
-       if (!(i >> x) || (failIfLeftoverChars && i.get(c)))
-               throw BadConversion(s);
+void convert(const string& s, T& x, bool failIfLeftoverChars = true){
+       
+               istringstream i(s);
+               char c;
+               if (!(i >> x) || (failIfLeftoverChars && i.get(c)))
+                       throw BadConversion(s);
+       
 }
 
 //**********************************************************************************************************************
 
 template<typename T>
-inline bool convertTestFloat(const string& s, T& x, bool failIfLeftoverChars = true){
-       istringstream i(s);
-       char c;
-       if (!(i >> x) || (failIfLeftoverChars && i.get(c)))
-       {
-               return false;
-       } 
-       return true;
+bool convertTestFloat(const string& s, T& x, bool failIfLeftoverChars = true){
+       
+               istringstream i(s);
+               char c;
+               if (!(i >> x) || (failIfLeftoverChars && i.get(c)))
+               {
+                       return false;
+               } 
+               return true;
+       
 }
 
 //**********************************************************************************************************************
 
 template<typename T>
-inline bool convertTest(const string& s, T& x, bool failIfLeftoverChars = true){
-       istringstream i(s);
-       char c;
-       if (!(i >> x) || (failIfLeftoverChars && i.get(c)))
-       {
-               cout << "unable to be converted into an integer.\n" << endl;
-               return false;
-       } 
-       return true;
+bool convertTest(const string& s, T& x, bool failIfLeftoverChars = true){
+       
+               istringstream i(s);
+               char c;
+               if (!(i >> x) || (failIfLeftoverChars && i.get(c)))
+               {
+                       return false;
+               } 
+               return true;
+       
 }
-
 //**********************************************************************************************************************
-
 template<typename T>
 string toString(const T&x){
-    stringstream output;
-    output << x;
-    return output.str();
+       
+               stringstream output;
+               output << x;
+               return output.str();
+       
 }
 
 //**********************************************************************************************************************
 
 template<typename T>
 string toHex(const T&x){
-       stringstream output;
        
-       output << hex << x;
+               stringstream output;
+               
+               output << hex << x;
 
-    return output.str();
+               return output.str();
+       
 }
 //**********************************************************************************************************************
 
 template<typename T>
 string toString(const T&x, int i){
-       stringstream output;
-       
-       output.precision(i);
-    output << fixed << x;
-       
-    return output.str();
-}
-/***********************************************************************/
-inline int openOutputFileAppend(string fileName, ofstream& fileHandle){
-       
-       fileHandle.open(fileName.c_str(), ios::app);
-       if(!fileHandle) {
-               cout << "Error: Could not open " << fileName << endl;
-               return 1;
-       }
-       else {
-               return 0;
-       }
-
-}
-/***********************************************************************/
-
-inline void gobble(istream& f){
-       
-       char d;
-    while(isspace(d=f.get()))          {;}
-       f.putback(d);
-       
-}
-/***********************************************************************/
-
-inline void gobble(istringstream& f){
-       
-       char d;
-    while(isspace(d=f.get()))          {;}
-       f.putback(d);
-       
-}
-
-/***********************************************************************/
-
-inline string getline(istringstream& fileHandle) {
-       try {
-       
-               string line = "";
-               
-               while (!fileHandle.eof())       {
-                       //get next character
-                       char c = fileHandle.get(); 
-                       
-                       //are you at the end of the line
-                       if ((c == '\n') || (c == '\r') || (c == '\f')){  break; }       
-                       else {          line += c;              }
-               }
-               
-               return line;
-               
-       }
-       catch(exception& e) {
-               cout << "Error in mothur function getline" << endl;
-               exit(1);
-       }
-}
-/***********************************************************************/
-
-inline string getline(ifstream& fileHandle) {
-       try {
        
-               string line = "";
+               stringstream output;
                
-               while (!fileHandle.eof())       {
-                       //get next character
-                       char c = fileHandle.get(); 
-                       
-                       //are you at the end of the line
-                       if ((c == '\n') || (c == '\r') || (c == '\f')){  break; }       
-                       else {          line += c;              }
-               }
+               output.precision(i);
+               output << fixed << x;
                
-               return line;
-               
-       }
-       catch(exception& e) {
-               cout << "Error in mothur function getline" << endl;
-               exit(1);
-       }
-}
-/***********************************************************************/
-
-inline bool isTrue(string f){
-       
-       if ((f == "TRUE") || (f == "T") || (f == "true") || (f == "t")) {       return true;    }
-       else {  return false;  }
-}
-
-/***********************************************************************/
-
-inline float roundDist(float dist, int precision){
-       
-       return int(dist * precision + 0.5)/float(precision);
-       
-}
-/***********************************************************************/
-
-inline float ceilDist(float dist, int precision){
-       
-       return int(ceil(dist * precision))/float(precision);
-       
-}
-
-/***********************************************************************/
-
-inline int getNumNames(string names){
-       
-       int count = 0;
-       
-       if(names != ""){
-               count = 1;
-               for(int i=0;i<names.size();i++){
-                       if(names[i] == ','){
-                               count++;
-                       }
-               }
-       }
-       
-       return count;
-       
-}
-
-/**************************************************************************************************/
-
-inline vector<vector<double> > binomial(int maxOrder){
-       
-       vector<vector<double> > binomial(maxOrder+1);
-       
-    for(int i=0;i<=maxOrder;i++){
-               binomial[i].resize(maxOrder+1);
-               binomial[i][0]=1;
-               binomial[0][i]=0;
-    }
-    binomial[0][0]=1;
-       
-    binomial[1][0]=1;
-    binomial[1][1]=1;
-       
-    for(int i=2;i<=maxOrder;i++){
-               binomial[1][i]=0;
-    }
-       
-    for(int i=2;i<=maxOrder;i++){
-               for(int j=1;j<=maxOrder;j++){
-                       if(i==j){       binomial[i][j]=1;                                                                       }
-                       if(j>i) {       binomial[i][j]=0;                                                                       }
-                       else    {       binomial[i][j]=binomial[i-1][j-1]+binomial[i-1][j];     }
-               }
-    }
-       
-       return binomial;
-}
-
-/***********************************************************************/
-
-inline string getRootName(string longName){
-       string rootName = longName;
-       
-       if(longName.find_last_of(".") != longName.npos){
-               int pos = longName.find_last_of('.')+1;
-               rootName = longName.substr(0, pos);
-       }
-
-       return rootName;
-}
-/***********************************************************************/
-
-inline string getSimpleName(string longName){
-       string simpleName = longName;
-       
-       size_t found;
-       found=longName.find_last_of("/\\");
-
-       if(found != longName.npos){
-               simpleName = longName.substr(found+1);
-       }
-       
-               //if(longName.find_last_of("/") != longName.npos){
-               //      int pos = longName.find_last_of('/')+1;
-               //      simpleName = longName.substr(pos, longName.length());
-               //}
-       
-       return simpleName;
-}
-
-/***********************************************************************/
-
-inline int factorial(int num){
-       int total = 1;
-       
-       for (int i = 1; i <= num; i++) {
-               total *= i;
-       }
-       
-       return total;
-}
-/**************************************************************************************************
-
-double min(double x, double y)
-{
-    if(x<y){   return x;    }
-    else   {   return y;    }
-}
-
-/***********************************************************************/
-
-inline string getPathName(string longName){
-       string rootPathName = longName;
-       
-       if(longName.find_last_of("/\\") != longName.npos){
-               int pos = longName.find_last_of("/\\")+1;
-               rootPathName = longName.substr(0, pos);
-       }
-       
-       return rootPathName;
-}
-/***********************************************************************/
-
-inline string hasPath(string longName){
-       
-       string path = "";
-       
-       size_t found;
-       found=longName.find_last_of("~/\\");
-
-       if(found != longName.npos){
-               path = longName.substr(0, found+1);
-       }
-       
-       return path;
-}
-
-/***********************************************************************/
-
-inline string getExtension(string longName){
-       
-       string extension = longName;
+               return output.str();
        
-       if(longName.find_last_of('.') != longName.npos){
-               int pos = longName.find_last_of('.');
-               extension = longName.substr(pos, longName.length());
-       }
-       
-       return extension;
-}
-/***********************************************************************/
-inline bool isBlank(string fileName){
-       
-       ifstream fileHandle;
-       fileHandle.open(fileName.c_str());
-       if(!fileHandle) {
-               cout << "Error: Could not open " << fileName << endl;
-               return false;
-       }else {
-               //check for blank file
-               gobble(fileHandle);
-               if (fileHandle.eof()) { fileHandle.close(); return true;  }
-       }
-       return false;
-}
-/***********************************************************************/
-
-inline string getFullPathName(string fileName){
-       try{
-       
-       string path = hasPath(fileName);
-       string newFileName;
-       int pos;
-       
-       if (path == "") { return fileName; } //its a simple name
-       else { //we need to complete the pathname
-               // ex. ../../../filename 
-               // cwd = /user/work/desktop
-                               
-               string cwd;
-               //get current working directory 
-               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)   
-                       
-                       if (path.find("~") != -1) { //go to home directory
-                               string homeDir = getenv ("HOME");
-                               newFileName = homeDir + fileName.substr(fileName.find("~")+1);
-                               return newFileName;
-                       }else { //find path
-                               if (path.rfind("./") == -1) { return fileName; } //already complete name
-                               else { newFileName = fileName.substr(fileName.rfind("./")+2); } //save the complete part of the name
-                               
-                               char* cwdpath = new char[1024];
-
-                               size_t size;
-                               cwdpath=getcwd(cwdpath,size);
-                       
-                               cwd = cwdpath;
-                               
-                               //rip off first '/'
-                               string simpleCWD;
-                               if (cwd.length() > 0) { simpleCWD = cwd.substr(1); }
-                               
-                               //break apart the current working directory
-                               vector<string> dirs;
-                               while (simpleCWD.find_first_of('/') != -1) {
-                                       string dir = simpleCWD.substr(0,simpleCWD.find_first_of('/'));
-                                       simpleCWD = simpleCWD.substr(simpleCWD.find_first_of('/')+1, simpleCWD.length());
-                                       dirs.push_back(dir);
-                               }
-                               //get last one              // ex. ../../../filename = /user/work/desktop/filename
-                               dirs.push_back(simpleCWD);  //ex. dirs[0] = user, dirs[1] = work, dirs[2] = desktop
-                               
-                       
-                               int index = dirs.size()-1;
-               
-                               while((pos = path.rfind("./")) != -1) { //while you don't have a complete path
-                                       if (pos == 0) { break;  //you are at the end
-                                       }else if (path[(pos-1)] == '.') { //you want your parent directory ../
-                                               path = path.substr(0, pos-1);
-                                               index--;
-                                               if (index == 0) {  break; }
-                                       }else if (path[(pos-1)] == '/') { //you want the current working dir ./
-                                               path = path.substr(0, pos);
-                                       }else if (pos == 1) { break;  //you are at the end
-                                       }else { cout << "cannot resolve path for " <<  fileName << endl; return fileName; }
-                               }
-                       
-                               for (int i = index; i >= 0; i--) {
-                                       newFileName = dirs[i] +  "/" + newFileName;             
-                               }
-                               
-                               newFileName =  "/" +  newFileName;
-                               return newFileName;
-                       }       
-               #else
-                       if (path.find("~") != -1) { //go to home directory
-                               string homeDir = getenv ("HOMEPATH");
-                               newFileName = homeDir + fileName.substr(fileName.find("~")+1);
-                               return newFileName;
-                       }else { //find path
-                               if (path.rfind(".\\") == -1) { return fileName; } //already complete name
-                               else { newFileName = fileName.substr(fileName.rfind(".\\")+2); } //save the complete part of the name
-                                                       
-                               char *cwdpath = NULL;
-                               cwdpath = getcwd(NULL, 0); // or _getcwd
-                               if ( cwdpath != NULL) { cwd = cwdpath; }
-                               else { cwd = "";  }
-                               
-                               //break apart the current working directory
-                               vector<string> dirs;
-                               while (cwd.find_first_of('\\') != -1) {
-                                       string dir = cwd.substr(0,cwd.find_first_of('\\'));
-                                       cwd = cwd.substr(cwd.find_first_of('\\')+1, cwd.length());
-                                       dirs.push_back(dir);
-               
-                               }
-                               //get last one
-                               dirs.push_back(cwd);  //ex. dirs[0] = user, dirs[1] = work, dirs[2] = desktop
-                                       
-                               int index = dirs.size()-1;
-                                       
-                               while((pos = path.rfind(".\\")) != -1) { //while you don't have a complete path
-                                       if (pos == 0) { break;  //you are at the end
-                                       }else if (path[(pos-1)] == '.') { //you want your parent directory ../
-                                               path = path.substr(0, pos-1);
-                                               index--;
-                                               if (index == 0) {  break; }
-                                       }else if (path[(pos-1)] == '\\') { //you want the current working dir ./
-                                               path = path.substr(0, pos);
-                                       }else if (pos == 1) { break;  //you are at the end
-                                       }else { cout << "cannot resolve path for " <<  fileName << endl; return fileName; }
-                               }
-                       
-                               for (int i = index; i >= 0; i--) {
-                                       newFileName = dirs[i] +  "\\" + newFileName;            
-                               }
-                               
-                               return newFileName;
-                       }
-                       
-               #endif
-       }
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function getFullPathName. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
 }
-/***********************************************************************/
-
-inline int openInputFile(string fileName, ifstream& fileHandle, string m){
-       
-       //get full path name
-       string completeFileName = getFullPathName(fileName);
-
-       fileHandle.open(completeFileName.c_str());
-       if(!fileHandle) {
-               return 1;
-       }else {
-               //check for blank file
-               gobble(fileHandle);
-               return 0;
-       }       
-}
-/***********************************************************************/
-
-inline int openInputFile(string fileName, ifstream& fileHandle){
-       
-       //get full path name
-       string completeFileName = getFullPathName(fileName);
-
-       fileHandle.open(completeFileName.c_str());
-       if(!fileHandle) {
-               cout << "Error: Could not open " << completeFileName << endl;
-               return 1;
-       }
-       else {
-               //check for blank file
-               gobble(fileHandle);
-               if (fileHandle.eof()) { cout << completeFileName << " is blank. Please correct." << endl;   }
-               
-               return 0;
-       }
-       
-}
-/***********************************************************************/
-
-inline int renameFile(string oldName, string newName){
-       
-       ifstream inTest;
-       int exist = openInputFile(newName, inTest, "");
-       
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)          
-       if (exist == 0) { //you could open it so you want to delete it
-               inTest.close();
-               string command = "rm " + newName;
-               system(command.c_str());
-       }
-                       
-       string command = "mv " + oldName + " " + newName;
-       system(command.c_str());
-#else
-       remove(newName.c_str());
-       int renameOk = rename(oldName.c_str(), newName.c_str());
-#endif
-       return 0;
-}
-
-/***********************************************************************/
-
-inline int openOutputFile(string fileName, ofstream& fileHandle){
-       
-       string completeFileName = getFullPathName(fileName);
-       
-       fileHandle.open(completeFileName.c_str(), ios::trunc);
-       if(!fileHandle) {
-               cout << "Error: Could not open " << completeFileName << endl;
-               return 1;
-       }
-       else {
-               return 0;
-       }
-
-}
-
-/***********************************************************************/
-
-inline int getNumSeqs(ifstream& file){
-       
-       int numSeqs = count(istreambuf_iterator<char>(file),istreambuf_iterator<char>(), '>');
-       file.seekg(0);
-       return numSeqs;
-
-}
-/***********************************************************************/
-inline void getNumSeqs(ifstream& file, int& numSeqs){
-       
-       string input;
-       numSeqs = 0;
-       while(!file.eof()){
-               input = getline(file);
-               if (input.length() != 0) {
-                       if(input[0] == '>'){ numSeqs++; }
-               }
-       }
-}
-
-/***********************************************************************/
-
-inline bool inVector(string member, vector<string> group){
-       
-       for (int i = 0; i < group.size(); i++) {
-               if (group[i] == member) {  return true;         }
-       }
-       
-       return false;
-}
-/***********************************************************************/
-
-//This function parses the estimator options and puts them in a vector
-inline void splitAtChar(string& estim, vector<string>& container, char symbol) {
-       try {
-               string individual;
-               
-               while (estim.find_first_of(symbol) != -1) {
-                       individual = estim.substr(0,estim.find_first_of(symbol));
-                       if ((estim.find_first_of(symbol)+1) <= estim.length()) { //checks to make sure you don't have dash at end of string
-                               estim = estim.substr(estim.find_first_of(symbol)+1, estim.length());
-                               container.push_back(individual);
-                       }
-               }
-               //get last one
-               container.push_back(estim);
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function splitAtDash. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-
-/***********************************************************************/
-
-//This function parses the estimator options and puts them in a vector
-inline void splitAtDash(string& estim, vector<string>& container) {
-       try {
-               string individual;
-               
-               while (estim.find_first_of('-') != -1) {
-                       individual = estim.substr(0,estim.find_first_of('-'));
-                       if ((estim.find_first_of('-')+1) <= estim.length()) { //checks to make sure you don't have dash at end of string
-                               estim = estim.substr(estim.find_first_of('-')+1, estim.length());
-                               container.push_back(individual);
-                       }
-               }
-               //get last one
-               container.push_back(estim);
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function splitAtDash. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-
-/***********************************************************************/
-//This function parses the label options and puts them in a set
-inline void splitAtDash(string& estim, set<string>& container) {
-       try {
-               string individual;
-               
-               while (estim.find_first_of('-') != -1) {
-                       individual = estim.substr(0,estim.find_first_of('-'));
-                       if ((estim.find_first_of('-')+1) <= estim.length()) { //checks to make sure you don't have dash at end of string
-                               estim = estim.substr(estim.find_first_of('-')+1, estim.length());
-                               container.insert(individual);
-                       }
-               }
-               //get last one
-               container.insert(estim);
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function splitAtDash. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-/***********************************************************************/
-//This function parses the line options and puts them in a set
-inline void splitAtDash(string& estim, set<int>& container) {
-       try {
-               string individual;
-               int lineNum;
-               
-               while (estim.find_first_of('-') != -1) {
-                       individual = estim.substr(0,estim.find_first_of('-'));
-                       if ((estim.find_first_of('-')+1) <= estim.length()) { //checks to make sure you don't have dash at end of string
-                               estim = estim.substr(estim.find_first_of('-')+1, estim.length());
-                               convert(individual, lineNum); //convert the string to int
-                               container.insert(lineNum);
-                       }
-               }
-               //get last one
-               convert(estim, lineNum); //convert the string to int
-               container.insert(lineNum);
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function splitAtDash. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-/***********************************************************************/
-//This function parses the a string and puts peices in a vector
-inline void splitAtComma(string& estim, vector<string>& container) {
-       try {
-               string individual;
-               
-               while (estim.find_first_of(',') != -1) {
-                       individual = estim.substr(0,estim.find_first_of(','));
-                       if ((estim.find_first_of(',')+1) <= estim.length()) { //checks to make sure you don't have comma at end of string
-                               estim = estim.substr(estim.find_first_of(',')+1, estim.length());
-                               container.push_back(individual);
-                       }
-               }
-               //get last one
-               container.push_back(estim);
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function splitAtComma. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-/***********************************************************************/
-
-//This function splits up the various option parameters
-inline void splitAtComma(string& prefix, string& suffix){
-       try {
-               prefix = suffix.substr(0,suffix.find_first_of(','));
-               if ((suffix.find_first_of(',')+2) <= suffix.length()) {  //checks to make sure you don't have comma at end of string
-                       suffix = suffix.substr(suffix.find_first_of(',')+1, suffix.length());
-                       string space = " ";
-                       while(suffix.at(0) == ' ')
-                               suffix = suffix.substr(1, suffix.length());
-               }
-
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function splitAtComma. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-/***********************************************************************/
-
-//This function separates the key value from the option value i.e. dist=96_...
-inline void splitAtEquals(string& key, string& value){         
-       try {
-               if(value.find_first_of('=') != -1){
-                       key = value.substr(0,value.find_first_of('='));
-                       if ((value.find_first_of('=')+1) <= value.length()) {
-                               value = value.substr(value.find_first_of('=')+1, value.length());
-                       }
-               }else{
-                       key = value;
-                       value = 1;
-               }
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function splitAtEquals. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-
-/**************************************************************************************************/
-
-inline bool inUsersGroups(string groupname, vector<string> Groups) {
-       try {
-               for (int i = 0; i < Groups.size(); i++) {
-                       if (groupname == Groups[i]) { return true; }
-               }
-               return false;
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function inUsersGroups. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-/**************************************************************************************************/
-//returns true if any of the strings in first vector are in second vector
-inline bool inUsersGroups(vector<string> groupnames, vector<string> Groups) {
-       try {
-               
-               for (int i = 0; i < groupnames.size(); i++) {
-                       if (inUsersGroups(groupnames[i], Groups)) { return true; }
-               }
-               return false;
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function inUsersGroups. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-/***********************************************************************/
-//this function determines if the user has given us labels that are smaller than the given label.
-//if so then it returns true so that the calling function can run the previous valid distance.
-//it's a "smart" distance function.  It also checks for invalid labels.
-inline bool anyLabelsToProcess(string label, set<string>& userLabels, string errorOff) {
-       try {
-               
-               set<string>::iterator it;
-               vector<float> orderFloat;
-               map<string, float> userMap;  //the conversion process removes trailing 0's which we need to put back
-               map<string, float>::iterator it2;
-               float labelFloat;
-               bool smaller = false;
-               
-               //unique is the smallest line
-               if (label == "unique") {  return false;  }
-               else { 
-                       if (convertTestFloat(label, labelFloat)) {
-                               convert(label, labelFloat); 
-                       }else { //cant convert 
-                               return false;
-                       }
-               }
-               
-               //go through users set and make them floats
-               for(it = userLabels.begin(); it != userLabels.end(); ++it) {
-                       
-                       float temp;
-                       if ((*it != "unique") && (convertTestFloat(*it, temp) == true)){
-                               convert(*it, temp);
-                               orderFloat.push_back(temp);
-                               userMap[*it] = temp;
-                       }else if (*it == "unique") { 
-                               orderFloat.push_back(-1.0);
-                               userMap["unique"] = -1.0;
-                       }else {
-                               if (errorOff == "") {  cout << *it << " is not a valid label." << endl;  }
-                               userLabels.erase(*it); 
-                               it--;
-                       }
-               }
-               
-               //sort order
-               sort(orderFloat.begin(), orderFloat.end());
-               
-               /*************************************************/
-               //is this label bigger than any of the users labels
-               /*************************************************/
-                               
-               //loop through order until you find a label greater than label
-               for (int i = 0; i < orderFloat.size(); i++) {
-                       if (orderFloat[i] < labelFloat) {
-                               smaller = true;
-                               if (orderFloat[i] == -1) { 
-                                       if (errorOff == "") { cout << "Your file does not include the label unique." << endl; }
-                                       userLabels.erase("unique");
-                               }
-                               else {  
-                                       if (errorOff == "") { cout << "Your file does not include the label " << endl; }
-                                       string s = "";
-                                       for (it2 = userMap.begin(); it2!= userMap.end(); it2++) {  
-                                               if (it2->second == orderFloat[i]) {  
-                                                       s = it2->first;  
-                                                       //remove small labels
-                                                       userLabels.erase(s);
-                                                       break;
-                                               }
-                                       }
-                                       if (errorOff == "") {cout << s <<  ". I will use the next smallest distance. " << endl; }
-                               }
-                       //since they are sorted once you find a bigger one stop looking
-                       }else { break; }
-               }
-               
-               return smaller;
-                                               
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function anyLabelsToProcess. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-
-/**************************************************************************************************/
-inline void appendFiles(string temp, string filename) {
-       try{
-               ofstream output;
-               ifstream input;
-       
-               //open output file in append mode
-               openOutputFileAppend(filename, output);
-               int ableToOpen = openInputFile(temp, input, "no error");
-               
-               if (ableToOpen == 0) { //you opened it
-                       while(char c = input.get()){
-                               if(input.eof())         {       break;                  }
-                               else                            {       output << c;    }
-                       }
-                       input.close();
-               }
-               
-               output.close();
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function appendFiles. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-
-/**************************************************************************************************/
-inline string sortFile(string distFile, string outputDir){
-       try {   
-       
-               //if (outputDir == "") {  outputDir += hasPath(distFile);  }
-               string outfile = getRootName(distFile) + "sorted.dist";
-
-               
-               //if you can, use the unix sort since its been optimized for years
-               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
-                       string command = "sort -n -k +3 " + distFile + " -o " + outfile;
-                       system(command.c_str());
-               #else //you are stuck with my best attempt...
-                       //windows sort does not have a way to specify a column, only a character in the line
-                       //since we cannot assume that the distance will always be at the the same character location on each line
-                       //due to variable sequence name lengths, I chose to force the distance into first position, then sort and then put it back.
-               
-                       //read in file line by file and put distance first
-                       string tempDistFile = distFile + ".temp";
-                       ifstream input;
-                       ofstream output;
-                       openInputFile(distFile, input);
-                       openOutputFile(tempDistFile, output);
-
-                       string firstName, secondName;
-                       float dist;
-                       while (input) {
-                               input >> firstName >> secondName >> dist;
-                               output << dist << '\t' << firstName << '\t' << secondName << endl;
-                               gobble(input);
-                       }
-                       input.close();
-                       output.close();
-               
-       
-                       //sort using windows sort
-                       string tempOutfile = outfile + ".temp";
-                       string command = "sort " + tempDistFile + " /O " + tempOutfile;
-                       system(command.c_str());
-               
-                       //read in sorted file and put distance at end again
-                       ifstream input2;
-                       openInputFile(tempOutfile, input2);
-                       openOutputFile(outfile, output);
-               
-                       while (input2) {
-                               input2 >> dist >> firstName >> secondName;
-                               output << firstName << '\t' << secondName << '\t' << dist << endl;
-                               gobble(input2);
-                       }
-                       input2.close();
-                       output.close();
-               
-                       //remove temp files
-                       remove(tempDistFile.c_str());
-                       remove(tempOutfile.c_str());
-               #endif
-               
-               return outfile;
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function sortfile. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }       
-}
-/**************************************************************************************************/
-inline vector<unsigned long int> setFilePosFasta(string filename, int& num) {
-
-                       vector<unsigned long int> positions;
-                       ifstream inFASTA;
-                       openInputFile(filename, inFASTA);
-                                               
-                       string input;
-                       while(!inFASTA.eof()){
-                               input = getline(inFASTA); 
-                               if (input.length() != 0) {
-                                       if(input[0] == '>'){    unsigned long int pos = inFASTA.tellg(); positions.push_back(pos - input.length() - 1); }
-                               }
-                               gobble(inFASTA); //has to be here since windows line endings are 2 characters and mess up the positions
-                       }
-                       inFASTA.close();
-               
-                       num = positions.size();
-               
-                       /*FILE * pFile;
-                       long size;
-               
-                       //get num bytes in file
-                       pFile = fopen (filename.c_str(),"rb");
-                       if (pFile==NULL) perror ("Error opening file");
-                       else{
-                               fseek (pFile, 0, SEEK_END);
-                               size=ftell (pFile);
-                               fclose (pFile);
-                       }*/
-                       
-                       unsigned long int size = positions[(positions.size()-1)];
-                       ifstream in;
-                       openInputFile(filename, in);
-                       
-                       in.seekg(size);
-               
-                       while(char c = in.get()){
-                               if(in.eof())            {       break;  }
-                               else                            {       size++; }
-                       }
-                       in.close();
-               
-                       positions.push_back(size);
-               
-                       return positions;
-}
-/**************************************************************************************************/
-inline vector<unsigned long int> setFilePosEachLine(string filename, int& num) {
-
-                       vector<unsigned long int> positions;
-                       ifstream in;
-                       openInputFile(filename, in);
-                               
-                       string input;
-                       while(!in.eof()){
-                               unsigned long int lastpos = in.tellg();
-                               input = getline(in); 
-                               if (input.length() != 0) {
-                                       unsigned long int pos = in.tellg(); 
-                                       if (pos != -1) { positions.push_back(pos - input.length() - 1); }
-                                       else {  positions.push_back(lastpos);  }
-                               }
-                               gobble(in); //has to be here since windows line endings are 2 characters and mess up the positions
-                       }
-                       in.close();
-               
-                       num = positions.size();
-               
-                       FILE * pFile;
-                       unsigned long int size;
-               
-                       //get num bytes in file
-                       pFile = fopen (filename.c_str(),"rb");
-                       if (pFile==NULL) perror ("Error opening file");
-                       else{
-                               fseek (pFile, 0, SEEK_END);
-                               size=ftell (pFile);
-                               fclose (pFile);
-                       }
-               
-                       positions.push_back(size);
-               
-                       return positions;
-}
-/**************************************************************************************************/
-
-inline vector<unsigned long int> divideFile(string filename, int& proc) {
-       try{
-       
-               vector<unsigned long int> filePos;
-               filePos.push_back(0);
-               
-               FILE * pFile;
-               unsigned long int size;
-               
-               //get num bytes in file
-               pFile = fopen (filename.c_str(),"rb");
-               if (pFile==NULL) perror ("Error opening file");
-               else{
-                       fseek (pFile, 0, SEEK_END);
-                       size=ftell (pFile);
-                       fclose (pFile);
-               }
-       
-               //estimate file breaks
-               unsigned long int chunkSize = 0;
-               chunkSize = size / proc;
-               
-               //file to small to divide by processors
-               if (chunkSize == 0)  {  proc = 1;       filePos.push_back(size); return filePos;        }
-       
-               //for each process seekg to closest file break and search for next '>' char. make that the filebreak
-               for (int i = 0; i < proc; i++) {
-                       unsigned long int spot = (i+1) * chunkSize;
-                                       
-                       ifstream in;
-                       openInputFile(filename, in);
-                       in.seekg(spot);
-                       
-                       //look for next '>'
-                       unsigned long int newSpot = spot;
-                       while (!in.eof()) {
-                          char c = in.get();
-                          if (c == '>') {   in.putback(c); newSpot = in.tellg(); break;  }
-                       }
-                               
-                       //there was not another sequence before the end of the file
-                       unsigned long int sanityPos = in.tellg();
-                       if (sanityPos == -1) {  break;  }
-                       else {   filePos.push_back(newSpot);  }
-                       
-                       in.close();
-               }
-               
-               //save end pos
-               filePos.push_back(size);
-               
-               //sanity check filePos
-               for (int i = 0; i < (filePos.size()-1); i++) {
-                       if (filePos[(i+1)] <= filePos[i]) {  filePos.erase(filePos.begin()+(i+1)); i--; }
-               }
-
-               proc = (filePos.size() - 1);
-               
-               return filePos;
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function divideFile. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }
-}
-/**************************************************************************************************/
-inline bool checkReleaseVersion(ifstream& file, string version) {
-       try {
-               
-               bool good = true;
-               
-               string line = getline(file);  
+//**********************************************************************************************************************
 
-               //before we added this check
-               if (line[0] != '#') {  good = false;  }
-               else {
-                       //rip off #
-                       line = line.substr(1);
-                       
-                       vector<string> versionVector;
-                       splitAtChar(version, versionVector, '.');
-                       
-                       //check file version
-                       vector<string> linesVector;
-                       splitAtChar(line, linesVector, '.');
-                       
-                       if (versionVector.size() != linesVector.size()) { good = false; }
-                       else {
-                               for (int j = 0; j < versionVector.size(); j++) {
-                                       int num1, num2;
-                                       convert(versionVector[j], num1);
-                                       convert(linesVector[j], num2);
-                                       
-                                       //if mothurs version is newer than this files version, then we want to remake it
-                                       if (num1 > num2) {  good = false; break;  }
-                               }
-                       }
-                       
-               }
-               
-               if (!good) {  file.close();  }
-               else { file.seekg(0);  }
-               
-               return good;
-       }
-       catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the mothur.h function checkReleaseVersion. Please contact Pat Schloss at mothur.bugs@gmail.com." << "\n";
-               exit(1);
-       }
-}
-/**************************************************************************************************/
 #endif
 
index d3f8e7af788563fa1dd89a401c027175377a98dc..5c5fd373a32cbb233fb9a76dd81de87c54cb80eb 100644 (file)
-/*\r
- *  m->mothurOut.cpp\r
- *  Mothur\r
- *\r
- *  Created by westcott on 2/25/10.\r
- *  Copyright 2010 Schloss Lab. All rights reserved.\r
- *\r
- */\r
-\r
-#include "mothurout.h"\r
-\r
-/******************************************************/\r
-MothurOut* MothurOut::getInstance() {\r
-       if( _uniqueInstance == 0) {\r
-               _uniqueInstance = new MothurOut();\r
-       }\r
-       return _uniqueInstance;\r
-}\r
-/*********************************************************************************************/\r
-void MothurOut::setFileName(string filename)  {\r
-       try {\r
-               logFileName = filename;\r
-               \r
-               #ifdef USE_MPI\r
-                       int pid;\r
-                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); \r
-                                       \r
-                       if (pid == 0) { //only one process should output to screen\r
-               #endif\r
-               \r
-               openOutputFile(filename, out);\r
-               \r
-               #ifdef USE_MPI\r
-                       }\r
-               #endif\r
-       }\r
-       catch(exception& e) {\r
-               errorOut(e, "MothurOut", "setFileName");\r
-               exit(1);\r
-       }\r
-}\r
-/*********************************************************************************************/\r
-void MothurOut::setDefaultPath(string pathname)  {\r
-       try {\r
-       \r
-               //add / to name if needed\r
-               string lastChar = pathname.substr(pathname.length()-1);\r
-               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)\r
-                       if (lastChar != "/") { pathname += "/"; }\r
-               #else\r
-                       if (lastChar != "\\") { pathname += "\\"; }     \r
-               #endif\r
-               \r
-               defaultPath = pathname;\r
-               \r
-       }\r
-       catch(exception& e) {\r
-               errorOut(e, "MothurOut", "setDefaultPath");\r
-               exit(1);\r
-       }\r
-}\r
-/*********************************************************************************************/\r
-void MothurOut::closeLog()  {\r
-       try {\r
-               \r
-               #ifdef USE_MPI\r
-                       int pid;\r
-                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); \r
-                                       \r
-                       if (pid == 0) { //only one process should output to screen\r
-               #endif\r
-               \r
-               out.close();\r
-               \r
-               #ifdef USE_MPI\r
-                       }\r
-               #endif\r
-       }\r
-       catch(exception& e) {\r
-               errorOut(e, "MothurOut", "closeLog");\r
-               exit(1);\r
-       }\r
-}\r
-\r
-/*********************************************************************************************/\r
-MothurOut::~MothurOut() {\r
-       try {\r
-               _uniqueInstance = 0;\r
-               \r
-       }\r
-       catch(exception& e) {\r
-               errorOut(e, "MothurOut", "MothurOut");\r
-               exit(1);\r
-       }\r
-}\r
-/*********************************************************************************************/\r
-void MothurOut::mothurOut(string output) {\r
-       try {\r
-               \r
-               #ifdef USE_MPI\r
-                       int pid;\r
-                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); \r
-                                       \r
-                       if (pid == 0) { //only one process should output to screen\r
-               #endif\r
-               \r
-               cout << output;\r
-               out << output;\r
-               \r
-               #ifdef USE_MPI\r
-                       }\r
-               #endif\r
-       }\r
-       catch(exception& e) {\r
-               errorOut(e, "MothurOut", "MothurOut");\r
-               exit(1);\r
-       }\r
-}\r
-/*********************************************************************************************/\r
-void MothurOut::mothurOutEndLine() {\r
-       try {\r
-               #ifdef USE_MPI\r
-                       int pid;\r
-                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); \r
-                                       \r
-                       if (pid == 0) { //only one process should output to screen\r
-               #endif\r
-               \r
-               cout << endl;\r
-               out << endl;\r
-               \r
-               #ifdef USE_MPI\r
-                       }\r
-               #endif\r
-       }\r
-       catch(exception& e) {\r
-               errorOut(e, "MothurOut", "MothurOutEndLine");\r
-               exit(1);\r
-       }\r
-}\r
-/*********************************************************************************************/\r
-void MothurOut::mothurOutJustToLog(string output) {\r
-       try {\r
-               #ifdef USE_MPI\r
-                       int pid;\r
-                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); \r
-                                       \r
-                       if (pid == 0) { //only one process should output to screen\r
-               #endif\r
-               \r
-               out << output;\r
-               \r
-               #ifdef USE_MPI\r
-                       }\r
-               #endif\r
-       }\r
-       catch(exception& e) {\r
-               errorOut(e, "MothurOut", "MothurOutJustToLog");\r
-               exit(1);\r
-       }\r
-}\r
-/*********************************************************************************************/\r
-void MothurOut::errorOut(exception& e, string object, string function) {\r
-       double vm, rss;\r
-       //mem_usage(vm, rss);\r
-       \r
-       mothurOut("Error: ");\r
-       mothurOut(toString(e.what()));\r
-       mothurOut(" has occurred in the " + object + " class function " + function + ". Please contact Pat Schloss at mothur.bugs@gmail.com, and be sure to include the mothur.logFile with your inquiry.");\r
-       mothurOutEndLine();\r
-}\r
-/*********************************************************************************************/\r
-//The following was originally from http://stackoverflow.com/questions/669438/how-to-get-memory-usage-at-run-time-in-c \r
-// process_mem_usage(double &, double &) - takes two doubles by reference,\r
-// attempts to read the system-dependent data for a process' virtual memory\r
-// size and resident set size, and return the results in KB.\r
-//\r
-// On failure, returns 0.0, 0.0\r
-int MothurOut::mem_usage(double& vm_usage, double& resident_set) {\r
-  #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)\r
-  \r
-          vm_usage     = 0.0;\r
-          resident_set = 0.0;\r
-\r
-          // 'file' stat seems to give the most reliable results\r
-          //\r
-          ifstream stat_stream("/proc/self/stat",ios_base::in);\r
-\r
-          // dummy vars for leading entries in stat that we don't care about\r
-          //\r
-          string pid, comm, state, ppid, pgrp, session, tty_nr;\r
-          string tpgid, flags, minflt, cminflt, majflt, cmajflt;\r
-          string utime, stime, cutime, cstime, priority, nice;\r
-          string O, itrealvalue, starttime;\r
-\r
-          // the two fields we want\r
-          //\r
-          unsigned long vsize;\r
-          long rss;\r
-\r
-          stat_stream >> pid >> comm >> state >> ppid >> pgrp >> session >> tty_nr\r
-                                  >> tpgid >> flags >> minflt >> cminflt >> majflt >> cmajflt\r
-                                  >> utime >> stime >> cutime >> cstime >> priority >> nice\r
-                                  >> O >> itrealvalue >> starttime >> vsize >> rss; // don't care about the rest\r
-\r
-          long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages\r
-          vm_usage     = vsize / 1024.0;\r
-          resident_set = rss * page_size_kb;\r
-          \r
-          mothurOut("Memory Usage: vm = " + toString(vm_usage) + " rss = " + toString(resident_set) + "\n");\r
-               return 0;\r
-\r
-       #else\r
-/*             //windows memory usage\r
-               // Get the list of process identifiers.\r
-               DWORD aProcesses[1024], cbNeeded, cProcesses;\r
-               \r
-               if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ){ return 1; }\r
-\r
-               // Calculate how many process identifiers were returned.\r
-               cProcesses = cbNeeded / sizeof(DWORD);\r
-\r
-               // Print the memory usage for each process\r
-               for (int i = 0; i < cProcesses; i++ ) {\r
-                       DWORD processID = aProcesses[i];\r
-                       \r
-                       PROCESS_MEMORY_COUNTERS pmc;\r
-\r
-                       HANDLE hProcess = OpenProcess((PROCESS_QUERY_INFORMATION | PROCESS_VM_READ), FALSE, processID);\r
-\r
-                       // Print the process identifier.\r
-                       printf( "\nProcess ID: %u\n", processID);\r
-                       \r
-                       if (NULL != hProcess) {\r
-\r
-                               if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) ) {\r
-                                       printf( "\tPageFaultCount: 0x%08X\n", pmc.PageFaultCount );\r
-                                       printf( "\tPeakWorkingSetSize: 0x%08X\n", pmc.PeakWorkingSetSize );\r
-                                       printf( "\tWorkingSetSize: 0x%08X\n", pmc.WorkingSetSize );\r
-                                       printf( "\tQuotaPeakPagedPoolUsage: 0x%08X\n", pmc.QuotaPeakPagedPoolUsage );\r
-                                       printf( "\tQuotaPagedPoolUsage: 0x%08X\n", pmc.QuotaPagedPoolUsage );\r
-                                       printf( "\tQuotaPeakNonPagedPoolUsage: 0x%08X\n", pmc.QuotaPeakNonPagedPoolUsage );\r
-                                       printf( "\tQuotaNonPagedPoolUsage: 0x%08X\n", pmc.QuotaNonPagedPoolUsage );\r
-                                       printf( "\tPagefileUsage: 0x%08X\n", pmc.PagefileUsage ); \r
-                                       printf( "\tPeakPagefileUsage: 0x%08X\n", pmc.PeakPagefileUsage );\r
-                               }\r
-                               CloseHandle(hProcess);\r
-                       }\r
-               }\r
-*/\r
-                       return 0;\r
-\r
-       #endif\r
-}\r
-/*********************************************************************************************/\r
-\r
-\r
-\r
-\r
-\r
-\r
+/*
+ *  mothurOut.cpp
+ *  Mothur
+ *
+ *  Created by westcott on 2/25/10.
+ *  Copyright 2010 Schloss Lab. All rights reserved.
+ *
+ */
+
+#include "mothurout.h"
+
+/******************************************************/
+MothurOut* MothurOut::getInstance() {
+       if( _uniqueInstance == 0) {
+               _uniqueInstance = new MothurOut();
+       }
+       return _uniqueInstance;
+}
+/*********************************************************************************************/
+void MothurOut::setFileName(string filename)  {
+       try {
+               logFileName = filename;
+               
+               #ifdef USE_MPI
+                       int pid;
+                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); 
+                                       
+                       if (pid == 0) { //only one process should output to screen
+               #endif
+               
+               openOutputFile(filename, out);
+               
+               #ifdef USE_MPI
+                       }
+               #endif
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "setFileName");
+               exit(1);
+       }
+}
+/*********************************************************************************************/
+void MothurOut::setDefaultPath(string pathname)  {
+       try {
+       
+               //add / to name if needed
+               string lastChar = pathname.substr(pathname.length()-1);
+               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+                       if (lastChar != "/") { pathname += "/"; }
+               #else
+                       if (lastChar != "\\") { pathname += "\\"; }     
+               #endif
+               
+               defaultPath = pathname;
+               
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "setDefaultPath");
+               exit(1);
+       }
+}
+/*********************************************************************************************/
+void MothurOut::closeLog()  {
+       try {
+               
+               #ifdef USE_MPI
+                       int pid;
+                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); 
+                                       
+                       if (pid == 0) { //only one process should output to screen
+               #endif
+               
+               out.close();
+               
+               #ifdef USE_MPI
+                       }
+               #endif
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "closeLog");
+               exit(1);
+       }
+}
+
+/*********************************************************************************************/
+MothurOut::~MothurOut() {
+       try {
+               _uniqueInstance = 0;
+               
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "MothurOut");
+               exit(1);
+       }
+}
+/*********************************************************************************************/
+void MothurOut::mothurOut(string output) {
+       try {
+               
+               #ifdef USE_MPI
+                       int pid;
+                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); 
+                                       
+                       if (pid == 0) { //only one process should output to screen
+               #endif
+               
+               cout << output;
+               out << output;
+               
+               #ifdef USE_MPI
+                       }
+               #endif
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "MothurOut");
+               exit(1);
+       }
+}
+/*********************************************************************************************/
+void MothurOut::mothurOutEndLine() {
+       try {
+               #ifdef USE_MPI
+                       int pid;
+                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); 
+                                       
+                       if (pid == 0) { //only one process should output to screen
+               #endif
+               
+               cout << endl;
+               out << endl;
+               
+               #ifdef USE_MPI
+                       }
+               #endif
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "MothurOutEndLine");
+               exit(1);
+       }
+}
+/*********************************************************************************************/
+void MothurOut::mothurOutJustToLog(string output) {
+       try {
+               #ifdef USE_MPI
+                       int pid;
+                       MPI_Comm_rank(MPI_COMM_WORLD, &pid); 
+                                       
+                       if (pid == 0) { //only one process should output to screen
+               #endif
+               
+               out << output;
+               
+               #ifdef USE_MPI
+                       }
+               #endif
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "MothurOutJustToLog");
+               exit(1);
+       }
+}
+/*********************************************************************************************/
+void MothurOut::errorOut(exception& e, string object, string function) {
+       //double vm, rss;
+       //mem_usage(vm, rss);
+       
+       mothurOut("[ERROR]: ");
+       mothurOut(toString(e.what()));
+       mothurOut(" has occurred in the " + object + " class function " + function + ". Please contact Pat Schloss at mothur.bugs@gmail.com, and be sure to include the mothur.logFile with your inquiry.");
+       mothurOutEndLine();
+}
+/*********************************************************************************************/
+//The following was originally from http://stackoverflow.com/questions/669438/how-to-get-memory-usage-at-run-time-in-c 
+// process_mem_usage(double &, double &) - takes two doubles by reference,
+// attempts to read the system-dependent data for a process' virtual memory
+// size and resident set size, and return the results in KB.
+//
+// On failure, returns 0.0, 0.0
+int MothurOut::mem_usage(double& vm_usage, double& resident_set) {
+  #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+  
+          vm_usage     = 0.0;
+          resident_set = 0.0;
+
+          // 'file' stat seems to give the most reliable results
+          //
+          ifstream stat_stream("/proc/self/stat",ios_base::in);
+
+          // dummy vars for leading entries in stat that we don't care about
+          //
+          string pid, comm, state, ppid, pgrp, session, tty_nr;
+          string tpgid, flags, minflt, cminflt, majflt, cmajflt;
+          string utime, stime, cutime, cstime, priority, nice;
+          string O, itrealvalue, starttime;
+
+          // the two fields we want
+          //
+          unsigned long vsize;
+          long rss;
+
+          stat_stream >> pid >> comm >> state >> ppid >> pgrp >> session >> tty_nr
+                                  >> tpgid >> flags >> minflt >> cminflt >> majflt >> cmajflt
+                                  >> utime >> stime >> cutime >> cstime >> priority >> nice
+                                  >> O >> itrealvalue >> starttime >> vsize >> rss; // don't care about the rest
+
+          long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages
+          vm_usage     = vsize / 1024.0;
+          resident_set = rss * page_size_kb;
+          
+          mothurOut("Memory Usage: vm = " + toString(vm_usage) + " rss = " + toString(resident_set) + "\n");
+               return 0;
+
+       #else
+/*             //windows memory usage
+               // Get the list of process identifiers.
+               DWORD aProcesses[1024], cbNeeded, cProcesses;
+               
+               if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ){ return 1; }
+
+               // Calculate how many process identifiers were returned.
+               cProcesses = cbNeeded / sizeof(DWORD);
+
+               // Print the memory usage for each process
+               for (int i = 0; i < cProcesses; i++ ) {
+                       DWORD processID = aProcesses[i];
+                       
+                       PROCESS_MEMORY_COUNTERS pmc;
+
+                       HANDLE hProcess = OpenProcess((PROCESS_QUERY_INFORMATION | PROCESS_VM_READ), FALSE, processID);
+
+                       // Print the process identifier.
+                       printf( "\nProcess ID: %u\n", processID);
+                       
+                       if (NULL != hProcess) {
+
+                               if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) ) {
+                                       printf( "\tPageFaultCount: 0x%08X\n", pmc.PageFaultCount );
+                                       printf( "\tPeakWorkingSetSize: 0x%08X\n", pmc.PeakWorkingSetSize );
+                                       printf( "\tWorkingSetSize: 0x%08X\n", pmc.WorkingSetSize );
+                                       printf( "\tQuotaPeakPagedPoolUsage: 0x%08X\n", pmc.QuotaPeakPagedPoolUsage );
+                                       printf( "\tQuotaPagedPoolUsage: 0x%08X\n", pmc.QuotaPagedPoolUsage );
+                                       printf( "\tQuotaPeakNonPagedPoolUsage: 0x%08X\n", pmc.QuotaPeakNonPagedPoolUsage );
+                                       printf( "\tQuotaNonPagedPoolUsage: 0x%08X\n", pmc.QuotaNonPagedPoolUsage );
+                                       printf( "\tPagefileUsage: 0x%08X\n", pmc.PagefileUsage ); 
+                                       printf( "\tPeakPagefileUsage: 0x%08X\n", pmc.PeakPagefileUsage );
+                               }
+                               CloseHandle(hProcess);
+                       }
+               }
+*/
+                       return 0;
+
+       #endif
+}
+
+
+/***********************************************************************/
+int MothurOut::openOutputFileAppend(string fileName, ofstream& fileHandle){
+       try {
+               fileHandle.open(fileName.c_str(), ios::app);
+               if(!fileHandle) {
+                       mothurOut("[ERROR]: Could not open " + fileName); mothurOutEndLine();
+                       return 1;
+               }
+               else {
+                       return 0;
+               }
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "openOutputFileAppend");
+               exit(1);
+       }
+}
+/***********************************************************************/
+void MothurOut::gobble(istream& f){
+       try {
+               char d;
+               while(isspace(d=f.get()))               {;}
+               f.putback(d);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "gobble");
+               exit(1);
+       }
+}
+/***********************************************************************/
+void MothurOut::gobble(istringstream& f){
+       try {
+               char d;
+               while(isspace(d=f.get()))               {;}
+               f.putback(d);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "gobble");
+               exit(1);
+       }
+}
+
+/***********************************************************************/
+
+string MothurOut::getline(istringstream& fileHandle) {
+       try {
+       
+               string line = "";
+               
+               while (!fileHandle.eof())       {
+                       //get next character
+                       char c = fileHandle.get(); 
+                       
+                       //are you at the end of the line
+                       if ((c == '\n') || (c == '\r') || (c == '\f')){  break; }       
+                       else {          line += c;              }
+               }
+               
+               return line;
+               
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getline");
+               exit(1);
+       }
+}
+/***********************************************************************/
+
+string MothurOut::getline(ifstream& fileHandle) {
+       try {
+       
+               string line = "";
+               
+               while (!fileHandle.eof())       {
+                       //get next character
+                       char c = fileHandle.get(); 
+                       
+                       //are you at the end of the line
+                       if ((c == '\n') || (c == '\r') || (c == '\f')){  break; }       
+                       else {          line += c;              }
+               }
+               
+               return line;
+               
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getline");
+               exit(1);
+       }
+}
+/***********************************************************************/
+
+string MothurOut::getRootName(string longName){
+       try {
+       
+               string rootName = longName;
+               
+               if(longName.find_last_of(".") != longName.npos){
+                       int pos = longName.find_last_of('.')+1;
+                       rootName = longName.substr(0, pos);
+               }
+
+               return rootName;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getRootName");
+               exit(1);
+       }
+}
+/***********************************************************************/
+
+string MothurOut::getSimpleName(string longName){
+       try {
+               string simpleName = longName;
+               
+               size_t found;
+               found=longName.find_last_of("/\\");
+
+               if(found != longName.npos){
+                       simpleName = longName.substr(found+1);
+               }
+               
+               return simpleName;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getSimpleName");
+               exit(1);
+       }
+}
+
+/***********************************************************************/
+
+string MothurOut::getPathName(string longName){
+       try {
+               string rootPathName = longName;
+               
+               if(longName.find_last_of("/\\") != longName.npos){
+                       int pos = longName.find_last_of("/\\")+1;
+                       rootPathName = longName.substr(0, pos);
+               }
+               
+               return rootPathName;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getPathName");
+               exit(1);
+       }       
+
+}
+/***********************************************************************/
+
+string MothurOut::hasPath(string longName){
+       try {
+               string path = "";
+               
+               size_t found;
+               found=longName.find_last_of("~/\\");
+
+               if(found != longName.npos){
+                       path = longName.substr(0, found+1);
+               }
+               
+               return path;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "hasPath");
+               exit(1);
+       }       
+}
+
+/***********************************************************************/
+
+string MothurOut::getExtension(string longName){
+       try {
+               string extension = longName;
+               
+               if(longName.find_last_of('.') != longName.npos){
+                       int pos = longName.find_last_of('.');
+                       extension = longName.substr(pos, longName.length());
+               }
+               
+               return extension;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getExtension");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+bool MothurOut::isBlank(string fileName){
+       try {
+               ifstream fileHandle;
+               fileHandle.open(fileName.c_str());
+               if(!fileHandle) {
+                       mothurOut("[ERROR]: Could not open " + fileName); mothurOutEndLine();
+                       return false;
+               }else {
+                       //check for blank file
+                       gobble(fileHandle);
+                       if (fileHandle.eof()) { fileHandle.close(); return true;  }
+               }
+               return false;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "isBlank");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+
+string MothurOut::getFullPathName(string fileName){
+       try{
+       
+       string path = hasPath(fileName);
+       string newFileName;
+       int pos;
+       
+       if (path == "") { return fileName; } //its a simple name
+       else { //we need to complete the pathname
+               // ex. ../../../filename 
+               // cwd = /user/work/desktop
+                               
+               string cwd;
+               //get current working directory 
+               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)   
+                       
+                       if (path.find("~") != -1) { //go to home directory
+                               string homeDir = getenv ("HOME");
+                               newFileName = homeDir + fileName.substr(fileName.find("~")+1);
+                               return newFileName;
+                       }else { //find path
+                               if (path.rfind("./") == -1) { return fileName; } //already complete name
+                               else { newFileName = fileName.substr(fileName.rfind("./")+2); } //save the complete part of the name
+                               
+                               char* cwdpath = new char[1024];
+
+                               size_t size;
+                               cwdpath=getcwd(cwdpath,size);
+                       
+                               cwd = cwdpath;
+                               
+                               //rip off first '/'
+                               string simpleCWD;
+                               if (cwd.length() > 0) { simpleCWD = cwd.substr(1); }
+                               
+                               //break apart the current working directory
+                               vector<string> dirs;
+                               while (simpleCWD.find_first_of('/') != -1) {
+                                       string dir = simpleCWD.substr(0,simpleCWD.find_first_of('/'));
+                                       simpleCWD = simpleCWD.substr(simpleCWD.find_first_of('/')+1, simpleCWD.length());
+                                       dirs.push_back(dir);
+                               }
+                               //get last one              // ex. ../../../filename = /user/work/desktop/filename
+                               dirs.push_back(simpleCWD);  //ex. dirs[0] = user, dirs[1] = work, dirs[2] = desktop
+                               
+                       
+                               int index = dirs.size()-1;
+               
+                               while((pos = path.rfind("./")) != -1) { //while you don't have a complete path
+                                       if (pos == 0) { break;  //you are at the end
+                                       }else if (path[(pos-1)] == '.') { //you want your parent directory ../
+                                               path = path.substr(0, pos-1);
+                                               index--;
+                                               if (index == 0) {  break; }
+                                       }else if (path[(pos-1)] == '/') { //you want the current working dir ./
+                                               path = path.substr(0, pos);
+                                       }else if (pos == 1) { break;  //you are at the end
+                                       }else { cout << "cannot resolve path for " <<  fileName << endl; return fileName; }
+                               }
+                       
+                               for (int i = index; i >= 0; i--) {
+                                       newFileName = dirs[i] +  "/" + newFileName;             
+                               }
+                               
+                               newFileName =  "/" +  newFileName;
+                               return newFileName;
+                       }       
+               #else
+                       if (path.find("~") != -1) { //go to home directory
+                               string homeDir = getenv ("HOMEPATH");
+                               newFileName = homeDir + fileName.substr(fileName.find("~")+1);
+                               return newFileName;
+                       }else { //find path
+                               if (path.rfind(".\\") == -1) { return fileName; } //already complete name
+                               else { newFileName = fileName.substr(fileName.rfind(".\\")+2); } //save the complete part of the name
+                                                       
+                               char *cwdpath = NULL;
+                               cwdpath = getcwd(NULL, 0); // or _getcwd
+                               if ( cwdpath != NULL) { cwd = cwdpath; }
+                               else { cwd = "";  }
+                               
+                               //break apart the current working directory
+                               vector<string> dirs;
+                               while (cwd.find_first_of('\\') != -1) {
+                                       string dir = cwd.substr(0,cwd.find_first_of('\\'));
+                                       cwd = cwd.substr(cwd.find_first_of('\\')+1, cwd.length());
+                                       dirs.push_back(dir);
+               
+                               }
+                               //get last one
+                               dirs.push_back(cwd);  //ex. dirs[0] = user, dirs[1] = work, dirs[2] = desktop
+                                       
+                               int index = dirs.size()-1;
+                                       
+                               while((pos = path.rfind(".\\")) != -1) { //while you don't have a complete path
+                                       if (pos == 0) { break;  //you are at the end
+                                       }else if (path[(pos-1)] == '.') { //you want your parent directory ../
+                                               path = path.substr(0, pos-1);
+                                               index--;
+                                               if (index == 0) {  break; }
+                                       }else if (path[(pos-1)] == '\\') { //you want the current working dir ./
+                                               path = path.substr(0, pos);
+                                       }else if (pos == 1) { break;  //you are at the end
+                                       }else { cout << "cannot resolve path for " <<  fileName << endl; return fileName; }
+                               }
+                       
+                               for (int i = index; i >= 0; i--) {
+                                       newFileName = dirs[i] +  "\\" + newFileName;            
+                               }
+                               
+                               return newFileName;
+                       }
+                       
+               #endif
+       }
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getFullPathName");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+
+int MothurOut::openInputFile(string fileName, ifstream& fileHandle, string m){
+       try {
+                       //get full path name
+                       string completeFileName = getFullPathName(fileName);
+
+                       fileHandle.open(completeFileName.c_str());
+                       if(!fileHandle) {
+                               return 1;
+                       }else {
+                               //check for blank file
+                               gobble(fileHandle);
+                               return 0;
+                       }
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "openInputFile - no Error");
+               exit(1);
+       }
+}
+/***********************************************************************/
+
+int MothurOut::openInputFile(string fileName, ifstream& fileHandle){
+       try {
+               //get full path name
+               string completeFileName = getFullPathName(fileName);
+
+               fileHandle.open(completeFileName.c_str());
+               if(!fileHandle) {
+                       mothurOut("[ERROR]: Could not open " + completeFileName); mothurOutEndLine();
+                       return 1;
+               }
+               else {
+                       //check for blank file
+                       gobble(fileHandle);
+                       if (fileHandle.eof()) { mothurOut("[ERROR]: " + completeFileName + " is blank. Please correct."); mothurOutEndLine();  }
+                       
+                       return 0;
+               }
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "openInputFile");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+
+int MothurOut::renameFile(string oldName, string newName){
+       try {
+               ifstream inTest;
+               int exist = openInputFile(newName, inTest, "");
+               
+       #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)           
+               if (exist == 0) { //you could open it so you want to delete it
+                       inTest.close();
+                       string command = "rm " + newName;
+                       system(command.c_str());
+               }
+                               
+               string command = "mv " + oldName + " " + newName;
+               system(command.c_str());
+       #else
+               remove(newName.c_str());
+               int renameOk = rename(oldName.c_str(), newName.c_str());
+       #endif
+               return 0;
+               
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "renameFile");
+               exit(1);
+       }       
+}
+
+/***********************************************************************/
+
+int MothurOut::openOutputFile(string fileName, ofstream& fileHandle){
+       try { 
+       
+               string completeFileName = getFullPathName(fileName);
+               
+               fileHandle.open(completeFileName.c_str(), ios::trunc);
+               if(!fileHandle) {
+                       mothurOut("[ERROR]: Could not open " + completeFileName); mothurOutEndLine();
+                       return 1;
+               }
+               else {
+                       return 0;
+               }
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "openOutputFile");
+               exit(1);
+       }       
+
+}
+
+/**************************************************************************************************/
+void MothurOut::appendFiles(string temp, string filename) {
+       try{
+               ofstream output;
+               ifstream input;
+       
+               //open output file in append mode
+               openOutputFileAppend(filename, output);
+               int ableToOpen = openInputFile(temp, input, "no error");
+               
+               if (ableToOpen == 0) { //you opened it
+                       while(char c = input.get()){
+                               if(input.eof())         {       break;                  }
+                               else                            {       output << c;    }
+                       }
+                       input.close();
+               }
+               
+               output.close();
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "appendFiles");
+               exit(1);
+       }       
+}
+
+/**************************************************************************************************/
+string MothurOut::sortFile(string distFile, string outputDir){
+       try {   
+       
+               //if (outputDir == "") {  outputDir += hasPath(distFile);  }
+               string outfile = getRootName(distFile) + "sorted.dist";
+
+               
+               //if you can, use the unix sort since its been optimized for years
+               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+                       string command = "sort -n -k +3 " + distFile + " -o " + outfile;
+                       system(command.c_str());
+               #else //you are stuck with my best attempt...
+                       //windows sort does not have a way to specify a column, only a character in the line
+                       //since we cannot assume that the distance will always be at the the same character location on each line
+                       //due to variable sequence name lengths, I chose to force the distance into first position, then sort and then put it back.
+               
+                       //read in file line by file and put distance first
+                       string tempDistFile = distFile + ".temp";
+                       ifstream input;
+                       ofstream output;
+                       openInputFile(distFile, input);
+                       openOutputFile(tempDistFile, output);
+
+                       string firstName, secondName;
+                       float dist;
+                       while (input) {
+                               input >> firstName >> secondName >> dist;
+                               output << dist << '\t' << firstName << '\t' << secondName << endl;
+                               gobble(input);
+                       }
+                       input.close();
+                       output.close();
+               
+       
+                       //sort using windows sort
+                       string tempOutfile = outfile + ".temp";
+                       string command = "sort " + tempDistFile + " /O " + tempOutfile;
+                       system(command.c_str());
+               
+                       //read in sorted file and put distance at end again
+                       ifstream input2;
+                       openInputFile(tempOutfile, input2);
+                       openOutputFile(outfile, output);
+               
+                       while (input2) {
+                               input2 >> dist >> firstName >> secondName;
+                               output << firstName << '\t' << secondName << '\t' << dist << endl;
+                               gobble(input2);
+                       }
+                       input2.close();
+                       output.close();
+               
+                       //remove temp files
+                       remove(tempDistFile.c_str());
+                       remove(tempOutfile.c_str());
+               #endif
+               
+               return outfile;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "sortFile");
+               exit(1);
+       }       
+}
+/**************************************************************************************************/
+vector<unsigned long int> MothurOut::setFilePosFasta(string filename, int& num) {
+       try {
+                       vector<unsigned long int> positions;
+                       ifstream inFASTA;
+                       openInputFile(filename, inFASTA);
+                                               
+                       string input;
+                       while(!inFASTA.eof()){
+                               input = getline(inFASTA); 
+                               if (input.length() != 0) {
+                                       if(input[0] == '>'){    unsigned long int pos = inFASTA.tellg(); positions.push_back(pos - input.length() - 1); }
+                               }
+                               gobble(inFASTA); //has to be here since windows line endings are 2 characters and mess up the positions
+                       }
+                       inFASTA.close();
+               
+                       num = positions.size();
+               
+                       /*FILE * pFile;
+                       long size;
+               
+                       //get num bytes in file
+                       pFile = fopen (filename.c_str(),"rb");
+                       if (pFile==NULL) perror ("Error opening file");
+                       else{
+                               fseek (pFile, 0, SEEK_END);
+                               size=ftell (pFile);
+                               fclose (pFile);
+                       }*/
+                       
+                       unsigned long int size = positions[(positions.size()-1)];
+                       ifstream in;
+                       openInputFile(filename, in);
+                       
+                       in.seekg(size);
+               
+                       while(char c = in.get()){
+                               if(in.eof())            {       break;  }
+                               else                            {       size++; }
+                       }
+                       in.close();
+               
+                       positions.push_back(size);
+               
+                       return positions;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "setFilePosFasta");
+               exit(1);
+       }
+}
+/**************************************************************************************************/
+vector<unsigned long int> MothurOut::setFilePosEachLine(string filename, int& num) {
+       try {
+
+                       vector<unsigned long int> positions;
+                       ifstream in;
+                       openInputFile(filename, in);
+                               
+                       string input;
+                       while(!in.eof()){
+                               unsigned long int lastpos = in.tellg();
+                               input = getline(in); 
+                               if (input.length() != 0) {
+                                       unsigned long int pos = in.tellg(); 
+                                       if (pos != -1) { positions.push_back(pos - input.length() - 1); }
+                                       else {  positions.push_back(lastpos);  }
+                               }
+                               gobble(in); //has to be here since windows line endings are 2 characters and mess up the positions
+                       }
+                       in.close();
+               
+                       num = positions.size();
+               
+                       FILE * pFile;
+                       unsigned long int size;
+               
+                       //get num bytes in file
+                       pFile = fopen (filename.c_str(),"rb");
+                       if (pFile==NULL) perror ("Error opening file");
+                       else{
+                               fseek (pFile, 0, SEEK_END);
+                               size=ftell (pFile);
+                               fclose (pFile);
+                       }
+               
+                       positions.push_back(size);
+               
+                       return positions;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "setFilePosEachLine");
+               exit(1);
+       }
+}
+/**************************************************************************************************/
+
+vector<unsigned long int> MothurOut::divideFile(string filename, int& proc) {
+       try{
+       
+               vector<unsigned long int> filePos;
+               filePos.push_back(0);
+               
+               FILE * pFile;
+               unsigned long int size;
+               
+               //get num bytes in file
+               pFile = fopen (filename.c_str(),"rb");
+               if (pFile==NULL) perror ("Error opening file");
+               else{
+                       fseek (pFile, 0, SEEK_END);
+                       size=ftell (pFile);
+                       fclose (pFile);
+               }
+       
+               //estimate file breaks
+               unsigned long int chunkSize = 0;
+               chunkSize = size / proc;
+               
+               //file to small to divide by processors
+               if (chunkSize == 0)  {  proc = 1;       filePos.push_back(size); return filePos;        }
+       
+               //for each process seekg to closest file break and search for next '>' char. make that the filebreak
+               for (int i = 0; i < proc; i++) {
+                       unsigned long int spot = (i+1) * chunkSize;
+                       
+                       ifstream in;
+                       openInputFile(filename, in);
+                       in.seekg(spot);
+                       
+                       //look for next '>'
+                       unsigned long int newSpot = spot;
+                       while (!in.eof()) {
+                          char c = in.get();
+                          if (c == '>') {   in.putback(c); newSpot = in.tellg(); break;  }
+                       }
+                       
+                       //there was not another sequence before the end of the file
+                       unsigned long int sanityPos = in.tellg();
+                       if (sanityPos = -1) {   break;  }
+                       else {   filePos.push_back(newSpot);  }
+                       
+                       in.close();
+               }
+               
+               //save end pos
+               filePos.push_back(size);
+               
+               //sanity check filePos
+               for (int i = 0; i < (filePos.size()-1); i++) {
+                       if (filePos[(i+1)] <= filePos[i]) {  filePos.erase(filePos.begin()+(i+1)); i--; }
+               }
+
+               proc = (filePos.size() - 1);
+               
+               return filePos;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "divideFile");
+               exit(1);
+       }
+}
+
+/***********************************************************************/
+
+bool MothurOut::isTrue(string f){
+       try {
+               
+               for (int i = 0; i < f.length(); i++) { f[i] = toupper(f[i]); }
+               
+               if ((f == "TRUE") || (f == "T")) {      return true;    }
+               else {  return false;  }
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "isTrue");
+               exit(1);
+       }
+}
+
+/***********************************************************************/
+
+float MothurOut::roundDist(float dist, int precision){
+       try {
+               return int(dist * precision + 0.5)/float(precision);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "roundDist");
+               exit(1);
+       }
+}
+/***********************************************************************/
+
+float MothurOut::ceilDist(float dist, int precision){
+       try {
+               return int(ceil(dist * precision))/float(precision);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "ceilDist");
+               exit(1);
+       }
+}
+
+/***********************************************************************/
+
+int MothurOut::getNumNames(string names){
+       try {
+               int count = 0;
+               
+               if(names != ""){
+                       count = 1;
+                       for(int i=0;i<names.size();i++){
+                               if(names[i] == ','){
+                                       count++;
+                               }
+                       }
+               }
+               
+               return count;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getNumNames");
+               exit(1);
+       }
+}
+
+/**************************************************************************************************/
+
+vector<vector<double> > MothurOut::binomial(int maxOrder){
+       try {
+       vector<vector<double> > binomial(maxOrder+1);
+       
+    for(int i=0;i<=maxOrder;i++){
+               binomial[i].resize(maxOrder+1);
+               binomial[i][0]=1;
+               binomial[0][i]=0;
+    }
+    binomial[0][0]=1;
+       
+    binomial[1][0]=1;
+    binomial[1][1]=1;
+       
+    for(int i=2;i<=maxOrder;i++){
+               binomial[1][i]=0;
+    }
+       
+    for(int i=2;i<=maxOrder;i++){
+               for(int j=1;j<=maxOrder;j++){
+                       if(i==j){       binomial[i][j]=1;                                                                       }
+                       if(j>i) {       binomial[i][j]=0;                                                                       }
+                       else    {       binomial[i][j]=binomial[i-1][j-1]+binomial[i-1][j];     }
+               }
+    }
+       
+       return binomial;
+       
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "binomial");
+               exit(1);
+       }
+}
+
+/***********************************************************************/
+
+int MothurOut::factorial(int num){
+       try {
+               int total = 1;
+               
+               for (int i = 1; i <= num; i++) {
+                       total *= i;
+               }
+               
+               return total;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "factorial");
+               exit(1);
+       }
+}
+/***********************************************************************/
+
+int MothurOut::getNumSeqs(ifstream& file){
+       try {
+               int numSeqs = count(istreambuf_iterator<char>(file),istreambuf_iterator<char>(), '>');
+               file.seekg(0);
+               return numSeqs;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getNumSeqs");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+void MothurOut::getNumSeqs(ifstream& file, int& numSeqs){
+       try {
+               string input;
+               numSeqs = 0;
+               while(!file.eof()){
+                       input = getline(file);
+                       if (input.length() != 0) {
+                               if(input[0] == '>'){ numSeqs++; }
+                       }
+               }
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "getNumSeqs");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+
+//This function parses the estimator options and puts them in a vector
+void MothurOut::splitAtChar(string& estim, vector<string>& container, char symbol) {
+       try {
+               string individual;
+               
+               while (estim.find_first_of(symbol) != -1) {
+                       individual = estim.substr(0,estim.find_first_of(symbol));
+                       if ((estim.find_first_of(symbol)+1) <= estim.length()) { //checks to make sure you don't have dash at end of string
+                               estim = estim.substr(estim.find_first_of(symbol)+1, estim.length());
+                               container.push_back(individual);
+                       }
+               }
+               //get last one
+               container.push_back(estim);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "splitAtChar");
+               exit(1);
+       }       
+}
+
+/***********************************************************************/
+
+//This function parses the estimator options and puts them in a vector
+void MothurOut::splitAtDash(string& estim, vector<string>& container) {
+       try {
+               string individual;
+               
+               while (estim.find_first_of('-') != -1) {
+                       individual = estim.substr(0,estim.find_first_of('-'));
+                       if ((estim.find_first_of('-')+1) <= estim.length()) { //checks to make sure you don't have dash at end of string
+                               estim = estim.substr(estim.find_first_of('-')+1, estim.length());
+                               container.push_back(individual);
+                       }
+               }
+               //get last one
+               container.push_back(estim);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "splitAtDash");
+               exit(1);
+       }       
+}
+
+/***********************************************************************/
+//This function parses the label options and puts them in a set
+void MothurOut::splitAtDash(string& estim, set<string>& container) {
+       try {
+               string individual;
+               
+               while (estim.find_first_of('-') != -1) {
+                       individual = estim.substr(0,estim.find_first_of('-'));
+                       if ((estim.find_first_of('-')+1) <= estim.length()) { //checks to make sure you don't have dash at end of string
+                               estim = estim.substr(estim.find_first_of('-')+1, estim.length());
+                               container.insert(individual);
+                       }
+               }
+               //get last one
+               container.insert(estim);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "splitAtDash");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+//This function parses the line options and puts them in a set
+void MothurOut::splitAtDash(string& estim, set<int>& container) {
+       try {
+               string individual;
+               int lineNum;
+               
+               while (estim.find_first_of('-') != -1) {
+                       individual = estim.substr(0,estim.find_first_of('-'));
+                       if ((estim.find_first_of('-')+1) <= estim.length()) { //checks to make sure you don't have dash at end of string
+                               estim = estim.substr(estim.find_first_of('-')+1, estim.length());
+                               convert(individual, lineNum); //convert the string to int
+                               container.insert(lineNum);
+                       }
+               }
+               //get last one
+               convert(estim, lineNum); //convert the string to int
+               container.insert(lineNum);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "splitAtDash");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+//This function parses the a string and puts peices in a vector
+void MothurOut::splitAtComma(string& estim, vector<string>& container) {
+       try {
+               string individual;
+               
+               while (estim.find_first_of(',') != -1) {
+                       individual = estim.substr(0,estim.find_first_of(','));
+                       if ((estim.find_first_of(',')+1) <= estim.length()) { //checks to make sure you don't have comma at end of string
+                               estim = estim.substr(estim.find_first_of(',')+1, estim.length());
+                               container.push_back(individual);
+                       }
+               }
+               //get last one
+               container.push_back(estim);
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "splitAtComma");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+
+//This function splits up the various option parameters
+void MothurOut::splitAtComma(string& prefix, string& suffix){
+       try {
+               prefix = suffix.substr(0,suffix.find_first_of(','));
+               if ((suffix.find_first_of(',')+2) <= suffix.length()) {  //checks to make sure you don't have comma at end of string
+                       suffix = suffix.substr(suffix.find_first_of(',')+1, suffix.length());
+                       string space = " ";
+                       while(suffix.at(0) == ' ')
+                               suffix = suffix.substr(1, suffix.length());
+               }
+
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "splitAtComma");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+
+//This function separates the key value from the option value i.e. dist=96_...
+void MothurOut::splitAtEquals(string& key, string& value){             
+       try {
+               if(value.find_first_of('=') != -1){
+                       key = value.substr(0,value.find_first_of('='));
+                       if ((value.find_first_of('=')+1) <= value.length()) {
+                               value = value.substr(value.find_first_of('=')+1, value.length());
+                       }
+               }else{
+                       key = value;
+                       value = 1;
+               }
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "splitAtEquals");
+               exit(1);
+       }       
+}
+
+/**************************************************************************************************/
+
+bool MothurOut::inUsersGroups(string groupname, vector<string> Groups) {
+       try {
+               for (int i = 0; i < Groups.size(); i++) {
+                       if (groupname == Groups[i]) { return true; }
+               }
+               return false;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "inUsersGroups");
+               exit(1);
+       }       
+}
+/**************************************************************************************************/
+//returns true if any of the strings in first vector are in second vector
+bool MothurOut::inUsersGroups(vector<string> groupnames, vector<string> Groups) {
+       try {
+               
+               for (int i = 0; i < groupnames.size(); i++) {
+                       if (inUsersGroups(groupnames[i], Groups)) { return true; }
+               }
+               return false;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "inUsersGroups");
+               exit(1);
+       }       
+}
+/***********************************************************************/
+//this function determines if the user has given us labels that are smaller than the given label.
+//if so then it returns true so that the calling function can run the previous valid distance.
+//it's a "smart" distance function.  It also checks for invalid labels.
+bool MothurOut::anyLabelsToProcess(string label, set<string>& userLabels, string errorOff) {
+       try {
+               
+               set<string>::iterator it;
+               vector<float> orderFloat;
+               map<string, float> userMap;  //the conversion process removes trailing 0's which we need to put back
+               map<string, float>::iterator it2;
+               float labelFloat;
+               bool smaller = false;
+               
+               //unique is the smallest line
+               if (label == "unique") {  return false;  }
+               else { 
+                       if (convertTestFloat(label, labelFloat)) {
+                               convert(label, labelFloat); 
+                       }else { //cant convert 
+                               return false;
+                       }
+               }
+               
+               //go through users set and make them floats
+               for(it = userLabels.begin(); it != userLabels.end(); ++it) {
+                       
+                       float temp;
+                       if ((*it != "unique") && (convertTestFloat(*it, temp) == true)){
+                               convert(*it, temp);
+                               orderFloat.push_back(temp);
+                               userMap[*it] = temp;
+                       }else if (*it == "unique") { 
+                               orderFloat.push_back(-1.0);
+                               userMap["unique"] = -1.0;
+                       }else {
+                               if (errorOff == "") {  cout << *it << " is not a valid label." << endl;  }
+                               userLabels.erase(*it); 
+                               it--;
+                       }
+               }
+               
+               //sort order
+               sort(orderFloat.begin(), orderFloat.end());
+               
+               /*************************************************/
+               //is this label bigger than any of the users labels
+               /*************************************************/
+                               
+               //loop through order until you find a label greater than label
+               for (int i = 0; i < orderFloat.size(); i++) {
+                       if (orderFloat[i] < labelFloat) {
+                               smaller = true;
+                               if (orderFloat[i] == -1) { 
+                                       if (errorOff == "") { cout << "Your file does not include the label unique." << endl; }
+                                       userLabels.erase("unique");
+                               }
+                               else {  
+                                       if (errorOff == "") { cout << "Your file does not include the label " << endl; }
+                                       string s = "";
+                                       for (it2 = userMap.begin(); it2!= userMap.end(); it2++) {  
+                                               if (it2->second == orderFloat[i]) {  
+                                                       s = it2->first;  
+                                                       //remove small labels
+                                                       userLabels.erase(s);
+                                                       break;
+                                               }
+                                       }
+                                       if (errorOff == "") {cout << s <<  ". I will use the next smallest distance. " << endl; }
+                               }
+                       //since they are sorted once you find a bigger one stop looking
+                       }else { break; }
+               }
+               
+               return smaller;
+                                               
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "anyLabelsToProcess");
+               exit(1);
+       }       
+}
+
+/**************************************************************************************************/
+bool MothurOut::checkReleaseVersion(ifstream& file, string version) {
+       try {
+               
+               bool good = true;
+               
+               string line = getline(file);  
+
+               //before we added this check
+               if (line[0] != '#') {  good = false;  }
+               else {
+                       //rip off #
+                       line = line.substr(1);
+                       
+                       vector<string> versionVector;
+                       splitAtChar(version, versionVector, '.');
+                       
+                       //check file version
+                       vector<string> linesVector;
+                       splitAtChar(line, linesVector, '.');
+                       
+                       if (versionVector.size() != linesVector.size()) { good = false; }
+                       else {
+                               for (int j = 0; j < versionVector.size(); j++) {
+                                       int num1, num2;
+                                       convert(versionVector[j], num1);
+                                       convert(linesVector[j], num2);
+                                       
+                                       //if mothurs version is newer than this files version, then we want to remake it
+                                       if (num1 > num2) {  good = false; break;  }
+                               }
+                       }
+                       
+               }
+               
+               if (!good) {  file.close();  }
+               else { file.seekg(0);  }
+               
+               return good;
+       }
+       catch(exception& e) {
+               errorOut(e, "MothurOut", "checkReleaseVersion");                
+               exit(1);
+       }
+}
+/**************************************************************************************************/
+
+
+
+
+
index 92363f5b6f26996b2e83badf681befa1ae9e3e0a..2244eeef21b571ed94bcd8a12820e76416e5b7b8 100644 (file)
@@ -32,7 +32,56 @@ class MothurOut {
                void setReleaseDate(string r) { releaseDate = r; }
                string getVersion() { return version; }
                void setVersion(string r) { version = r; }
-
+               
+               //functions from mothur.h
+               //file operations
+               vector<unsigned long int> divideFile(string, int&);
+               vector<unsigned long int> setFilePosEachLine(string, int&);
+               vector<unsigned long int> 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&);
+               
+               //searchs and checks
+               bool checkReleaseVersion(ifstream&, string);
+               bool anyLabelsToProcess(string, set<string>&, string);
+               bool inUsersGroups(vector<string>, vector<string>);
+               bool inUsersGroups(string, vector<string>);
+               void getNumSeqs(ifstream&, int&);
+               int getNumSeqs(ifstream&);
+               int getNumNames(string);
+               bool isTrue(string);
+       
+               
+               //string manipulation
+               void splitAtEquals(string&, string&);
+               void splitAtComma(string&, string&);    
+               void splitAtComma(string&, vector<string>&);
+               void splitAtDash(string&, set<int>&);
+               void splitAtDash(string&, set<string>&);
+               void splitAtDash(string&, vector<string>&);
+               void splitAtChar(string&, vector<string>&, char);
+               
+               //math operation
+               int factorial(int num);
+               vector<vector<double> > binomial(int);
+               float ceilDist(float, int);
+               float roundDist(float, int);
 
                int control_pressed;
                bool executing;
index 0a62a032077fd58c5ee92c3801662a9e280f6df7..3d99551cc6a2a5f01932329c34c339a6fa5d9450 100644 (file)
@@ -6,7 +6,7 @@
 
 NameAssignment::NameAssignment(string nameMapFile){
        m = MothurOut::getInstance();
-       openInputFile(nameMapFile, fileHandle);
+       m->openInputFile(nameMapFile, fileHandle);
        
 }
 
@@ -34,7 +34,7 @@ void NameAssignment::readMap(){
                                
                        }else{  m->mothurOut(firstCol + " is already in namesfile. I will use first definition."); m->mothurOutEndLine();  }
                        
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                }
                fileHandle.close();
        
index 132886bd55be4e9a57aa52816cfc49bcfb98eb42..95901a36e8576a01cdc3b313ef8d0b11dc0bd402 100644 (file)
 /******************************************************************************************************************/
 
 NastReport::NastReport() {
-       output = "";
+       try {
+               m = MothurOut::getInstance();
+               output = "";
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "NastReport");
+               exit(1);
+       }
 }
 /******************************************************************************************************************/
 string NastReport::getHeaders() {
-       output = "";
-       
-       output += "QueryName\tQueryLength\tTemplateName\tTemplateLength\t";
-       output += "SearchMethod\tSearchScore\t";
-       output += "AlignmentMethod\tQueryStart\tQueryEnd\tTemplateStart\tTemplateEnd\t";
-       output += "PairwiseAlignmentLength\tGapsInQuery\tGapsInTemplate\t";
-       output += "LongestInsert\t";
-       output += "SimBtwnQuery&Template\n";
-       
-       return output;
+       try {
+               output = "";
+               
+               output += "QueryName\tQueryLength\tTemplateName\tTemplateLength\t";
+               output += "SearchMethod\tSearchScore\t";
+               output += "AlignmentMethod\tQueryStart\tQueryEnd\tTemplateStart\tTemplateEnd\t";
+               output += "PairwiseAlignmentLength\tGapsInQuery\tGapsInTemplate\t";
+               output += "LongestInsert\t";
+               output += "SimBtwnQuery&Template\n";
+               
+               return output;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "getHeaders");
+               exit(1);
+       }
 }
 /******************************************************************************************************************/
 
 NastReport::NastReport(string candidateReportFName) {
-       openOutputFile(candidateReportFName, candidateReportFile);
-       
-       candidateReportFile << "QueryName\tQueryLength\tTemplateName\tTemplateLength\t";
-       candidateReportFile << "SearchMethod\tSearchScore\t";
-       candidateReportFile << "AlignmentMethod\tQueryStart\tQueryEnd\tTemplateStart\tTemplateEnd\t";
-       candidateReportFile << "PairwiseAlignmentLength\tGapsInQuery\tGapsInTemplate\t";
-       candidateReportFile << "LongestInsert\t";
-       candidateReportFile << "SimBtwnQuery&Template" << endl;
+       try {
+               m = MothurOut::getInstance();
+               m->openOutputFile(candidateReportFName, candidateReportFile);
+               
+               candidateReportFile << "QueryName\tQueryLength\tTemplateName\tTemplateLength\t";
+               candidateReportFile << "SearchMethod\tSearchScore\t";
+               candidateReportFile << "AlignmentMethod\tQueryStart\tQueryEnd\tTemplateStart\tTemplateEnd\t";
+               candidateReportFile << "PairwiseAlignmentLength\tGapsInQuery\tGapsInTemplate\t";
+               candidateReportFile << "LongestInsert\t";
+               candidateReportFile << "SimBtwnQuery&Template" << endl;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "NastReport");
+               exit(1);
+       }
 }
 
 /******************************************************************************************************************/
 
 NastReport::~NastReport() {
-       candidateReportFile.close();
+       try {
+               candidateReportFile.close();
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "~NastReport");
+               exit(1);
+       }
 }
 
 /******************************************************************************************************************/
 
 void NastReport::print(){
-       
-       candidateReportFile << queryName << '\t' << queryLength << '\t' << templateName << '\t' << templateLength << '\t';
-       candidateReportFile << searchMethod << '\t' << setprecision(2) << fixed << searchScore << '\t';
-
-       candidateReportFile << alignmentMethod << '\t' << candidateStartPosition << "\t" << candidateEndPosition << '\t';
-       candidateReportFile << templateStartPosition << "\t" << templateEndPosition << '\t';
-       candidateReportFile << pairwiseAlignmentLength << '\t' << totalGapsInQuery << '\t' << totalGapsInTemplate << '\t';
-       candidateReportFile << longestInsert << '\t';
-       candidateReportFile << setprecision(2) << similarityToTemplate;
-       
-       candidateReportFile << endl;
-       candidateReportFile.flush();
+       try {
+               candidateReportFile << queryName << '\t' << queryLength << '\t' << templateName << '\t' << templateLength << '\t';
+               candidateReportFile << searchMethod << '\t' << setprecision(2) << fixed << searchScore << '\t';
+
+               candidateReportFile << alignmentMethod << '\t' << candidateStartPosition << "\t" << candidateEndPosition << '\t';
+               candidateReportFile << templateStartPosition << "\t" << templateEndPosition << '\t';
+               candidateReportFile << pairwiseAlignmentLength << '\t' << totalGapsInQuery << '\t' << totalGapsInTemplate << '\t';
+               candidateReportFile << longestInsert << '\t';
+               candidateReportFile << setprecision(2) << similarityToTemplate;
+               
+               candidateReportFile << endl;
+               candidateReportFile.flush();
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "print");
+               exit(1);
+       }
 }
 /******************************************************************************************************************/
 
 string NastReport::getReport(){
-       
-       output = "";
-       
-       output += queryName + '\t' + toString(queryLength) + '\t' + templateName + '\t' + toString(templateLength) + '\t';
-       
-       string temp = toString(searchScore);
-       int pos = temp.find_last_of('.');  //find deicmal point if their is one
-       
-       //if there is a decimal
-       if (pos != -1) { temp = temp.substr(0, pos+3); } //set precision to 2 places
-       else{   temp += ".00";  }
-       
-       output += searchMethod + '\t' + temp + '\t';
-       output += alignmentMethod + '\t' + toString(candidateStartPosition) + "\t" + toString(candidateEndPosition) + '\t';
-       output += toString(templateStartPosition) + "\t" + toString(templateEndPosition) + '\t';
-       output += toString(pairwiseAlignmentLength) + '\t' + toString(totalGapsInQuery) + '\t' + toString(totalGapsInTemplate) + '\t';
-       output += toString(longestInsert) + '\t';
-       
-       temp = toString(similarityToTemplate);
-       pos = temp.find_last_of('.');  //find deicmal point if their is one
-       
-       //if there is a decimal
-       if (pos != -1) { temp = temp.substr(0, pos+3); } //set precision to 2 places
-       else{   temp += ".00";  }
-       
-       output += temp + '\n';
-       
-       return output;
+       try {
+               output = "";
+               
+               output += queryName + '\t' + toString(queryLength) + '\t' + templateName + '\t' + toString(templateLength) + '\t';
+               
+               string temp = toString(searchScore);
+               int pos = temp.find_last_of('.');  //find deicmal point if their is one
+               
+               //if there is a decimal
+               if (pos != -1) { temp = temp.substr(0, pos+3); } //set precision to 2 places
+               else{   temp += ".00";  }
+               
+               output += searchMethod + '\t' + temp + '\t';
+               output += alignmentMethod + '\t' + toString(candidateStartPosition) + "\t" + toString(candidateEndPosition) + '\t';
+               output += toString(templateStartPosition) + "\t" + toString(templateEndPosition) + '\t';
+               output += toString(pairwiseAlignmentLength) + '\t' + toString(totalGapsInQuery) + '\t' + toString(totalGapsInTemplate) + '\t';
+               output += toString(longestInsert) + '\t';
+               
+               temp = toString(similarityToTemplate);
+               pos = temp.find_last_of('.');  //find deicmal point if their is one
+               
+               //if there is a decimal
+               if (pos != -1) { temp = temp.substr(0, pos+3); } //set precision to 2 places
+               else{   temp += ".00";  }
+               
+               output += temp + '\n';
+               
+               return output;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "getReport");
+               exit(1);
+       }
 }
 
 /******************************************************************************************************************/
 
 void NastReport::setCandidate(Sequence* candSeq){ 
-       queryName = candSeq->getName();
-       queryLength = candSeq->getNumBases();
+       try {
+               queryName = candSeq->getName();
+               queryLength = candSeq->getNumBases();
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "setCandidate");
+               exit(1);
+       }
 }
 
 /******************************************************************************************************************/
 
 void NastReport::setTemplate(Sequence* tempSeq){ 
-       templateName = tempSeq->getName();
-       templateLength = tempSeq->getNumBases();
+       try {
+               templateName = tempSeq->getName();
+               templateLength = tempSeq->getNumBases();
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "setTemplate");
+               exit(1);
+       }
 }
 
 /******************************************************************************************************************/
 
 void NastReport::setSearchParameters(string method, float score){
-       searchMethod = method;
-       searchScore = score;
+       try {
+               searchMethod = method;
+               searchScore = score;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "setSearchParameters");
+               exit(1);
+       }
 }
 
 /******************************************************************************************************************/
 
 void NastReport::setAlignmentParameters(string method, Alignment* align){
-       alignmentMethod = method;
-       
-       candidateStartPosition = align->getCandidateStartPos();
-       candidateEndPosition = align->getCandidateEndPos();
-       templateStartPosition = align->getTemplateStartPos();
-       templateEndPosition = align->getTemplateEndPos();
-       pairwiseAlignmentLength = align->getPairwiseLength();
-
-       totalGapsInQuery = pairwiseAlignmentLength - (candidateEndPosition - candidateStartPosition + 1);
-       totalGapsInTemplate = pairwiseAlignmentLength - (templateEndPosition - templateStartPosition + 1);
+       try {
+               alignmentMethod = method;
+               
+               candidateStartPosition = align->getCandidateStartPos();
+               candidateEndPosition = align->getCandidateEndPos();
+               templateStartPosition = align->getTemplateStartPos();
+               templateEndPosition = align->getTemplateEndPos();
+               pairwiseAlignmentLength = align->getPairwiseLength();
+
+               totalGapsInQuery = pairwiseAlignmentLength - (candidateEndPosition - candidateStartPosition + 1);
+               totalGapsInTemplate = pairwiseAlignmentLength - (templateEndPosition - templateStartPosition + 1);
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "setAlignmentParameters");
+               exit(1);
+       }
 }
 
 /******************************************************************************************************************/
 
 void NastReport::setNastParameters(Nast nast){
-
-       longestInsert = nast.getMaxInsertLength();
-       similarityToTemplate = nast.getSimilarityScore();
-       
+       try {
+
+               longestInsert = nast.getMaxInsertLength();
+               similarityToTemplate = nast.getSimilarityScore();
+       }
+       catch(exception& e) {
+               m->errorOut(e, "NastReport", "setNastParameters");
+               exit(1);
+       }
 }
 
 /******************************************************************************************************************/
index 80c99490b70e04e945b895fb19795a22fe5f241f..c25575ae20b1a7be12a4af0586ed7734f6ec9691 100644 (file)
@@ -47,6 +47,7 @@ private:
        int totalGapsInQuery, totalGapsInTemplate;
        float similarityToTemplate;
        ofstream candidateReportFile;
+       MothurOut* m;
 };
 
 /******************************************************************************************************************/
index c50d5a3107bb8c88f7dc251831873cfdd0d68e2b..08032b32b83556f7ace0b83e235e51121e80f399 100644 (file)
@@ -19,13 +19,13 @@ OptionParser::OptionParser(string option) {
                        string key, value;              
                        //reads in parameters and values
                        while((option.find_first_of(',') != -1)) {  //while there are parameters
-                               splitAtComma(value, option);
-                               splitAtEquals(key, value);
+                               m->splitAtComma(value, option);
+                               m->splitAtEquals(key, value);
                                parameters[key] = value;
                        }
                        
                        //in case there is no comma and to get last parameter after comma
-                       splitAtEquals(key, option);
+                       m->splitAtEquals(key, option);
                        parameters[key] = option;
                }
        }
index 05d6443725be6028411573b6ee280220cb52ff0c..2c71cd56aa8a6341def135ec0a7ddcb092993885 100644 (file)
@@ -41,7 +41,7 @@ OtuHierarchyCommand::OtuHierarchyCommand(string option) {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -54,7 +54,7 @@ OtuHierarchyCommand::OtuHierarchyCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(listFile); //if user entered a file with a path then preserve it   
+                               outputDir += m->hasPath(listFile); //if user entered a file with a path then preserve it        
                        }
                        
                        //check for optional parameter and set defaults
@@ -62,7 +62,7 @@ OtuHierarchyCommand::OtuHierarchyCommand(string option) {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { m->mothurOut("label is a required parameter for the otu.hierarchy command."); m->mothurOutEndLine(); abort = true; }
                        else { 
-                               splitAtDash(label, labels);
+                               m->splitAtDash(label, labels);
                                if (labels.size() != 2) { m->mothurOut("You must provide 2 labels."); m->mothurOutEndLine(); abort = true; }
                        }       
                        
@@ -142,8 +142,8 @@ int OtuHierarchyCommand::execute(){
                }
                
                ofstream out;
-               string outputFileName = outputDir + getRootName(getSimpleName(listFile)) + lists[0].getLabel() + "-" + lists[1].getLabel() + ".otu.hierarchy";
-               openOutputFile(outputFileName, out);
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(listFile)) + lists[0].getLabel() + "-" + lists[1].getLabel() + ".otu.hierarchy";
+               m->openOutputFile(outputFileName, out);
                
                //go through each bin in "big" otu and output the bins in "little" otu which created it
                for (int i = 0; i < lists[1].getNumBins(); i++) {
@@ -211,7 +211,7 @@ vector<ListVector> OtuHierarchyCommand::getListVectors() {
 
                //open file
                ifstream in;
-               openInputFile(listFile, in);
+               m->openInputFile(listFile, in);
                
                //get first list vector in file
                ListVector* list = NULL;
@@ -220,7 +220,7 @@ vector<ListVector> OtuHierarchyCommand::getListVectors() {
                        pos = in.tellg();
                        lastPos = pos;
                        list = new ListVector(in);  
-                       gobble(in);
+                       m->gobble(in);
                        lastLabel = list->getLabel();
                }
                
@@ -240,7 +240,7 @@ vector<ListVector> OtuHierarchyCommand::getListVectors() {
                        }
                
                        //you have a label the user want that is smaller than this label and the last label has not already been processed 
-                       if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = list->getLabel();
                                int savePos = in.tellg();
                                
@@ -271,7 +271,7 @@ vector<ListVector> OtuHierarchyCommand::getListVectors() {
                        if (!in.eof())  {       
                                pos = in.tellg();
                                list = new ListVector(in);  
-                               gobble(in);
+                               m->gobble(in);
                        }else { list = NULL; }
                }
                
index d09910b48de9003865f06fd21d165a71e989dde9..4b24236e3497ab67f2be5299163798a9f43e8667 100644 (file)
@@ -42,7 +42,7 @@ ParseListCommand::ParseListCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -50,7 +50,7 @@ ParseListCommand::ParseListCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -83,7 +83,7 @@ ParseListCommand::ParseListCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = "";  allLines = 1; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                }
@@ -120,7 +120,7 @@ int ParseListCommand::execute(){
                if (abort == true) {    return 0;       }
                
                //set fileroot
-               string fileroot = outputDir + getRootName(getSimpleName(listfile));
+               string fileroot = outputDir + m->getRootName(m->getSimpleName(listfile));
                vector<string> outputNames;
                
                //fill filehandles with neccessary ofstreams
@@ -132,7 +132,7 @@ int ParseListCommand::execute(){
                        
                        string filename = fileroot +  groupMap->namesOfGroups[i] + ".list";
                        outputNames.push_back(filename);
-                       openOutputFile(filename, *temp);
+                       m->openOutputFile(filename, *temp);
                }
                
                //if the users enters label "0.06" and there is no "0.06" in their file use the next lowest label.
@@ -168,7 +168,7 @@ int ParseListCommand::execute(){
                                        userLabels.erase(list->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = list->getLabel();
                                        
                                        delete list;
@@ -278,7 +278,7 @@ int ParseListCommand::parse(ListVector* thisList) {
                        string bin = list->get(i); 
                        
                        vector<string> names;
-                       splitAtComma(bin, names);  //parses bin into individual sequence names
+                       m->splitAtComma(bin, names);  //parses bin into individual sequence names
                        
                        //parse bin into list of sequences in each group
                        for (int j = 0; j < names.size(); j++) {
index d210ce811a78c61b77fd8728a8d9fca650f3a7dc..03d8e96d44308c6a07eaba10344d8fce860e3943 100644 (file)
@@ -44,7 +44,7 @@ ParseSFFCommand::ParseSFFCommand(string option){
                                it = parameters.find("sff");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["sff"] = inputDir + it->second;              }
                                }
@@ -52,7 +52,7 @@ ParseSFFCommand::ParseSFFCommand(string option){
                                it = parameters.find("oligos");
                                //user has given an oligos file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["oligos"] = inputDir + it->second;           }
                                }
@@ -72,7 +72,7 @@ ParseSFFCommand::ParseSFFCommand(string option){
                        outputDir = validParameter.validFile(parameters, "outputdir", false);
                        if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(sffFile); //if user entered a file with a path then preserve it    
+                               outputDir += m->hasPath(sffFile); //if user entered a file with a path then preserve it 
                        }
 
                        //check for optional parameter and set defaults
@@ -103,7 +103,7 @@ int ParseSFFCommand::execute(){
                if (abort == true) {    return 0;       }
 
                ifstream inSFF;
-               openInputFile(sffFile, inSFF);
+               m->openInputFile(sffFile, inSFF);
                
                cout.setf(ios::fixed, ios::floatfield);
                cout.setf(ios::showpoint);
@@ -114,8 +114,8 @@ int ParseSFFCommand::execute(){
                        getOligos(flowFileNames);
                }
                else{
-                       flowFileNames.push_back(new ofstream((outputDir + getRootName(getSimpleName(sffFile)) + "flow").c_str(), ios::ate));
-                       outputNames.push_back((outputDir + getRootName(getSimpleName(sffFile)) + "flow"));
+                       flowFileNames.push_back(new ofstream((outputDir + m->getRootName(m->getSimpleName(sffFile)) + "flow").c_str(), ios::ate));
+                       outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(sffFile)) + "flow"));
                }
                
                for(int i=0;i<flowFileNames.size();i++){
@@ -127,24 +127,24 @@ int ParseSFFCommand::execute(){
                if (m->control_pressed) { for(int i=0;i<flowFileNames.size();i++){      flowFileNames[i]->close();  } return 0; }
                
 //             ofstream fastaFile;
-//             openOutputFile(getRootName(sffFile) + "fasta", fastaFile);
+//             m->openOutputFile(m->getRootName(sffFile) + "fasta", fastaFile);
 
 //             ofstream qualFile;
-//             openOutputFile(getRootName(sffFile) + "qual", qualFile);
+//             m->openOutputFile(m->getRootName(sffFile) + "qual", qualFile);
                
-               string commonHeader = getline(inSFF);
-               string magicNumber = getline(inSFF);            
-               string version = getline(inSFF);
-               string indexOffset = getline(inSFF);
-               string indexLength = getline(inSFF);
+               string commonHeader = m->getline(inSFF);
+               string magicNumber = m->getline(inSFF);         
+               string version = m->getline(inSFF);
+               string indexOffset = m->getline(inSFF);
+               string indexLength = m->getline(inSFF);
                int numReads = parseHeaderLineToInt(inSFF);
-               string headerLength = getline(inSFF);
-               string keyLength = getline(inSFF);
+               string headerLength = m->getline(inSFF);
+               string keyLength = m->getline(inSFF);
                int numFlows = parseHeaderLineToInt(inSFF);
-               string flowgramCode = getline(inSFF);
-               string flowChars = getline(inSFF);
-               string keySequence = getline(inSFF);
-               gobble(inSFF);
+               string flowgramCode = m->getline(inSFF);
+               string flowChars = m->getline(inSFF);
+               string keySequence = m->getline(inSFF);
+               m->gobble(inSFF);
 
                string seqName;
                bool good = 0;
@@ -155,17 +155,17 @@ int ParseSFFCommand::execute(){
                        
                        inSFF >> seqName;
                        seqName = seqName.substr(1);
-                       gobble(inSFF);
+                       m->gobble(inSFF);
                        
                        string runPrefix = parseHeaderLineToString(inSFF);
                        string regionNumber = parseHeaderLineToString(inSFF);
                        string xyLocation = parseHeaderLineToString(inSFF);
-                       gobble(inSFF);
+                       m->gobble(inSFF);
                        
                        string runName = parseHeaderLineToString(inSFF);
                        string analysisName = parseHeaderLineToString(inSFF);
                        string fullPath = parseHeaderLineToString(inSFF);
-                       gobble(inSFF);
+                       m->gobble(inSFF);
                        
                        string readHeaderLen = parseHeaderLineToString(inSFF);
                        string nameLength = parseHeaderLineToString(inSFF);
@@ -174,13 +174,13 @@ int ParseSFFCommand::execute(){
                        int clipQualRight = parseHeaderLineToInt(inSFF);
                        string clipAdapLeft = parseHeaderLineToString(inSFF);
                        string clipAdapRight = parseHeaderLineToString(inSFF);
-                       gobble(inSFF);
+                       m->gobble(inSFF);
                        
                        vector<float> flowVector = parseHeaderLineToFloatVector(inSFF, numFlows);
                        vector<int> flowIndices = parseHeaderLineToIntVector(inSFF, numBases);
                        string bases = parseHeaderLineToString(inSFF);
                        string qualityScores = parseHeaderLineToString(inSFF);
-                       gobble(inSFF);
+                       m->gobble(inSFF);
                        
 
                        
@@ -250,7 +250,7 @@ void ParseSFFCommand::getOligos(vector<ofstream*>& outSFFFlowVec){
        try {
 
                ifstream inOligos;
-               openInputFile(oligoFile, inOligos);
+               m->openInputFile(oligoFile, inOligos);
                
                string type, oligo, group;
                
@@ -259,7 +259,7 @@ void ParseSFFCommand::getOligos(vector<ofstream*>& outSFFFlowVec){
                while(!inOligos.eof()){
                        inOligos >> type;
 
-                       if(type[0] == '#'){     getline(inOligos);      } // get rest of line if there's any crap there
+                       if(type[0] == '#'){     m->getline(inOligos);   } // get rest of line if there's any crap there
                        else{
                                inOligos >> oligo;
                                
@@ -280,11 +280,11 @@ void ParseSFFCommand::getOligos(vector<ofstream*>& outSFFFlowVec){
                                        barcodes[oligo]=index++;
                                        groupVector.push_back(group);
                                        
-                                       outSFFFlowVec.push_back(new ofstream((outputDir + getRootName(getSimpleName(sffFile)) + group + ".flow").c_str(), ios::ate));
-                                       outputNames.push_back((outputDir + getRootName(getSimpleName(sffFile)) + group + "flow"));
+                                       outSFFFlowVec.push_back(new ofstream((outputDir + m->getRootName(m->getSimpleName(sffFile)) + group + ".flow").c_str(), ios::ate));
+                                       outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(sffFile)) + group + "flow"));
                                }
                        }
-                       gobble(inOligos);
+                       m->gobble(inOligos);
                }
                
                inOligos.close();
@@ -315,7 +315,7 @@ int ParseSFFCommand::parseHeaderLineToInt(ifstream& file){
                }
                
        }
-       gobble(file);
+       m->gobble(file);
        return number;
 }
 
@@ -329,12 +329,12 @@ string ParseSFFCommand::parseHeaderLineToString(ifstream& file){
                char c = file.get(); 
                
                if (c == ':'){
-                       gobble(file);
-                       text = getline(file);                   
+                       m->gobble(file);
+                       text = m->getline(file);                        
                        break;
                }
        }
-       gobble(file);
+       m->gobble(file);
 
        return text;
 }
@@ -354,7 +354,7 @@ vector<float> ParseSFFCommand::parseHeaderLineToFloatVector(ifstream& file, int
                        break;
                }
        }
-       gobble(file);   
+       m->gobble(file);        
        return floatVector;
 }
 
@@ -373,7 +373,7 @@ vector<int> ParseSFFCommand::parseHeaderLineToIntVector(ifstream& file, int leng
                        break;
                }
        }
-       gobble(file);   
+       m->gobble(file);        
        return intVector;
 }
 
index b87e9c0b1ea0f5e84cbdf87a341c2fc6d393699d..3295de2d5c4db657b2a828c8be090476109d0f9a 100644 (file)
@@ -50,7 +50,7 @@ ParsimonyCommand::ParsimonyCommand(string option)  {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; globaldata->Groups.clear(); }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                                
@@ -64,20 +64,20 @@ ParsimonyCommand::ParsimonyCommand(string option)  {
                                        T = globaldata->gTree;
                                        tmap = globaldata->gTreemap;
                                        
-                                       if(outputDir == "") { outputDir += hasPath(globaldata->getTreeFile()); }
-                                       output = new ColumnFile(outputDir + getSimpleName(globaldata->getTreeFile())  +  ".parsimony", itersString);
-                                       outputNames.push_back(outputDir + getSimpleName(globaldata->getTreeFile())  +  ".parsimony");
+                                       if(outputDir == "") { outputDir += m->hasPath(globaldata->getTreeFile()); }
+                                       output = new ColumnFile(outputDir + m->getSimpleName(globaldata->getTreeFile())  +  ".parsimony", itersString);
+                                       outputNames.push_back(outputDir + m->getSimpleName(globaldata->getTreeFile())  +  ".parsimony");
                                        
-                                       sumFile = outputDir + getSimpleName(globaldata->getTreeFile()) + ".psummary";
-                                       openOutputFile(sumFile, outSum);
+                                       sumFile = outputDir + m->getSimpleName(globaldata->getTreeFile()) + ".psummary";
+                                       m->openOutputFile(sumFile, outSum);
                                        outputNames.push_back(sumFile);
                                }else { //user wants random distribution
                                        savetmap = globaldata->gTreemap;
                                        getUserInput();
                                        
-                                       if(outputDir == "") { outputDir += hasPath(randomtree); }
-                                       output = new ColumnFile(outputDir+ getSimpleName(randomtree), itersString);
-                                       outputNames.push_back(outputDir+ getSimpleName(randomtree));
+                                       if(outputDir == "") { outputDir += m->hasPath(randomtree); }
+                                       output = new ColumnFile(outputDir+ m->getSimpleName(randomtree), itersString);
+                                       outputNames.push_back(outputDir+ m->getSimpleName(randomtree));
                                }
                                
                                //set users groups to analyze
index c9fecd58ca08d9103770dd5f0e3afd7f2274c89d..c982d7563c8f26066924eeab070f5fd16a5b30e5 100644 (file)
@@ -42,7 +42,7 @@ PCACommand::PCACommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -57,7 +57,7 @@ PCACommand::PCACommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(phylipfile); //if user entered a file with a path then preserve it 
+                               outputDir += m->hasPath(phylipfile); //if user entered a file with a path then preserve it      
                        }
                        
                        //error checking on files       
@@ -97,7 +97,7 @@ int PCACommand::execute(){
                vector<string> names;
                vector<vector<double> > D;
        
-               fbase = outputDir + getRootName(getSimpleName(filename));
+               fbase = outputDir + m->getRootName(m->getSimpleName(filename));
                
                read(filename, names, D);
                
@@ -219,11 +219,11 @@ int PCACommand::read_phylip(istream& f, int square_m, vector<string>& name_list,
 void PCACommand::read(string fname, vector<string>& names, vector<vector<double> >& D){
        try {
                ifstream f;
-               openInputFile(fname, f);
+               m->openInputFile(fname, f);
                        
                //check whether matrix is square
                char d;
-               int m = 1;
+               int q = 1;
                int numSeqs;
                string name;
                
@@ -233,21 +233,21 @@ void PCACommand::read(string fname, vector<string>& names, vector<vector<double>
                        
                        //is d a number meaning its square
                        if(isalnum(d)){ 
-                               m = 1; 
+                               q = 1; 
                                break; 
                        }
                        
                        //is d a line return meaning its lower triangle
                        if(d == '\n'){
-                               m = 2;
+                               q = 2;
                                break;
                        }
                }
                f.close();
                
                //reopen to get back to beginning
-               openInputFile(fname, f);                        
-               read_phylip(f, m, names, D);
+               m->openInputFile(fname, f);                     
+               read_phylip(f, q, names, D);
        }
                catch(exception& e) {
                m->errorOut(e, "PCACommand", "read");
index 5a2d33fd724d94949bb03adb617639a1ce28450c..619a7f7786cbe9852f87ea5953ff52459284f5b3 100644 (file)
@@ -34,7 +34,7 @@ PhyloDiversityCommand::PhyloDiversityCommand(string option)  {
                        }
                        
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
-                       outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  outputDir = hasPath(globaldata->getTreeFile());         }
+                       outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  outputDir = m->hasPath(globaldata->getTreeFile());              }
                        
                        if (globaldata->gTree.size() == 0) {//no trees were read
                                m->mothurOut("You must execute the read.tree command, before you may execute the phylo.diversity command."); m->mothurOutEndLine(); abort = true;  }
@@ -47,22 +47,22 @@ PhyloDiversityCommand::PhyloDiversityCommand(string option)  {
                        convert(temp, iters); 
                        
                        temp = validParameter.validFile(parameters, "rarefy", false);                   if (temp == "not found") { temp = "F"; }
-                       rarefy = isTrue(temp);
+                       rarefy = m->isTrue(temp);
                        if (!rarefy) { iters = 1;  }
                        
                        temp = validParameter.validFile(parameters, "summary", false);                  if (temp == "not found") { temp = "T"; }
-                       summary = isTrue(temp);
+                       summary = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "scale", false);                    if (temp == "not found") { temp = "F"; }
-                       scale = isTrue(temp);
+                       scale = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "collect", false);                  if (temp == "not found") { temp = "F"; }
-                       collect = isTrue(temp);
+                       collect = m->isTrue(temp);
                        
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; Groups = globaldata->gTreemap->namesOfGroups;  globaldata->Groups = Groups;  }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                        
@@ -124,20 +124,20 @@ int PhyloDiversityCommand::execute(){
                        if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) {        remove(outputNames[i].c_str());         } return 0; }
                        
                        ofstream outSum, outRare, outCollect;
-                       string outSumFile = outputDir + getRootName(getSimpleName(globaldata->getTreeFile()))  + toString(i+1) + ".phylodiv.summary";
-                       string outRareFile = outputDir + getRootName(getSimpleName(globaldata->getTreeFile()))  + toString(i+1) + ".phylodiv.rarefaction";
-                       string outCollectFile = outputDir + getRootName(getSimpleName(globaldata->getTreeFile()))  + toString(i+1) + ".phylodiv";
+                       string outSumFile = outputDir + m->getRootName(m->getSimpleName(globaldata->getTreeFile()))  + toString(i+1) + ".phylodiv.summary";
+                       string outRareFile = outputDir + m->getRootName(m->getSimpleName(globaldata->getTreeFile()))  + toString(i+1) + ".phylodiv.rarefaction";
+                       string outCollectFile = outputDir + m->getRootName(m->getSimpleName(globaldata->getTreeFile()))  + toString(i+1) + ".phylodiv";
                        
-                       if (summary)    { openOutputFile(outSumFile, outSum); outputNames.push_back(outSumFile);                                }
-                       if (rarefy)             { openOutputFile(outRareFile, outRare); outputNames.push_back(outRareFile);                             }
-                       if (collect)    { openOutputFile(outCollectFile, outCollect); outputNames.push_back(outCollectFile);    }
+                       if (summary)    { m->openOutputFile(outSumFile, outSum); outputNames.push_back(outSumFile);                             }
+                       if (rarefy)             { m->openOutputFile(outRareFile, outRare); outputNames.push_back(outRareFile);                          }
+                       if (collect)    { m->openOutputFile(outCollectFile, outCollect); outputNames.push_back(outCollectFile); }
                        
                        int numLeafNodes = trees[i]->getNumLeaves();
                        
                        //create a vector containing indexes of leaf nodes, randomize it, select nodes to send to calculator
                        vector<int> randomLeaf;
                        for (int j = 0; j < numLeafNodes; j++) {  
-                               if (inUsersGroups(trees[i]->tree[j].getGroup(), globaldata->Groups) == true) { //is this a node from the group the user selected.
+                               if (m->inUsersGroups(trees[i]->tree[j].getGroup(), globaldata->Groups) == true) { //is this a node from the group the user selected.
                                        randomLeaf.push_back(j); 
                                }
                        }
index 870f35fa3b994a78ed165d1179c8ee2d6daf207b..39bfdf3dfecb1cd4aaecb2763043d0c8cbb00d29 100644 (file)
@@ -48,12 +48,12 @@ void PhyloSummary::summarize(string userTfile){
        try {
                
                ifstream in;
-               openInputFile(userTfile, in);
+               m->openInputFile(userTfile, in);
                
                //read in users taxonomy file and add sequences to tree
                string name, tax;
                while(!in.eof()){
-                       in >> name >> tax; gobble(in);
+                       in >> name >> tax; m->gobble(in);
                        
                        addSeqToTree(name, tax);
                        
@@ -252,15 +252,15 @@ void PhyloSummary::readTreeStruct(ifstream& in){
        try {
        
                //read version
-               string line = getline(in); gobble(in);
+               string line = m->getline(in); m->gobble(in);
                
                int num;
                
-               in >> num; gobble(in);
+               in >> num; m->gobble(in);
                
                tree.resize(num);
                
-               in >> maxLevel; gobble(in);
+               in >> maxLevel; m->gobble(in);
        
                //read the tree file
                for (int i = 0; i < tree.size(); i++) {
@@ -284,7 +284,7 @@ void PhyloSummary::readTreeStruct(ifstream& in){
                        
                        tree[i].total = 0;
                        
-                       gobble(in);
+                       m->gobble(in);
                        
                        //if (tree[i].level > maxLevel) {  maxLevel = tree[i].level;  }
                }
index 2ea219350c1f8bf8099b7cfc40d28ddcdfc9d872..1fd4e5d238119bbcd6be5c54fbd7013fcdfc27bd 100644 (file)
@@ -55,24 +55,24 @@ PhyloTree::PhyloTree(ifstream& in, string filename){
                        delete buffer;
                        
                        //read version
-                       getline(iss); gobble(iss);
+                       m->getline(iss); m->gobble(iss);
                        
-                       iss >> numNodes; gobble(iss);
+                       iss >> numNodes; m->gobble(iss);
                        
                        tree.resize(numNodes);
                        
                        for (int i = 0; i < tree.size(); i++) {
-                               iss >> tree[i].name >> tree[i].level >> tree[i].parent; gobble(iss);
+                               iss >> tree[i].name >> tree[i].level >> tree[i].parent; m->gobble(iss);
                        }
                        
                        //read genus nodes
                        int numGenus = 0;
-                       iss >> numGenus; gobble(iss);
+                       iss >> numGenus; m->gobble(iss);
                        
                        int gnode, gsize;
                        totals.clear();
                        for (int i = 0; i < numGenus; i++) {
-                               iss >> gnode >> gsize; gobble(iss);
+                               iss >> gnode >> gsize; m->gobble(iss);
                                
                                uniqueTaxonomies[gnode] = gnode;
                                totals.push_back(gsize);
@@ -82,24 +82,24 @@ PhyloTree::PhyloTree(ifstream& in, string filename){
                        
                #else
                        //read version
-                       string line = getline(in); gobble(in);
+                       string line = m->getline(in); m->gobble(in);
                        
-                       in >> numNodes; gobble(in);
+                       in >> numNodes; m->gobble(in);
                        
                        tree.resize(numNodes);
                        
                        for (int i = 0; i < tree.size(); i++) {
-                               in >> tree[i].name >> tree[i].level >> tree[i].parent; gobble(in);
+                               in >> tree[i].name >> tree[i].level >> tree[i].parent; m->gobble(in);
                        }
                        
                        //read genus nodes
                        int numGenus = 0;
-                       in >> numGenus; gobble(in);
+                       in >> numGenus; m->gobble(in);
                        
                        int gnode, gsize;
                        totals.clear();
                        for (int i = 0; i < numGenus; i++) {
-                               in >> gnode >> gsize; gobble(in);
+                               in >> gnode >> gsize; m->gobble(in);
                                
                                uniqueTaxonomies[gnode] = gnode;
                                totals.push_back(gsize);
@@ -144,7 +144,7 @@ PhyloTree::PhyloTree(string tfile){
                        MPI_File_open(MPI_COMM_WORLD, inFileName, MPI_MODE_RDONLY, MPI_INFO_NULL, &inMPI);  //comm, filename, mode, info, filepointer
 
                        if (pid == 0) {
-                               positions = setFilePosEachLine(tfile, num);
+                               positions = m->setFilePosEachLine(tfile, num);
                                
                                //send file positions to all processes
                                for(int i = 1; i < processors; i++) { 
@@ -179,11 +179,11 @@ PhyloTree::PhyloTree(string tfile){
                
                #else
                        ifstream in;
-                       openInputFile(tfile, in);
+                       m->openInputFile(tfile, in);
                        
                        //read in users taxonomy file and add sequences to tree
                        while(!in.eof()){
-                               in >> name >> tax; gobble(in);
+                               in >> name >> tax; m->gobble(in);
                        
                                addSeqToTree(name, tax);
                        }
@@ -365,7 +365,7 @@ void PhyloTree::binUnclassified(string file){
        try {
        
                ofstream out;
-               openOutputFile(file, out);
+               m->openOutputFile(file, out);
                
                map<string, int>::iterator itBin;
                map<string, int>::iterator childPointer;
@@ -519,7 +519,7 @@ void PhyloTree::printTreeNodes(string treefilename) {
                #endif
 
                        ofstream outTree;
-                       openOutputFile(treefilename, outTree);
+                       m->openOutputFile(treefilename, outTree);
                        
                        //output mothur version
                        outTree << "#" << m->getVersion() << endl;
index d04c9604170cf0d5c0f440132d25747b9193ba4c..c4f367a06d3e810afd954800ac637f29dc1818a1 100644 (file)
@@ -46,7 +46,7 @@ PhylotypeCommand::PhylotypeCommand(string option)  {
                                it = parameters.find("taxonomy");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["taxonomy"] = inputDir + it->second;         }
                                }
@@ -54,7 +54,7 @@ PhylotypeCommand::PhylotypeCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -75,7 +75,7 @@ PhylotypeCommand::PhylotypeCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(taxonomyFileName); //if user entered a file with a path then preserve it   
+                               outputDir += m->hasPath(taxonomyFileName); //if user entered a file with a path then preserve it        
                        }
                        
                        string temp = validParameter.validFile(parameters, "cutoff", false);
@@ -85,7 +85,7 @@ PhylotypeCommand::PhylotypeCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; allLines = 1; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -152,17 +152,17 @@ int PhylotypeCommand::execute(){
                
                if (m->control_pressed) { delete tree; return 0; }
                
-               string fileroot = outputDir + getRootName(getSimpleName(taxonomyFileName));
+               string fileroot = outputDir + m->getRootName(m->getSimpleName(taxonomyFileName));
                
                ofstream outList;
                string outputListFile = fileroot + "tx.list";
-               openOutputFile(outputListFile, outList);
+               m->openOutputFile(outputListFile, outList);
                ofstream outSabund;
                string outputSabundFile = fileroot + "tx.sabund";
-               openOutputFile(outputSabundFile, outSabund);
+               m->openOutputFile(outputSabundFile, outSabund);
                ofstream outRabund;
                string outputRabundFile = fileroot + "tx.rabund";
-               openOutputFile(outputRabundFile, outRabund);
+               m->openOutputFile(outputRabundFile, outRabund);
                
                outputNames.push_back(outputListFile);
                outputNames.push_back(outputSabundFile);
@@ -270,13 +270,13 @@ int PhylotypeCommand::readNamesFile() {
        try {
                                
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                
                string first, second;
                map<string, string>::iterator itNames;
                
                while(!in.eof()) {
-                       in >> first >> second; gobble(in);
+                       in >> first >> second; m->gobble(in);
                        
                        itNames = namemap.find(first);
                        if (itNames == namemap.end()) {  
index 8a159ca381bd3378ee3f2f63d9dabdc692c1676d..4ad60c50742e36c630fbbc81a7f1f73ad527ec42 100644 (file)
@@ -92,7 +92,7 @@ int Pintail::doPrep() {
                m->mothurOut("Getting conservation... "); cout.flush();
                if (consfile == "") { 
                        m->mothurOut("Calculating probability of conservation for your template sequences.  This can take a while...  I will output the frequency of the highest base in each position to a .freq file so that you can input them using the conservation parameter next time you run this command.  Providing the .freq file will improve speed.    "); cout.flush();
-                       probabilityProfile = decalc->calcFreq(templateSeqs, outputDir + getSimpleName(templateFileName)); 
+                       probabilityProfile = decalc->calcFreq(templateSeqs, outputDir + m->getSimpleName(templateFileName)); 
                        if (m->control_pressed) {  return 0;  }
                        m->mothurOut("Done."); m->mothurOutEndLine();
                }else                           {   probabilityProfile = readFreq();    m->mothurOut("Done.");            }
@@ -170,13 +170,13 @@ int Pintail::doPrep() {
                        string noOutliers, outliers;
                        
                        if ((!filter) && (seqMask == "")) {
-                               noOutliers = outputDir + getRootName(getSimpleName(templateFileName)) + "pintail.quan";
+                               noOutliers = outputDir + m->getRootName(m->getSimpleName(templateFileName)) + "pintail.quan";
                        }else if ((!filter) && (seqMask != "")) { 
-                               noOutliers = outputDir + getRootName(getSimpleName(templateFileName)) + "pintail.masked.quan";
+                               noOutliers = outputDir + m->getRootName(m->getSimpleName(templateFileName)) + "pintail.masked.quan";
                        }else if ((filter) && (seqMask != "")) { 
-                               noOutliers = outputDir + getRootName(getSimpleName(templateFileName)) + "pintail.filtered." + getSimpleName(getRootName(fastafile)) + "masked.quan";
+                               noOutliers = outputDir + m->getRootName(m->getSimpleName(templateFileName)) + "pintail.filtered." + m->getSimpleName(m->getRootName(fastafile)) + "masked.quan";
                        }else if ((filter) && (seqMask == "")) { 
-                               noOutliers = outputDir + getRootName(getSimpleName(templateFileName)) + "pintail.filtered." + getSimpleName(getRootName(fastafile)) + "quan";
+                               noOutliers = outputDir + m->getRootName(m->getSimpleName(templateFileName)) + "pintail.filtered." + m->getSimpleName(m->getRootName(fastafile)) + "quan";
                        }
 
                        decalc->removeObviousOutliers(quantilesMembers, templateSeqs.size());
@@ -450,7 +450,7 @@ vector<float> Pintail::readFreq() {
                istringstream iss (tempBuf,istringstream::in);
                
                //read version
-               string line = getline(iss); gobble(iss);
+               string line = m->getline(iss); m->gobble(iss);
                
                while(!iss.eof()) {
                        iss >> pos >> num;
@@ -466,7 +466,7 @@ vector<float> Pintail::readFreq() {
                                prob.push_back(Pi);  
                        }
                        
-                       gobble(iss);
+                       m->gobble(iss);
                }
        
                MPI_File_close(&inMPI);
@@ -474,10 +474,10 @@ vector<float> Pintail::readFreq() {
        #else   
 
                ifstream in;
-               openInputFile(consfile, in);
+               m->openInputFile(consfile, in);
                
                //read version
-               string line = getline(in); gobble(in);
+               string line = m->getline(in); m->gobble(in);
                                
                while(!in.eof()){
                        
@@ -494,7 +494,7 @@ vector<float> Pintail::readFreq() {
                                prob.push_back(Pi);  
                        }
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                
@@ -546,7 +546,7 @@ void Pintail::createProcessesQuan() {
                                //write out data to file so parent can read it
                                ofstream out;
                                string s = toString(getpid()) + ".temp";
-                               openOutputFile(s, out);
+                               m->openOutputFile(s, out);
                                
                                                                
                                //output observed distances
@@ -574,7 +574,7 @@ void Pintail::createProcessesQuan() {
                for (int i=0;i<processors;i++) { 
                        ifstream in;
                        string s = toString(processIDS[i]) + ".temp";
-                       openInputFile(s, in);
+                       m->openInputFile(s, in);
                        
                        vector< vector<float> > quan; 
                        quan.resize(100);
@@ -584,7 +584,7 @@ void Pintail::createProcessesQuan() {
                                int num;
                                in >> num; 
                                
-                               gobble(in);
+                               m->gobble(in);
 
                                vector<float> q;  float w; 
                                for (int j = 0; j < num; j++) {
@@ -593,7 +593,7 @@ void Pintail::createProcessesQuan() {
                                }
 
                                quan[h] = q;
-                               gobble(in);
+                               m->gobble(in);
                        }
                        
        
@@ -655,7 +655,7 @@ vector< vector<float> > Pintail::readQuantiles() {
                delete buffer;
                
                //read version
-               string line = getline(iss); gobble(iss);
+               string line = m->getline(iss); m->gobble(iss);
                
                while(!iss.eof()) {
                        iss >> num >> ten >> twentyfive >> fifty >> seventyfive >> ninetyfive >> ninetynine; 
@@ -671,7 +671,7 @@ vector< vector<float> > Pintail::readQuantiles() {
                        
                        quan.push_back(temp);  
                        
-                       gobble(iss);
+                       m->gobble(iss);
                }
        
                MPI_File_close(&inMPI);
@@ -679,10 +679,10 @@ vector< vector<float> > Pintail::readQuantiles() {
        #else   
 
                ifstream in;
-               openInputFile(quanfile, in);
+               m->openInputFile(quanfile, in);
                
                //read version
-               string line = getline(in); gobble(in);
+               string line = m->getline(in); m->gobble(in);
                        
                while(!in.eof()){
                        
@@ -699,7 +699,7 @@ vector< vector<float> > Pintail::readQuantiles() {
                        
                        quan.push_back(temp);  
        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
        #endif
@@ -749,7 +749,7 @@ void Pintail::printQuanFile(string file, string outputString) {
                        //delete FileName;
                #else
                        ofstream outQuan;
-                       openOutputFile(file, outQuan);
+                       m->openOutputFile(file, outQuan);
                        
                        outQuan << outputString;
                        
index c5b66a81eaa7ec7381af79c4170f1efaf41e91d1..0bd91328f0b6aab5a1f8f20cdaaefab2876cc15d 100644 (file)
@@ -44,7 +44,7 @@ PreClusterCommand::PreClusterCommand(string option) {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -52,7 +52,7 @@ PreClusterCommand::PreClusterCommand(string option) {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -66,7 +66,7 @@ PreClusterCommand::PreClusterCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
 
                        //check for optional parameter and set defaults
@@ -125,14 +125,14 @@ int PreClusterCommand::execute(){
                if (numSeqs == 0) { m->mothurOut("Error reading fasta file...please correct."); m->mothurOutEndLine(); return 0;  }
                if (diffs > length) { m->mothurOut("Error: diffs is greater than your sequence length."); m->mothurOutEndLine(); return 0;  }
                
-               string fileroot = outputDir + getRootName(getSimpleName(fastafile));
-               string newFastaFile = fileroot + "precluster" + getExtension(fastafile);
+               string fileroot = outputDir + m->getRootName(m->getSimpleName(fastafile));
+               string newFastaFile = fileroot + "precluster" + m->getExtension(fastafile);
                string newNamesFile = fileroot + "precluster.names";
                ofstream outFasta;
                ofstream outNames;
                
-               openOutputFile(newFastaFile, outFasta);
-               openOutputFile(newNamesFile, outNames);
+               m->openOutputFile(newFastaFile, outFasta);
+               m->openOutputFile(newNamesFile, outNames);
 
                //sort seqs by number of identical seqs
                alignSeqs.sort(comparePriority);
@@ -215,8 +215,8 @@ int PreClusterCommand::readFASTA(){
                //ifstream inNames;
                ifstream inFasta;
                
-               //openInputFile(namefile, inNames);
-               openInputFile(fastafile, inFasta);
+               //m->openInputFile(namefile, inNames);
+               m->openInputFile(fastafile, inFasta);
                
                //string firstCol, secondCol, nameString;
                length = 0;
@@ -228,14 +228,14 @@ int PreClusterCommand::readFASTA(){
                        //inNames >> firstCol >> secondCol;
                        //nameString = secondCol;
                        
-                       //gobble(inNames);
+                       //m->gobble(inNames);
                        //int size = 1;
                        //while (secondCol.find_first_of(',') != -1) { 
                        //      size++;
                        //      secondCol = secondCol.substr(secondCol.find_first_of(',')+1, secondCol.length());
                        //}
                        
-                       Sequence seq(inFasta);  gobble(inFasta);
+                       Sequence seq(inFasta);  m->gobble(inFasta);
                        
                        if (seq.getName() != "") {  //can get "" if commented line is at end of fasta file
                                if (namefile != "") {
@@ -302,11 +302,11 @@ void PreClusterCommand::printData(ofstream& outFasta, ofstream& outNames, seqPNo
 void PreClusterCommand::readNameFile(){
        try {
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                string firstCol, secondCol;
                                
                while (!in.eof()) {
-                       in >> firstCol >> secondCol; gobble(in);
+                       in >> firstCol >> secondCol; m->gobble(in);
                        names[firstCol] = secondCol;
                        int size = 1;
 
index fd9459c0d49d005437464463e421bdd61c7db3d7..fa78b69d653cb841c33833d6249bab6b6ecaf18c 100644 (file)
@@ -35,18 +35,18 @@ QualityScores::QualityScores(ifstream& qFile, int l){
                int score;
                
                //string line;
-               //getline(qFile, line); 
+               //m->getline(qFile, line); 
                //istringstream nameStream(line);
        
                qFile >> seqName; 
                while (!qFile.eof())    {       char c = qFile.get(); if (c == 10 || c == 13 || c == -1){       break;  }       } // get rest of line 
-               gobble(qFile);
+               m->gobble(qFile);
                if (seqName == "") { m->mothurOut("Error reading quality file, name blank at position, " + toString(qFile.tellg())); m->mothurOutEndLine(); }
                else {
                        seqName = seqName.substr(1); 
                }
 
-               //getline(qFile, line);
+               //m->getline(qFile, line);
                //istringstream qualStream(line);
        
                //while(qualStream){
@@ -61,7 +61,7 @@ QualityScores::QualityScores(ifstream& qFile, int l){
                        qFile >> score;
                        qScores.push_back(score);
                }
-               gobble(qFile);
+               m->gobble(qFile);
 
        }
        catch(exception& e) {
index d30fa16ba5a75dd190d65b9e887702eba8af27df..8a0fb72b5ef946a14f343704f6e7c2b608305e3b 100644 (file)
@@ -17,7 +17,7 @@
 class RareCalc {
 
 public:
-       RareCalc(RAbundVector* b) : bins(b), numSeqs(b->getNumSeqs()), maxRank(b->getMaxRank()), numBins(b->getNumBins()) {     bMatrix = binomial(numSeqs+1); m = MothurOut::getInstance();    }
+       RareCalc(RAbundVector* b) : bins(b), numSeqs(b->getNumSeqs()), maxRank(b->getMaxRank()), numBins(b->getNumBins()) {     m = MothurOut::getInstance(); bMatrix = m->binomial(numSeqs+1); }
        EstOutput getValues(int);
        string getName()        {       return "rarecalc";      }
 private:
index bb9a4fd58b7362eb1ed69216cdfa2aa16817b2c6..73d09b1206647cf832a06ec583e3a1d8d3956e2d 100644 (file)
@@ -56,7 +56,7 @@ RareFactCommand::RareFactCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
 
                        //make sure the user has already run the read.otu command
@@ -67,7 +67,7 @@ RareFactCommand::RareFactCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -82,7 +82,7 @@ RareFactCommand::RareFactCommand(string option)  {
                        else { 
                                 if (calc == "default")  {  calc = "sobs";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
 
                        string temp;
                        temp = validParameter.validFile(parameters, "freq", false);                     if (temp == "not found") { temp = "100"; }
@@ -144,7 +144,7 @@ int RareFactCommand::execute(){
                
                for (int p = 0; p < inputFileNames.size(); p++) {
                        
-                       string fileNameRoot = outputDir + getRootName(getSimpleName(inputFileNames[p]));
+                       string fileNameRoot = outputDir + m->getRootName(m->getSimpleName(inputFileNames[p]));
                        globaldata->inputFileName = inputFileNames[p];
                        
                        if (m->control_pressed) { if (hadShared != "") {  globaldata->setSharedFile(hadShared); globaldata->setFormat("sharedfile");  } return 0; }
@@ -243,7 +243,7 @@ int RareFactCommand::execute(){
                                        userLabels.erase(order->getLabel());
                                }
                                
-                               if ((anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                               if ((m->anyLabelsToProcess(order->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = order->getLabel();
                                        
                                        delete order;
@@ -339,7 +339,7 @@ vector<string> RareFactCommand::parseSharedFile(string filename) {
                input = globaldata->ginput;
                vector<SharedRAbundVector*> lookup = input->getSharedRAbundVectors();
                
-               string sharedFileRoot = getRootName(filename);
+               string sharedFileRoot = m->getRootName(filename);
                
                //clears file before we start to write to it below
                for (int i=0; i<lookup.size(); i++) {
@@ -358,7 +358,7 @@ vector<string> RareFactCommand::parseSharedFile(string filename) {
                
                        for (int i = 0; i < lookup.size(); i++) {
                                RAbundVector rav = lookup[i]->getRAbundVector();
-                               openOutputFileAppend(sharedFileRoot + lookup[i]->getGroup() + ".rabund", *(filehandles[lookup[i]->getGroup()]));
+                               m->openOutputFileAppend(sharedFileRoot + lookup[i]->getGroup() + ".rabund", *(filehandles[lookup[i]->getGroup()]));
                                rav.print(*(filehandles[lookup[i]->getGroup()]));
                                (*(filehandles[lookup[i]->getGroup()])).close();
                        }
index 324f02852189c175ec7383d44a4e498fa4ccc7d5..c0f5ec0c4daba141c9267817836522e0d22c1a3a 100644 (file)
@@ -50,7 +50,7 @@ RareFactSharedCommand::RareFactSharedCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
 
                        
@@ -59,7 +59,7 @@ RareFactSharedCommand::RareFactSharedCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -74,12 +74,12 @@ RareFactSharedCommand::RareFactSharedCommand(string option)  {
                        else { 
                                 if (calc == "default")  {  calc = "sharedobserved";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
                        
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                        }
                        globaldata->Groups = Groups;
                        
@@ -91,13 +91,13 @@ RareFactSharedCommand::RareFactSharedCommand(string option)  {
                        convert(temp, nIters); 
                        
                        temp = validParameter.validFile(parameters, "jumble", false);                   if (temp == "not found") { temp = "T"; }
-                       if (isTrue(temp)) { jumble = true; }
+                       if (m->isTrue(temp)) { jumble = true; }
                        else { jumble = false; }
                        globaldata->jumble = jumble;
                        
                        if (abort == false) {
                        
-                               string fileNameRoot = outputDir + getRootName(getSimpleName(globaldata->inputFileName));
+                               string fileNameRoot = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName));
 //                             format = globaldata->getFormat();
 
                                
@@ -214,7 +214,7 @@ int RareFactSharedCommand::execute(){
                                userLabels.erase(lookup[0]->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = lookup[0]->getLabel();
                        
                                        for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  } 
index c3dfd4884f0d01d6c9dbb98c17aa9a8341a44c5d..1efaf5b5e3526b8ec53ff3651f9de4b540720b7e 100644 (file)
@@ -40,7 +40,7 @@ int ReadBlast::read(NameAssignment* nameMap) {
                if (m->control_pressed) { return 0; }
 
                ifstream fileHandle;
-               openInputFile(blastfile, fileHandle);
+               m->openInputFile(blastfile, fileHandle);
                
                string firstName, secondName, eScore, currentRow;
                string repeatName = "";
@@ -56,11 +56,11 @@ int ReadBlast::read(NameAssignment* nameMap) {
                if (!hclusterWanted) {
                        matrix = new SparseMatrix();
                }else{
-                       overlapFile = getRootName(blastfile) + "overlap.dist";
-                       distFile = getRootName(blastfile) + "hclusterDists.dist";
+                       overlapFile = m->getRootName(blastfile) + "overlap.dist";
+                       distFile = m->getRootName(blastfile) + "hclusterDists.dist";
                        
-                       openOutputFile(overlapFile, outOverlap);
-                       openOutputFile(distFile, outDist);
+                       m->openOutputFile(overlapFile, outOverlap);
+                       m->openOutputFile(distFile, outDist);
                }
                
                if (m->control_pressed) { 
@@ -79,7 +79,7 @@ int ReadBlast::read(NameAssignment* nameMap) {
                if (!fileHandle.eof()) {
                        //read in line from file
                        fileHandle >> firstName >> secondName >> percentId >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                        
                        currentRow = firstName;
                        lengthThisSeq = numBases;
@@ -125,7 +125,7 @@ int ReadBlast::read(NameAssignment* nameMap) {
                        //read in line from file
                        fileHandle >> firstName >> secondName >> percentId >> numBases >> mismatch >> gap >> startQuery >> endQuery >> startRef >> endRef >> eScore >> score;
                        //cout << firstName << '\t' << secondName << '\t' << percentId << '\t' << numBases << '\t' << mismatch << '\t' << gap << '\t' << startQuery << '\t' << endQuery << '\t' << startRef << '\t' << endRef << '\t' << eScore << '\t' << score << endl;       
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                        
                        string temp = firstName + secondName; //to check if this file has repeat lines, ie. is this a blast instead of a blscreen file
                        
@@ -311,16 +311,16 @@ int ReadBlast::readNames(NameAssignment* nameMap) {
                int num = 1;
                
                ifstream in;
-               openInputFile(blastfile, in);
+               m->openInputFile(blastfile, in);
                
                //ofstream outName;
-               //openOutputFile((blastfile + ".tempOutNames"), outName);
+               //m->openOutputFile((blastfile + ".tempOutNames"), outName);
                
                //read first line
                in >> prevName;
        
                for (int i = 0; i < 11; i++) {  in >> hold;  }
-               gobble(in);
+               m->gobble(in);
                                
                //save name in nameMap
                nameMap->push_back(prevName);
@@ -332,7 +332,7 @@ int ReadBlast::readNames(NameAssignment* nameMap) {
                        in >> name;
        
                        for (int i = 0; i < 11; i++) {  in >> hold;  }
-                       gobble(in);
+                       m->gobble(in);
                        
                        //is this a new name?
                        if (name != prevName) {
@@ -345,9 +345,9 @@ int ReadBlast::readNames(NameAssignment* nameMap) {
                in.close();
                
                //write out names file
-               //string outNames = getRootName(blastfile) + "names";
+               //string outNames = m->getRootName(blastfile) + "names";
                //ofstream out;
-               //openOutputFile(outNames, out);
+               //m->openOutputFile(outNames, out);
                //nameMap->print(out);
                //out.close();
                
index af71cbc96f1cca200bb8e5f66258703917f6ac53..205581c72ab26bd767a0a4c47fdfcb3d73e124d5 100644 (file)
@@ -31,7 +31,7 @@ int ReadCluster::read(NameAssignment* nameMap){
                
                if (m->control_pressed) { return 0; }
                
-               if (sortWanted) {  OutPutFile = sortFile(distFile, outputDir);  }
+               if (sortWanted) {  OutPutFile = m->sortFile(distFile, outputDir);  }
                else {  OutPutFile = distFile;   } //for use by clusters splitMatrix to convert a phylip matrix to column
                
                return 0;
@@ -54,8 +54,8 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){
                ofstream out;
                string tempFile = distFile + ".column.temp";
                
-               openInputFile(distFile, in);  gobble(in);
-               openOutputFile(tempFile, out);
+               m->openInputFile(distFile, in);  m->gobble(in);
+               m->openOutputFile(tempFile, out);
                
                float distance;
                int square, nseqs;
@@ -190,9 +190,9 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){
                ifstream in2;
                ofstream out2;
                
-               string outputFile = getRootName(distFile) + "column.dist";
-               openInputFile(tempFile, in2);
-               openOutputFile(outputFile, out2);
+               string outputFile = m->getRootName(distFile) + "column.dist";
+               m->openInputFile(tempFile, in2);
+               m->openOutputFile(outputFile, out2);
                
                int first, second;
                float dist;
@@ -202,7 +202,7 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){
                        
                        in2 >> first >> second >> dist;
                        out2 << rowToName[first] << '\t' << rowToName[second] << '\t' << dist << endl;
-                       gobble(in2);
+                       m->gobble(in2);
                }
                in2.close();
                out2.close();
index f29f70b11fd66d8b8d9a87fdb5502ed289c7d657..2782bd08a84efd8a596364f14c56015e04407241 100644 (file)
@@ -14,7 +14,7 @@
 
 ReadColumnMatrix::ReadColumnMatrix(string df) : distFile(df){
        
-       successOpen = openInputFile(distFile, fileHandle);
+       successOpen = m->openInputFile(distFile, fileHandle);
        
 }
 
@@ -91,7 +91,7 @@ int ReadColumnMatrix::read(NameAssignment* nameMap){
                                }
                                reading->update(itA->second * nseqs);
                        }
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                }
 
                if(lt == 0){  // oops, it was square
@@ -99,7 +99,7 @@ int ReadColumnMatrix::read(NameAssignment* nameMap){
                        fileHandle.close();  //let's start over
                        D->clear();  //let's start over
                   
-                       openInputFile(distFile, fileHandle);  //let's start over
+                       m->openInputFile(distFile, fileHandle);  //let's start over
 
                        while(fileHandle){
                                fileHandle >> firstName >> secondName >> distance;
@@ -125,7 +125,7 @@ int ReadColumnMatrix::read(NameAssignment* nameMap){
                                        reading->update(itA->second * nseqs);
                                }
                
-                               gobble(fileHandle);
+                               m->gobble(fileHandle);
                        }
                }
                
index 4ea630f476ae99cef0b9ef8f65b86a2f44a10873..0445eec63328e2cf7a646f1cc662bb36fdd3bb98 100644 (file)
@@ -46,7 +46,7 @@ ReadDistCommand::ReadDistCommand(string option) {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -54,7 +54,7 @@ ReadDistCommand::ReadDistCommand(string option) {
                                it = parameters.find("column");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["column"] = inputDir + it->second;           }
                                }
@@ -62,7 +62,7 @@ ReadDistCommand::ReadDistCommand(string option) {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -70,7 +70,7 @@ ReadDistCommand::ReadDistCommand(string option) {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -123,7 +123,7 @@ ReadDistCommand::ReadDistCommand(string option) {
                        convert(temp, precision); 
                        
                        temp = validParameter.validFile(parameters, "sim", false);                              if (temp == "not found") { temp = "F"; }
-                       sim = isTrue(temp); 
+                       sim = m->isTrue(temp); 
                        globaldata->sim = sim;
                        
                        temp = validParameter.validFile(parameters, "cutoff", false);                   if (temp == "not found") { temp = "10"; }
@@ -212,7 +212,7 @@ int ReadDistCommand::execute(){
                
                if (format == "matrix") {
                        ifstream in;
-                       openInputFile(distFileName, in);
+                       m->openInputFile(distFileName, in);
                        matrix = new FullMatrix(in); //reads the matrix file
                        in.close();
                        
@@ -222,12 +222,12 @@ int ReadDistCommand::execute(){
                        if (matrix->getNumSeqs() < groupMap->getNumSeqs()) {  
                                m->mothurOut("Your distance file contains " + toString(matrix->getNumSeqs()) + " sequences, and your group file contains " + toString(groupMap->getNumSeqs()) + " sequences.");  m->mothurOutEndLine();                         
                                //create new group file
-                               if(outputDir == "") { outputDir += hasPath(groupfile); }
+                               if(outputDir == "") { outputDir += m->hasPath(groupfile); }
                                
-                               string newGroupFile = outputDir + getRootName(getSimpleName(groupfile)) + "editted.groups";
+                               string newGroupFile = outputDir + m->getRootName(m->getSimpleName(groupfile)) + "editted.groups";
                                outputNames.push_back(newGroupFile);
                                ofstream outGroups;
-                               openOutputFile(newGroupFile, outGroups);
+                               m->openOutputFile(newGroupFile, outGroups);
                                
                                for (int i = 0; i < matrix->getNumSeqs(); i++) {
                                        if (m->control_pressed) { delete groupMap; delete matrix; outGroups.close(); remove(newGroupFile.c_str()); return 0; }
index 98a63f05cdbea47c62c9dc07d7fd8c65dec35319..3952abca652ef1711532e07dcc859062eeb193c2 100644 (file)
@@ -13,7 +13,7 @@
 
 ReadOTUFile::ReadOTUFile(string pf): philFile(pf){
        m = MothurOut::getInstance();
-       //openInputFile(philFile, fileHandle);
+       //m->openInputFile(philFile, fileHandle);
 }
 
 /***********************************************************************/
index 5b9cde8c84b10e0d4f6dd938dbf68191000930f4..efd7073fae39fd493ef28f22d81d6bfdcf795859 100644 (file)
@@ -45,7 +45,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -53,7 +53,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                                it = parameters.find("order");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["order"] = inputDir + it->second;            }
                                }
@@ -61,7 +61,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                                it = parameters.find("shared");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["shared"] = inputDir + it->second;           }
                                }
@@ -69,7 +69,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -77,7 +77,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                                it = parameters.find("sabund");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["sabund"] = inputDir + it->second;           }
                                }
@@ -85,7 +85,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                                it = parameters.find("rabund");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["rabund"] = inputDir + it->second;           }
                                }
@@ -93,7 +93,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                                it = parameters.find("ordergroup");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["ordergroup"] = inputDir + it->second;               }
                                }
@@ -101,7 +101,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                                it = parameters.find("relabund");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["relabund"] = inputDir + it->second;         }
                                }
@@ -159,7 +159,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
 
@@ -176,7 +176,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                                globaldata->labels = labels;
                        }
index f1554565bf9ac58a3e41afa6578742293bd0ea2c..130deccaf0adbb1af542034450d1362a20ae8b57 100644 (file)
@@ -14,7 +14,7 @@
 
 ReadPhylipMatrix::ReadPhylipMatrix(string distFile){
         
-        successOpen = openInputFile(distFile, fileHandle);
+        successOpen = m->openInputFile(distFile, fileHandle);
         
 }
 
index 1dd77f9152b241321f6658d0e0efc025c01a1a71..f72d69821f56d8fa8fb90d098f71ca855bb08126 100644 (file)
@@ -25,7 +25,7 @@ ReadTree::ReadTree() {
 int ReadTree::readSpecialChar(istream& f, char c, string name) {
     try {
        
-               gobble(f);
+               m->gobble(f);
                char d = f.get();
        
                if(d == EOF){
@@ -37,7 +37,7 @@ int ReadTree::readSpecialChar(istream& f, char c, string name) {
                        exit(1);
                }
                if(d == ')' && f.peek() == '\n'){
-                       gobble(f);
+                       m->gobble(f);
                }       
                return d;
        }
@@ -51,7 +51,7 @@ int ReadTree::readSpecialChar(istream& f, char c, string name) {
 int ReadTree::readNodeChar(istream& f) {
        try {
 //             while(isspace(d=f.get()))               {;}
-               gobble(f);
+               m->gobble(f);
                char d = f.get();
 
                if(d == EOF){
@@ -76,7 +76,7 @@ float ReadTree::readBranchLength(istream& f) {
                        m->mothurOut("Error: Missing branch length in input tree.\n");
                        exit(1);
                }
-               gobble(f);
+               m->gobble(f);
                return b;
        }
        catch(exception& e) {
@@ -125,7 +125,7 @@ int ReadNewickTree::read() {
                                
                                //save trees for later commands
                                globaldata->gTree.push_back(T); 
-                               gobble(filehandle);
+                               m->gobble(filehandle);
                        }
                //if you are a nexus file
                }else if ((c = filehandle.peek()) == '#') {
index 540f80cfa731ab2102fa0a8908737321f73a5cba..0c368337a85954a94750fdba504103cccbe9057f 100644 (file)
@@ -43,7 +43,7 @@ class ReadTree {
 class ReadNewickTree : public ReadTree {
        
 public:
-       ReadNewickTree(string file) : treeFile(file) { openInputFile(file, filehandle); readOk = 0; } 
+       ReadNewickTree(string file) : treeFile(file) { m->openInputFile(file, filehandle); readOk = 0; } 
        ~ReadNewickTree() {};
        int read();
        
index 07aa5b3e4071289a25400e7cb03f616b34ad18ba..deae495a2171c6af3d117436920558f2e10e7a27 100644 (file)
@@ -44,7 +44,7 @@ ReadTreeCommand::ReadTreeCommand(string option)  {
                                it = parameters.find("tree");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["tree"] = inputDir + it->second;             }
                                }
@@ -52,7 +52,7 @@ ReadTreeCommand::ReadTreeCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -60,7 +60,7 @@ ReadTreeCommand::ReadTreeCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -199,13 +199,13 @@ int ReadTreeCommand::readNamesFile() {
                globaldata->names.clear();
                
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                
                string first, second;
                map<string, string>::iterator itNames;
                
                while(!in.eof()) {
-                       in >> first >> second; gobble(in);
+                       in >> first >> second; m->gobble(in);
                        
                        itNames = globaldata->names.find(first);
                        if (itNames == globaldata->names.end()) {  
@@ -213,7 +213,7 @@ int ReadTreeCommand::readNamesFile() {
                                
                                //we need a list of names in your namefile to use above when removing extra seqs above so we don't remove them
                                vector<string> dupNames;
-                               splitAtComma(second, dupNames);
+                               m->splitAtComma(second, dupNames);
                                
                                for (int i = 0; i < dupNames.size(); i++) {     nameMap[dupNames[i]] = dupNames[i];  }
                        }else {  m->mothurOut(first + " has already been seen in namefile, disregarding names file."); m->mothurOutEndLine(); in.close(); globaldata->names.clear(); return 1; }                        
index afd9dd4acf22e8fc417fd6aeacb507a120987db8..b77e69f665b078c0bf52956099f455833eb81749 100644 (file)
@@ -47,7 +47,7 @@ RemoveSeqsCommand::RemoveSeqsCommand(string option)  {
                                it = parameters.find("alignreport");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["alignreport"] = inputDir + it->second;              }
                                }
@@ -55,7 +55,7 @@ RemoveSeqsCommand::RemoveSeqsCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -63,7 +63,7 @@ RemoveSeqsCommand::RemoveSeqsCommand(string option)  {
                                it = parameters.find("accnos");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["accnos"] = inputDir + it->second;           }
                                }
@@ -71,7 +71,7 @@ RemoveSeqsCommand::RemoveSeqsCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -79,7 +79,7 @@ RemoveSeqsCommand::RemoveSeqsCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -87,7 +87,7 @@ RemoveSeqsCommand::RemoveSeqsCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -95,7 +95,7 @@ RemoveSeqsCommand::RemoveSeqsCommand(string option)  {
                                it = parameters.find("taxonomy");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["taxonomy"] = inputDir + it->second;         }
                                }
@@ -133,8 +133,12 @@ RemoveSeqsCommand::RemoveSeqsCommand(string option)  {
 
                        
                        string usedDups = "true";
-                       string temp = validParameter.validFile(parameters, "dups", false);      if (temp == "not found") { temp = "false"; usedDups = ""; }
-                       dups = isTrue(temp);
+                       string temp = validParameter.validFile(parameters, "dups", false);      
+                       if (temp == "not found") { 
+                               if (namefile != "") {  temp = "true";                                   }
+                               else                            {  temp = "false"; usedDups = "";       }
+                       }
+                       dups = m->isTrue(temp);
                        
                        if ((fastafile == "") && (namefile == "") && (groupfile == "") && (alignfile == "") && (listfile == "") && (taxfile == ""))  { m->mothurOut("You must provide at least one of the following: fasta, name, group, taxonomy, alignreport or list."); m->mothurOutEndLine(); abort = true; }
                        
@@ -154,7 +158,7 @@ void RemoveSeqsCommand::help(){
                m->mothurOut("The remove.seqs command reads an .accnos file and at least one of the following file types: fasta, name, group, list, taxonomy or alignreport file.\n");
                m->mothurOut("It outputs a file containing the sequences NOT in the .accnos file.\n");
                m->mothurOut("The remove.seqs command parameters are accnos, fasta, name, group, list, taxonomy, alignreport and dups.  You must provide accnos and at least one of the file parameters.\n");
-               m->mothurOut("The dups parameter allows you to remove the entire line from a name file if you remove any name from the line. default=false. \n");
+               m->mothurOut("The dups parameter allows you to remove the entire line from a name file if you remove any name from the line. default=true. \n");
                m->mothurOut("The remove.seqs command should be in the following format: remove.seqs(accnos=yourAccnos, fasta=yourFasta).\n");
                m->mothurOut("Example remove.seqs(accnos=amazon.accnos, fasta=amazon.fasta).\n");
                m->mothurOut("Note: No spaces between parameter labels (i.e. fasta), '=' and parameters (i.e.yourFasta).\n\n");
@@ -206,13 +210,13 @@ int RemoveSeqsCommand::execute(){
 //**********************************************************************************************************************
 int RemoveSeqsCommand::readFasta(){
        try {
-               if (outputDir == "") {  outputDir += hasPath(fastafile);  }
-               string outputFileName = outputDir + getRootName(getSimpleName(fastafile)) + "pick" + getExtension(fastafile);
+               if (outputDir == "") {  outputDir += m->hasPath(fastafile);  }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "pick" + m->getExtension(fastafile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
                ifstream in;
-               openInputFile(fastafile, in);
+               m->openInputFile(fastafile, in);
                string name;
                
                bool wroteSomething = false;
@@ -231,7 +235,7 @@ int RemoveSeqsCommand::readFasta(){
                                        currSeq.printSequence(out);
                                }
                        }
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();     
                out.close();
@@ -250,13 +254,13 @@ int RemoveSeqsCommand::readFasta(){
 //**********************************************************************************************************************
 int RemoveSeqsCommand::readList(){
        try {
-               if (outputDir == "") {  outputDir += hasPath(listfile);  }
-               string outputFileName = outputDir + getRootName(getSimpleName(listfile)) + "pick" +  getExtension(listfile);
+               if (outputDir == "") {  outputDir += m->hasPath(listfile);  }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(listfile)) + "pick" +  m->getExtension(listfile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
                
                ifstream in;
-               openInputFile(listfile, in);
+               m->openInputFile(listfile, in);
                
                bool wroteSomething = false;
                
@@ -300,7 +304,7 @@ int RemoveSeqsCommand::readList(){
                                newList.print(out);
                        }
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();     
                out.close();
@@ -319,14 +323,14 @@ int RemoveSeqsCommand::readList(){
 //**********************************************************************************************************************
 int RemoveSeqsCommand::readName(){
        try {
-               if (outputDir == "") {  outputDir += hasPath(namefile);  }
-               string outputFileName = outputDir + getRootName(getSimpleName(namefile)) + "pick" + getExtension(namefile);
+               if (outputDir == "") {  outputDir += m->hasPath(namefile);  }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(namefile)) + "pick" + m->getExtension(namefile);
 
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
 
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                string name, firstCol, secondCol;
                
                bool wroteSomething = false;
@@ -343,7 +347,6 @@ int RemoveSeqsCommand::readName(){
                                name = secondCol.substr(0,secondCol.find_first_of(','));
                                secondCol = secondCol.substr(secondCol.find_first_of(',')+1, secondCol.length());
                                parsedNames.push_back(name);
-
                        }
                        
                        //get name after last ,
@@ -386,7 +389,7 @@ int RemoveSeqsCommand::readName(){
                                        }
                                }
                        }
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                out.close();
@@ -405,13 +408,13 @@ int RemoveSeqsCommand::readName(){
 //**********************************************************************************************************************
 int RemoveSeqsCommand::readGroup(){
        try {
-               if (outputDir == "") {  outputDir += hasPath(groupfile);  }
-               string outputFileName = outputDir + getRootName(getSimpleName(groupfile)) + "pick" + getExtension(groupfile);
+               if (outputDir == "") {  outputDir += m->hasPath(groupfile);  }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(groupfile)) + "pick" + m->getExtension(groupfile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
 
                ifstream in;
-               openInputFile(groupfile, in);
+               m->openInputFile(groupfile, in);
                string name, group;
                
                bool wroteSomething = false;
@@ -428,7 +431,7 @@ int RemoveSeqsCommand::readGroup(){
                                out << name << '\t' << group << endl;
                        }
                                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                out.close();
@@ -446,13 +449,13 @@ int RemoveSeqsCommand::readGroup(){
 //**********************************************************************************************************************
 int RemoveSeqsCommand::readTax(){
        try {
-               if (outputDir == "") {  outputDir += hasPath(taxfile);  }
-               string outputFileName = outputDir + getRootName(getSimpleName(taxfile)) + "pick" + getExtension(taxfile);
+               if (outputDir == "") {  outputDir += m->hasPath(taxfile);  }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(taxfile)) + "pick" + m->getExtension(taxfile);
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
 
                ifstream in;
-               openInputFile(taxfile, in);
+               m->openInputFile(taxfile, in);
                string name, tax;
                
                bool wroteSomething = false;
@@ -469,7 +472,7 @@ int RemoveSeqsCommand::readTax(){
                                out << name << '\t' << tax << endl;
                        }
                                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                out.close();
@@ -488,13 +491,13 @@ int RemoveSeqsCommand::readTax(){
 //alignreport file has a column header line then all other lines contain 16 columns.  we just want the first column since that contains the name
 int RemoveSeqsCommand::readAlign(){
        try {
-               if (outputDir == "") {  outputDir += hasPath(alignfile);  }
-               string outputFileName = outputDir + getRootName(getSimpleName(alignfile)) + "pick.align.report";
+               if (outputDir == "") {  outputDir += m->hasPath(alignfile);  }
+               string outputFileName = outputDir + m->getRootName(m->getSimpleName(alignfile)) + "pick.align.report";
                ofstream out;
-               openOutputFile(outputFileName, out);
+               m->openOutputFile(outputFileName, out);
 
                ifstream in;
-               openInputFile(alignfile, in);
+               m->openInputFile(alignfile, in);
                string name, junk;
                
                bool wroteSomething = false;
@@ -533,7 +536,7 @@ int RemoveSeqsCommand::readAlign(){
                                }
                        }
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
                out.close();
@@ -554,7 +557,7 @@ void RemoveSeqsCommand::readAccnos(){
        try {
                
                ifstream in;
-               openInputFile(accnosfile, in);
+               m->openInputFile(accnosfile, in);
                string name;
                
                while(!in.eof()){
@@ -562,7 +565,7 @@ void RemoveSeqsCommand::readAccnos(){
                                                
                        names.insert(name);
                        
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();             
 
index 114750e71e4c5cb127cf4b9407bd1841bb8aa622..296c95410df58f1aeabfbd5b3195b327a18fe170 100644 (file)
@@ -44,7 +44,7 @@ ReverseSeqsCommand::ReverseSeqsCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -58,7 +58,7 @@ ReverseSeqsCommand::ReverseSeqsCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fasta); //if user entered a file with a path then preserve it      
+                               outputDir += m->hasPath(fasta); //if user entered a file with a path then preserve it   
                        }
 
                }
@@ -96,16 +96,16 @@ int ReverseSeqsCommand::execute(){
                if (abort == true) { return 0; }
                
                ifstream inFASTA;
-               openInputFile(fasta, inFASTA);
+               m->openInputFile(fasta, inFASTA);
                
                ofstream outFASTA;
-               string reverseFile = outputDir + getRootName(getSimpleName(fasta)) + "rc" + getExtension(fasta);
-               openOutputFile(reverseFile, outFASTA);
+               string reverseFile = outputDir + m->getRootName(m->getSimpleName(fasta)) + "rc" + m->getExtension(fasta);
+               m->openOutputFile(reverseFile, outFASTA);
                
                while(!inFASTA.eof()){
                        if (m->control_pressed) {  inFASTA.close();  outFASTA.close(); remove(reverseFile.c_str()); return 0; }
                         
-                       Sequence currSeq(inFASTA);  gobble(inFASTA);
+                       Sequence currSeq(inFASTA);  m->gobble(inFASTA);
                        if (currSeq.getName() != "") {
                                currSeq.reverseComplement();
                                currSeq.printSequence(outFASTA);
index b02b751c343c21e7198ec3a1190dcadf90078ab2..d98a4cfc9f5bd27847f342434a7fda7ad817741a 100644 (file)
@@ -44,7 +44,7 @@ ScreenSeqsCommand::ScreenSeqsCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -52,7 +52,7 @@ ScreenSeqsCommand::ScreenSeqsCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -60,7 +60,7 @@ ScreenSeqsCommand::ScreenSeqsCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -68,7 +68,7 @@ ScreenSeqsCommand::ScreenSeqsCommand(string option)  {
                                it = parameters.find("alignreport");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["alignreport"] = inputDir + it->second;              }
                                }
@@ -94,7 +94,7 @@ ScreenSeqsCommand::ScreenSeqsCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
 
                        //check for optional parameter and set defaults
@@ -168,9 +168,8 @@ int ScreenSeqsCommand::execute(){
                
                if (abort == true) { return 0; }
                                
-               string goodSeqFile = outputDir + getRootName(getSimpleName(fastafile)) + "good" + getExtension(fastafile);
-               string badSeqFile =  outputDir + getRootName(getSimpleName(fastafile)) + "bad" + getExtension(fastafile);
-               string badAccnosFile =  outputDir + getRootName(getSimpleName(fastafile)) + "bad.accnos";
+               string goodSeqFile = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "good" + m->getExtension(fastafile);
+               string badAccnosFile =  outputDir + m->getRootName(m->getSimpleName(fastafile)) + "bad.accnos";
                
                int numFastaSeqs = 0;
                set<string> badSeqNames;
@@ -187,7 +186,6 @@ int ScreenSeqsCommand::execute(){
 
                        MPI_File inMPI;
                        MPI_File outMPIGood;
-                       MPI_File outMPIBad;
                        MPI_File outMPIBadAccnos;
                        
                        int outMode=MPI_MODE_CREATE|MPI_MODE_WRONLY; 
@@ -196,9 +194,6 @@ int ScreenSeqsCommand::execute(){
                        char outGoodFilename[1024];
                        strcpy(outGoodFilename, goodSeqFile.c_str());
 
-                       char outBadFilename[1024];
-                       strcpy(outBadFilename, badSeqFile.c_str());
-                       
                        char outBadAccnosFilename[1024];
                        strcpy(outBadAccnosFilename, badAccnosFile.c_str());
 
@@ -207,14 +202,13 @@ int ScreenSeqsCommand::execute(){
                        
                        MPI_File_open(MPI_COMM_WORLD, inFileName, inMode, MPI_INFO_NULL, &inMPI);  //comm, filename, mode, info, filepointer
                        MPI_File_open(MPI_COMM_WORLD, outGoodFilename, outMode, MPI_INFO_NULL, &outMPIGood);
-                       MPI_File_open(MPI_COMM_WORLD, outBadFilename, outMode, MPI_INFO_NULL, &outMPIBad);
                        MPI_File_open(MPI_COMM_WORLD, outBadAccnosFilename, outMode, MPI_INFO_NULL, &outMPIBadAccnos);
                        
-                       if (m->control_pressed) { MPI_File_close(&inMPI);  MPI_File_close(&outMPIGood);  MPI_File_close(&outMPIBad); MPI_File_close(&outMPIBadAccnos); return 0; }
+                       if (m->control_pressed) { MPI_File_close(&inMPI);  MPI_File_close(&outMPIGood); MPI_File_close(&outMPIBadAccnos); return 0; }
                        
                        if (pid == 0) { //you are the root process 
                                
-                               MPIPos = setFilePosFasta(fastafile, numFastaSeqs); //fills MPIPos, returns numSeqs
+                               MPIPos = m->setFilePosFasta(fastafile, numFastaSeqs); //fills MPIPos, returns numSeqs
                                
                                //send file positions to all processes
                                for(int i = 1; i < processors; i++) { 
@@ -228,9 +222,9 @@ int ScreenSeqsCommand::execute(){
                                if(pid == (processors - 1)){    numSeqsPerProcessor = numFastaSeqs - pid * numSeqsPerProcessor;         }
                                
                                //align your part
-                               driverMPI(startIndex, numSeqsPerProcessor, inMPI, outMPIGood, outMPIBad, outMPIBadAccnos, MPIPos, badSeqNames);
+                               driverMPI(startIndex, numSeqsPerProcessor, inMPI, outMPIGood, outMPIBadAccnos, MPIPos, badSeqNames);
 
-                               if (m->control_pressed) { MPI_File_close(&inMPI);  MPI_File_close(&outMPIGood);  MPI_File_close(&outMPIBadAccnos); MPI_File_close(&outMPIBad);  return 0; }
+                               if (m->control_pressed) { MPI_File_close(&inMPI);  MPI_File_close(&outMPIGood);  MPI_File_close(&outMPIBadAccnos);  return 0; }
 
                                for (int i = 1; i < processors; i++) {
                                
@@ -261,9 +255,9 @@ int ScreenSeqsCommand::execute(){
                                if(pid == (processors - 1)){    numSeqsPerProcessor = numFastaSeqs - pid * numSeqsPerProcessor;         }
                                
                                //align your part
-                               driverMPI(startIndex, numSeqsPerProcessor, inMPI, outMPIGood, outMPIBad, outMPIBadAccnos, MPIPos, badSeqNames);
+                               driverMPI(startIndex, numSeqsPerProcessor, inMPI, outMPIGood, outMPIBadAccnos, MPIPos, badSeqNames);
 
-                               if (m->control_pressed) { MPI_File_close(&inMPI);  MPI_File_close(&outMPIGood);  MPI_File_close(&outMPIBad); MPI_File_close(&outMPIBadAccnos); return 0; }
+                               if (m->control_pressed) { MPI_File_close(&inMPI);  MPI_File_close(&outMPIGood);  MPI_File_close(&outMPIBadAccnos); return 0; }
                                
                                //send bad list 
                                int badSize = badSeqNames.size();
@@ -285,12 +279,11 @@ int ScreenSeqsCommand::execute(){
                        //close files 
                        MPI_File_close(&inMPI);
                        MPI_File_close(&outMPIGood);
-                       MPI_File_close(&outMPIBad);
                        MPI_File_close(&outMPIBadAccnos);
                        MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
                                        
 #else
-                       vector<unsigned long int> positions = divideFile(fastafile, processors);
+                       vector<unsigned long int> positions = m->divideFile(fastafile, processors);
                                
                        for (int i = 0; i < (positions.size()-1); i++) {
                                lines.push_back(new linePair(positions[i], positions[(i+1)]));
@@ -298,51 +291,47 @@ int ScreenSeqsCommand::execute(){
                                                
        #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
                        if(processors == 1){
-                               numFastaSeqs = driver(lines[0], goodSeqFile, badSeqFile, badAccnosFile, fastafile, badSeqNames);
+                               numFastaSeqs = driver(lines[0], goodSeqFile, badAccnosFile, fastafile, badSeqNames);
                                
-                               if (m->control_pressed) { remove(goodSeqFile.c_str()); remove(badSeqFile.c_str()); return 0; }
+                               if (m->control_pressed) { remove(goodSeqFile.c_str()); return 0; }
                                
                        }else{
                                processIDS.resize(0);
                                
-                               numFastaSeqs = createProcesses(goodSeqFile, badSeqFile, badAccnosFile, fastafile, badSeqNames); 
+                               numFastaSeqs = createProcesses(goodSeqFile, badAccnosFile, fastafile, badSeqNames); 
                                
                                rename((goodSeqFile + toString(processIDS[0]) + ".temp").c_str(), goodSeqFile.c_str());
-                               rename((badSeqFile + toString(processIDS[0]) + ".temp").c_str(), badSeqFile.c_str());
                                rename((badAccnosFile + toString(processIDS[0]) + ".temp").c_str(), badAccnosFile.c_str());
                                
                                //append alignment and report files
                                for(int i=1;i<processors;i++){
-                                       appendFiles((goodSeqFile + toString(processIDS[i]) + ".temp"), goodSeqFile);
+                                       m->appendFiles((goodSeqFile + toString(processIDS[i]) + ".temp"), goodSeqFile);
                                        remove((goodSeqFile + toString(processIDS[i]) + ".temp").c_str());
-                                       
-                                       appendFiles((badSeqFile + toString(processIDS[i]) + ".temp"), badSeqFile);
-                                       remove((badSeqFile + toString(processIDS[i]) + ".temp").c_str());
-                                       
-                                       appendFiles((badAccnosFile + toString(processIDS[i]) + ".temp"), badAccnosFile);
+                       
+                                       m->appendFiles((badAccnosFile + toString(processIDS[i]) + ".temp"), badAccnosFile);
                                        remove((badAccnosFile + toString(processIDS[i]) + ".temp").c_str());
                                }
                                
-                               if (m->control_pressed) { remove(goodSeqFile.c_str()); remove(badSeqFile.c_str()); return 0; }
+                               if (m->control_pressed) { remove(goodSeqFile.c_str()); return 0; }
                                
                                //read badSeqs in because root process doesnt know what other "bad" seqs the children found
                                ifstream inBad;
-                               int ableToOpen = openInputFile(badAccnosFile, inBad, "no error");
+                               int ableToOpen = m->openInputFile(badAccnosFile, inBad, "no error");
                                
                                if (ableToOpen == 0) {
                                        badSeqNames.clear();
                                        string tempName;
                                        while (!inBad.eof()) {
-                                               inBad >> tempName; gobble(inBad);
+                                               inBad >> tempName; m->gobble(inBad);
                                                badSeqNames.insert(tempName);
                                        }
                                        inBad.close();
                                }
                        }
        #else
-                       numFastaSeqs = driver(lines[0], goodSeqFile, badSeqFile, badAccnosFile, fastafile, badSeqNames);
+                       numFastaSeqs = driver(lines[0], goodSeqFile, badAccnosFile, fastafile, badSeqNames);
                        
-                       if (m->control_pressed) { remove(goodSeqFile.c_str()); remove(badSeqFile.c_str()); return 0; }
+                       if (m->control_pressed) { remove(goodSeqFile.c_str()); return 0; }
                        
        #endif
 
@@ -376,24 +365,24 @@ int ScreenSeqsCommand::execute(){
                                badSeqNames.clear();
                                string tempName;
                                while (!iss.eof()) {
-                                       iss >> tempName; gobble(iss);
+                                       iss >> tempName; m->gobble(iss);
                                        badSeqNames.insert(tempName);
                                }
                #endif
                                                                                                                                                                        
                if(namefile != "" && groupfile != "")   {       
                        screenNameGroupFile(badSeqNames);       
-                       if (m->control_pressed) {  remove(goodSeqFile.c_str()); remove(badSeqFile.c_str()); return 0; }
+                       if (m->control_pressed) {  remove(goodSeqFile.c_str()); return 0; }
                }else if(namefile != "")        {       
                        screenNameGroupFile(badSeqNames);
-                       if (m->control_pressed) {  remove(goodSeqFile.c_str()); remove(badSeqFile.c_str()); return 0; } 
+                       if (m->control_pressed) {  remove(goodSeqFile.c_str());  return 0; }    
                }else if(groupfile != "")                               {       screenGroupFile(badSeqNames);           }       // this screens just the group
                
-               if (m->control_pressed) { remove(goodSeqFile.c_str()); remove(badSeqFile.c_str()); return 0; }
+               if (m->control_pressed) { remove(goodSeqFile.c_str());  return 0; }
 
                if(alignreport != "")                                   {       screenAlignReport(badSeqNames);         }
                
-               if (m->control_pressed) { remove(goodSeqFile.c_str()); remove(badSeqFile.c_str()); return 0; }
+               if (m->control_pressed) { remove(goodSeqFile.c_str());  return 0; }
                
                #ifdef USE_MPI
                        }
@@ -402,7 +391,6 @@ int ScreenSeqsCommand::execute(){
                m->mothurOutEndLine();
                m->mothurOut("Output File Names: "); m->mothurOutEndLine();
                m->mothurOut(goodSeqFile); m->mothurOutEndLine();       
-               m->mothurOut(badSeqFile); m->mothurOutEndLine();        
                m->mothurOut(badAccnosFile); m->mothurOutEndLine();     
                for (int i = 0; i < outputNames.size(); i++) { m->mothurOut(outputNames[i]); m->mothurOutEndLine(); }
                m->mothurOutEndLine();
@@ -424,28 +412,25 @@ int ScreenSeqsCommand::execute(){
 int ScreenSeqsCommand::screenNameGroupFile(set<string> badSeqNames){
        try {
                ifstream inputNames;
-               openInputFile(namefile, inputNames);
+               m->openInputFile(namefile, inputNames);
                set<string> badSeqGroups;
                string seqName, seqList, group;
                set<string>::iterator it;
 
-               string goodNameFile = outputDir + getRootName(getSimpleName(namefile)) + "good" + getExtension(namefile);
-               string badNameFile = outputDir + getRootName(getSimpleName(namefile)) + "bad" + getExtension(namefile);
-               
-               outputNames.push_back(goodNameFile);  outputNames.push_back(badNameFile);
+               string goodNameFile = outputDir + m->getRootName(m->getSimpleName(namefile)) + "good" + m->getExtension(namefile);
+               outputNames.push_back(goodNameFile); 
                
-               ofstream goodNameOut;   openOutputFile(goodNameFile, goodNameOut);
-               ofstream badNameOut;    openOutputFile(badNameFile, badNameOut);                
+               ofstream goodNameOut;   m->openOutputFile(goodNameFile, goodNameOut);
                
                while(!inputNames.eof()){
-                       if (m->control_pressed) { goodNameOut.close(); badNameOut.close(); inputNames.close(); remove(goodNameFile.c_str()); remove(badNameFile.c_str()); return 0; }
+                       if (m->control_pressed) { goodNameOut.close();  inputNames.close(); remove(goodNameFile.c_str());  return 0; }
 
                        inputNames >> seqName >> seqList;
                        it = badSeqNames.find(seqName);
                        
                        if(it != badSeqNames.end()){
                                badSeqNames.erase(it);
-                               badNameOut << seqName << '\t' << seqList << endl;
+                               
                                if(namefile != ""){
                                        int start = 0;
                                        for(int i=0;i<seqList.length();i++){
@@ -460,11 +445,10 @@ int ScreenSeqsCommand::screenNameGroupFile(set<string> badSeqNames){
                        else{
                                goodNameOut << seqName << '\t' << seqList << endl;
                        }
-                       gobble(inputNames);
+                       m->gobble(inputNames);
                }
                inputNames.close();
                goodNameOut.close();
-               badNameOut.close();
                
                //we were unable to remove some of the bad sequences
                if (badSeqNames.size() != 0) {
@@ -477,18 +461,15 @@ int ScreenSeqsCommand::screenNameGroupFile(set<string> badSeqNames){
                if(groupfile != ""){
                        
                        ifstream inputGroups;
-                       openInputFile(groupfile, inputGroups);
+                       m->openInputFile(groupfile, inputGroups);
 
-                       string goodGroupFile = outputDir + getRootName(getSimpleName(groupfile)) + "good" + getExtension(groupfile);
-                       string badGroupFile = outputDir + getRootName(getSimpleName(groupfile)) + "bad" + getExtension(groupfile);
-                       
-                       outputNames.push_back(goodGroupFile);  outputNames.push_back(badGroupFile);
+                       string goodGroupFile = outputDir + m->getRootName(m->getSimpleName(groupfile)) + "good" + m->getExtension(groupfile);
+                       outputNames.push_back(goodGroupFile);  
                        
-                       ofstream goodGroupOut;  openOutputFile(goodGroupFile, goodGroupOut);
-                       ofstream badGroupOut;   openOutputFile(badGroupFile, badGroupOut);              
+                       ofstream goodGroupOut;  m->openOutputFile(goodGroupFile, goodGroupOut);
                        
                        while(!inputGroups.eof()){
-                               if (m->control_pressed) { goodGroupOut.close(); badGroupOut.close(); inputGroups.close(); remove(goodNameFile.c_str()); remove(badNameFile.c_str()); remove(goodGroupFile.c_str()); remove(badGroupFile.c_str()); return 0; }
+                               if (m->control_pressed) { goodGroupOut.close(); inputGroups.close(); remove(goodNameFile.c_str());  remove(goodGroupFile.c_str()); return 0; }
 
                                inputGroups >> seqName >> group;
 
@@ -496,21 +477,19 @@ int ScreenSeqsCommand::screenNameGroupFile(set<string> badSeqNames){
                                
                                if(it != badSeqGroups.end()){
                                        badSeqGroups.erase(it);
-                                       badGroupOut << seqName << '\t' << group << endl;
                                }
                                else{
                                        goodGroupOut << seqName << '\t' << group << endl;
                                }
-                               gobble(inputGroups);
+                               m->gobble(inputGroups);
                        }
                        inputGroups.close();
                        goodGroupOut.close();
-                       badGroupOut.close();
                        
                        //we were unable to remove some of the bad sequences
                        if (badSeqGroups.size() != 0) {
                                for (it = badSeqGroups.begin(); it != badSeqGroups.end(); it++) {  
-                                       m->mothurOut("Your namefile does not include the sequence " + *it + " please correct."); 
+                                       m->mothurOut("Your groupfile does not include the sequence " + *it + " please correct."); 
                                        m->mothurOutEndLine();
                                }
                        }
@@ -530,35 +509,30 @@ int ScreenSeqsCommand::screenNameGroupFile(set<string> badSeqNames){
 int ScreenSeqsCommand::screenGroupFile(set<string> badSeqNames){
        try {
                ifstream inputGroups;
-               openInputFile(groupfile, inputGroups);
+               m->openInputFile(groupfile, inputGroups);
                string seqName, group;
                set<string>::iterator it;
                
-               string goodGroupFile = outputDir + getRootName(getSimpleName(groupfile)) + "good" + getExtension(groupfile);
-               string badGroupFile = outputDir + getRootName(getSimpleName(groupfile)) + "bad" + getExtension(groupfile);
-               
-               outputNames.push_back(goodGroupFile);  outputNames.push_back(badGroupFile);
-               
-               ofstream goodGroupOut;  openOutputFile(goodGroupFile, goodGroupOut);
-               ofstream badGroupOut;   openOutputFile(badGroupFile, badGroupOut);              
+               string goodGroupFile = outputDir + m->getRootName(m->getSimpleName(groupfile)) + "good" + m->getExtension(groupfile);
+               outputNames.push_back(goodGroupFile); 
+               ofstream goodGroupOut;  m->openOutputFile(goodGroupFile, goodGroupOut);
                
                while(!inputGroups.eof()){
-                       if (m->control_pressed) { goodGroupOut.close(); badGroupOut.close(); inputGroups.close(); remove(goodGroupFile.c_str()); remove(badGroupFile.c_str()); return 0; }
+                       if (m->control_pressed) { goodGroupOut.close(); inputGroups.close(); remove(goodGroupFile.c_str()); return 0; }
 
                        inputGroups >> seqName >> group;
                        it = badSeqNames.find(seqName);
                        
                        if(it != badSeqNames.end()){
                                badSeqNames.erase(it);
-                               badGroupOut << seqName << '\t' << group << endl;
                        }
                        else{
                                goodGroupOut << seqName << '\t' << group << endl;
                        }
-                       gobble(inputGroups);
+                       m->gobble(inputGroups);
                }
                
-               if (m->control_pressed) { goodGroupOut.close(); badGroupOut.close(); inputGroups.close(); remove(goodGroupFile.c_str()); remove(badGroupFile.c_str()); return 0; }
+               if (m->control_pressed) { goodGroupOut.close();  inputGroups.close(); remove(goodGroupFile.c_str());  return 0; }
 
                //we were unable to remove some of the bad sequences
                if (badSeqNames.size() != 0) {
@@ -570,10 +544,8 @@ int ScreenSeqsCommand::screenGroupFile(set<string> badSeqNames){
                
                inputGroups.close();
                goodGroupOut.close();
-               badGroupOut.close();
                
-               if (m->control_pressed) { remove(goodGroupFile.c_str()); remove(badGroupFile.c_str());  }
-
+               if (m->control_pressed) { remove(goodGroupFile.c_str());   }
                
                return 0;
        
@@ -589,27 +561,22 @@ int ScreenSeqsCommand::screenGroupFile(set<string> badSeqNames){
 int ScreenSeqsCommand::screenAlignReport(set<string> badSeqNames){
        try {
                ifstream inputAlignReport;
-               openInputFile(alignreport, inputAlignReport);
+               m->openInputFile(alignreport, inputAlignReport);
                string seqName, group;
                set<string>::iterator it;
                
-               string goodAlignReportFile = outputDir + getRootName(getSimpleName(alignreport)) + "good" + getExtension(alignreport);
-               string badAlignReportFile = outputDir + getRootName(getSimpleName(alignreport)) + "bad" + getExtension(alignreport);
-               
-               outputNames.push_back(goodAlignReportFile);  outputNames.push_back(badAlignReportFile);
-               
-               ofstream goodAlignReportOut;    openOutputFile(goodAlignReportFile, goodAlignReportOut);
-               ofstream badAlignReportOut;             openOutputFile(badAlignReportFile, badAlignReportOut);          
+               string goodAlignReportFile = outputDir + m->getRootName(m->getSimpleName(alignreport)) + "good" + m->getExtension(alignreport);
+               outputNames.push_back(goodAlignReportFile);  
+               ofstream goodAlignReportOut;    m->openOutputFile(goodAlignReportFile, goodAlignReportOut);
 
                while (!inputAlignReport.eof()) {               //      need to copy header
                        char c = inputAlignReport.get();
                        goodAlignReportOut << c;
-                       badAlignReportOut << c;
                        if (c == 10 || c == 13){        break;  }       
                }
 
                while(!inputAlignReport.eof()){
-                       if (m->control_pressed) { goodAlignReportOut.close(); badAlignReportOut.close(); inputAlignReport.close(); remove(goodAlignReportFile.c_str()); remove(badAlignReportFile.c_str()); return 0; }
+                       if (m->control_pressed) { goodAlignReportOut.close(); inputAlignReport.close(); remove(goodAlignReportFile.c_str()); return 0; }
 
                        inputAlignReport >> seqName;
                        it = badSeqNames.find(seqName);
@@ -622,29 +589,27 @@ int ScreenSeqsCommand::screenAlignReport(set<string> badSeqNames){
                        
                        if(it != badSeqNames.end()){
                                badSeqNames.erase(it);
-                               badAlignReportOut << seqName << '\t' << line;
                        }
                        else{
                                goodAlignReportOut << seqName << '\t' << line;
                        }
-                       gobble(inputAlignReport);
+                       m->gobble(inputAlignReport);
                }
                
-               if (m->control_pressed) { goodAlignReportOut.close(); badAlignReportOut.close(); inputAlignReport.close(); remove(goodAlignReportFile.c_str()); remove(badAlignReportFile.c_str()); return 0; }
+               if (m->control_pressed) { goodAlignReportOut.close();  inputAlignReport.close(); remove(goodAlignReportFile.c_str());  return 0; }
 
                //we were unable to remove some of the bad sequences
                if (badSeqNames.size() != 0) {
                        for (it = badSeqNames.begin(); it != badSeqNames.end(); it++) {  
-                               m->mothurOut("Your file does not include the sequence " + *it + " please correct."); 
+                               m->mothurOut("Your alignreport file does not include the sequence " + *it + " please correct."); 
                                m->mothurOutEndLine();
                        }
                }
 
                inputAlignReport.close();
                goodAlignReportOut.close();
-               badAlignReportOut.close();
                                
-               if (m->control_pressed) {  remove(goodAlignReportFile.c_str()); remove(badAlignReportFile.c_str()); return 0; }
+               if (m->control_pressed) {  remove(goodAlignReportFile.c_str());  return 0; }
                
                return 0;
        
@@ -657,19 +622,16 @@ int ScreenSeqsCommand::screenAlignReport(set<string> badSeqNames){
 }
 //**********************************************************************************************************************
 
-int ScreenSeqsCommand::driver(linePair* filePos, string goodFName, string badFName, string badAccnosFName, string filename, set<string>& badSeqNames){
+int ScreenSeqsCommand::driver(linePair* filePos, string goodFName, string badAccnosFName, string filename, set<string>& badSeqNames){
        try {
                ofstream goodFile;
-               openOutputFile(goodFName, goodFile);
-               
-               ofstream badFile;
-               openOutputFile(badFName, badFile);
+               m->openOutputFile(goodFName, goodFile);
                
                ofstream badAccnosFile;
-               openOutputFile(badAccnosFName, badAccnosFile);
+               m->openOutputFile(badAccnosFName, badAccnosFile);
                
                ifstream inFASTA;
-               openInputFile(filename, inFASTA);
+               m->openInputFile(filename, inFASTA);
 
                inFASTA.seekg(filePos->start);
 
@@ -680,7 +642,7 @@ int ScreenSeqsCommand::driver(linePair* filePos, string goodFName, string badFNa
                
                        if (m->control_pressed) {  return 0; }
                        
-                       Sequence currSeq(inFASTA); gobble(inFASTA);
+                       Sequence currSeq(inFASTA); m->gobble(inFASTA);
                        if (currSeq.getName() != "") {
                                bool goodSeq = 1;               //      innocent until proven guilty
                                if(goodSeq == 1 && startPos != -1 && startPos < currSeq.getStartPos())                  {       goodSeq = 0;    }
@@ -694,7 +656,6 @@ int ScreenSeqsCommand::driver(linePair* filePos, string goodFName, string badFNa
                                        currSeq.printSequence(goodFile);        
                                }
                                else{
-                                       currSeq.printSequence(badFile); 
                                        badAccnosFile << currSeq.getName() << endl;
                                        badSeqNames.insert(currSeq.getName());
                                }
@@ -713,7 +674,6 @@ int ScreenSeqsCommand::driver(linePair* filePos, string goodFName, string badFNa
                        
                goodFile.close();
                inFASTA.close();
-               badFile.close();
                badAccnosFile.close();
                
                return count;
@@ -725,11 +685,10 @@ int ScreenSeqsCommand::driver(linePair* filePos, string goodFName, string badFNa
 }
 //**********************************************************************************************************************
 #ifdef USE_MPI
-int ScreenSeqsCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_File& goodFile, MPI_File& badFile, MPI_File& badAccnosFile, vector<unsigned long int>& MPIPos, set<string>& badSeqNames){
+int ScreenSeqsCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_File& goodFile, MPI_File& badAccnosFile, vector<unsigned long int>& MPIPos, set<string>& badSeqNames){
        try {
                string outputString = "";
                MPI_Status statusGood; 
-               MPI_Status statusBad; 
                MPI_Status statusBadAccnos; 
                MPI_Status status; 
                int pid;
@@ -775,15 +734,6 @@ int ScreenSeqsCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_File&
                                        delete buf2;
                                }
                                else{
-                                       outputString =  ">" + currSeq.getName() + "\n" + currSeq.getAligned() + "\n";
-                               
-                                       //print bad seq to fasta
-                                       length = outputString.length();
-                                       char* buf2 = new char[length];
-                                       memcpy(buf2, outputString.c_str(), length);
-                                       
-                                       MPI_File_write_shared(badFile, buf2, length, MPI_CHAR, &statusBad);
-                                       delete buf2;
 
                                        badSeqNames.insert(currSeq.getName());
                                        
@@ -810,7 +760,7 @@ int ScreenSeqsCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_File&
 #endif
 /**************************************************************************************************/
 
-int ScreenSeqsCommand::createProcesses(string goodFileName, string badFileName, string badAccnos, string filename, set<string>& badSeqNames) {
+int ScreenSeqsCommand::createProcesses(string goodFileName, string badAccnos, string filename, set<string>& badSeqNames) {
        try {
 #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
                int process = 0;
@@ -824,12 +774,12 @@ int ScreenSeqsCommand::createProcesses(string goodFileName, string badFileName,
                                processIDS.push_back(pid);  //create map from line number to pid so you can append files in correct order later
                                process++;
                        }else if (pid == 0){
-                               num = driver(lines[process], goodFileName + toString(getpid()) + ".temp", badFileName + toString(getpid()) + ".temp", badAccnos + toString(getpid()) + ".temp", filename, badSeqNames);
+                               num = driver(lines[process], goodFileName + toString(getpid()) + ".temp", badAccnos + toString(getpid()) + ".temp", filename, badSeqNames);
                                
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = filename + toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                out << num << endl;
                                out.close();
                                
@@ -846,7 +796,7 @@ int ScreenSeqsCommand::createProcesses(string goodFileName, string badFileName,
                for (int i = 0; i < processIDS.size(); i++) {
                        ifstream in;
                        string tempFile =  filename + toString(processIDS[i]) + ".num.temp";
-                       openInputFile(tempFile, in);
+                       m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
                        in.close(); remove(tempFile.c_str());
                }
index 8f62ae48af466148c56b2b7b53aef7240cb95761..2c31ba2245b523b7f18c0a3559ee9cd6f85890df 100644 (file)
@@ -35,11 +35,11 @@ private:
        int screenGroupFile(set<string>);
        int screenAlignReport(set<string>);
        
-       int driver(linePair*, string, string, string, string, set<string>&);
-       int createProcesses(string, string, string, string, set<string>&);
+       int driver(linePair*, string, string, string, set<string>&);
+       int createProcesses(string, string, string, set<string>&);
        
        #ifdef USE_MPI
-       int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long int>&, set<string>&);
+       int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long int>&, set<string>&);
        #endif
 
        bool abort;
index dc40611711062150b7046e1be665a34c87d87818..c08ee6ab2d512b56c6d39fa2a1290ab12da22bde 100644 (file)
@@ -44,7 +44,7 @@ AlignCheckCommand::AlignCheckCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -52,7 +52,7 @@ AlignCheckCommand::AlignCheckCommand(string option)  {
                                it = parameters.find("map");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["map"] = inputDir + it->second;              }
                                }
@@ -70,7 +70,7 @@ AlignCheckCommand::AlignCheckCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
 
                }
@@ -109,11 +109,11 @@ int AlignCheckCommand::execute(){
                readMap();
                
                ifstream in;
-               openInputFile(fastafile, in);
+               m->openInputFile(fastafile, in);
                
                ofstream out;
-               string outfile = outputDir + getRootName(getSimpleName(fastafile)) + "align.check";
-               openOutputFile(outfile, out);
+               string outfile = outputDir + m->getRootName(m->getSimpleName(fastafile)) + "align.check";
+               m->openOutputFile(outfile, out);
                
                out << "name" << '\t' << "pound" << '\t' << "dash" << '\t' << "plus" << '\t' << "equal" << '\t';
                out << "loop" << '\t' << "tilde" << '\t' << "total" << endl;
@@ -122,7 +122,7 @@ int AlignCheckCommand::execute(){
                while(!in.eof()){
                        if (m->control_pressed) { in.close(); out.close(); remove(outfile.c_str()); return 0; }
                        
-                       Sequence seq(in);  gobble(in);
+                       Sequence seq(in);  m->gobble(in);
                        if (seq.getName() != "") {
                                statData data = getStats(seq.getAligned());
                                
@@ -158,13 +158,13 @@ void AlignCheckCommand::readMap(){
                structMap.resize(1, 0);
                ifstream in;
                
-               openInputFile(mapfile, in);
+               m->openInputFile(mapfile, in);
                
                while(!in.eof()){
                        int position;
                        in >> position;
                        structMap.push_back(position);  
-                       gobble(in);
+                       m->gobble(in);
                }
                in.close();
 
index e647bf2430c629af70613b79abcaafc78ab325fa..8489bfefc841f6dd34fea17ef15b416e08c4c6c8 100644 (file)
@@ -46,7 +46,7 @@ SensSpecCommand::SensSpecCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -54,7 +54,7 @@ SensSpecCommand::SensSpecCommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -62,7 +62,7 @@ SensSpecCommand::SensSpecCommand(string option)  {
                                it = parameters.find("column");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["column"] = inputDir + it->second;           }
                                }
@@ -70,7 +70,7 @@ SensSpecCommand::SensSpecCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -94,15 +94,15 @@ SensSpecCommand::SensSpecCommand(string option)  {
                        outputDir = validParameter.validFile(parameters, "outputdir", false);
                        if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(listFile); //if user entered a file with a path then preserve it   
+                               outputDir += m->hasPath(listFile); //if user entered a file with a path then preserve it        
                        }
 
                        //check for optional parameter and set defaults
                        // ...at some point should added some additional type checking...
                        temp = validParameter.validFile(parameters, "hard", false);
                        if (temp == "not found"){       hard = 0;       }
-                       else if(!isTrue(temp))  {       hard = 0;       }
-                       else if(isTrue(temp))   {       hard = 1;       }
+                       else if(!m->isTrue(temp))       {       hard = 0;       }
+                       else if(m->isTrue(temp))        {       hard = 1;       }
                        
 //                     temp = validParameter.validFile(parameters, "name", true);
 //                     if (temp == "not found")        {       nameFile = "";          }
@@ -178,7 +178,7 @@ void SensSpecCommand::processPhylip(){
                //probably need some checking to confirm that the names in the distance matrix are the same as those in the list file
                
                ifstream inputListFile;
-               openInputFile(listFile, inputListFile);
+               m->openInputFile(listFile, inputListFile);
                
                string origCutoff = "";
                bool getCutoff = 0;
@@ -210,13 +210,13 @@ void SensSpecCommand::processPhylip(){
                                }
                                seqMap[seqName] = i;
                        }
-                       gobble(inputListFile);
+                       m->gobble(inputListFile);
                
                        int lNumSeqs = seqMap.size();
                        int pNumSeqs = 0;
 
                        ifstream phylipFile;
-                       openInputFile(distFile, phylipFile);
+                       m->openInputFile(distFile, phylipFile);
                        phylipFile >> pNumSeqs;
                        if(pNumSeqs != lNumSeqs){       cout << "numSeq mismatch!" << endl;     }
                        
@@ -278,7 +278,7 @@ void SensSpecCommand::processPhylip(){
 void SensSpecCommand::processColumn(){
        try{            
                ifstream inputListFile;
-               openInputFile(listFile, inputListFile);
+               m->openInputFile(listFile, inputListFile);
                
                string origCutoff = "";
                bool getCutoff = 0;
@@ -326,12 +326,12 @@ void SensSpecCommand::processColumn(){
                                        }
                                }
                        }
-                       gobble(inputListFile);
+                       m->gobble(inputListFile);
                        
                        int numDists = (numSeqs * (numSeqs-1) / 2);
 
                        ifstream columnFile;
-                       openInputFile(distFile, columnFile);
+                       m->openInputFile(distFile, columnFile);
                        string seqNameA, seqNameB, seqPairString;
                        double distance;
                        
@@ -377,7 +377,7 @@ void SensSpecCommand::processColumn(){
                                        seqPairSet.erase(it);   
                                }
                                
-                               gobble(columnFile);
+                               m->gobble(columnFile);
                        }
                        falsePositives += seqPairSet.size();
                        
@@ -395,7 +395,7 @@ void SensSpecCommand::processColumn(){
 void SensSpecCommand::setUpOutput(){
        try{            
                ofstream sensSpecFile;
-               openOutputFile(sensSpecFileName, sensSpecFile);
+               m->openOutputFile(sensSpecFileName, sensSpecFile);
                
                sensSpecFile << "label\tcutoff\ttp\ttn\tfp\tfn\tsensitivity\tspecificity\tppv\tnpv\tfdr\taccuracy\tmcc\tf1score\n";
 
@@ -440,7 +440,7 @@ void SensSpecCommand::outputStatistics(string label, string cutoff){
                if(nPrime == 0)         {       negativePredictiveValue = 0;    matthewsCorrCoef = 0;                                                   }
                
                ofstream sensSpecFile;
-               openOutputFileAppend(sensSpecFileName, sensSpecFile);
+               m->openOutputFileAppend(sensSpecFileName, sensSpecFile);
                
                sensSpecFile << label << '\t' << cutoff << '\t';
                sensSpecFile << truePositives << '\t' << trueNegatives << '\t' << falsePositives << '\t' << falseNegatives << '\t';
index 82af49ed27f5e6dffbe52e50d413439c3983c270..f1b9cd8103a2d5f9c8836f657411359b0845785c 100644 (file)
@@ -48,7 +48,7 @@ SeqErrorCommand::SeqErrorCommand(string option)  {
                                it = parameters.find("query");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["query"] = inputDir + it->second;            }
                                }
@@ -56,7 +56,7 @@ SeqErrorCommand::SeqErrorCommand(string option)  {
                                it = parameters.find("reference");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["reference"] = inputDir + it->second;                }
                                }
@@ -64,7 +64,7 @@ SeqErrorCommand::SeqErrorCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -87,7 +87,7 @@ SeqErrorCommand::SeqErrorCommand(string option)  {
                        outputDir = validParameter.validFile(parameters, "outputdir", false);
                        if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(queryFileName); //if user entered a file with a path then preserve it      
+                               outputDir += m->hasPath(queryFileName); //if user entered a file with a path then preserve it   
                        }
                        
                        //check for optional parameter and set defaults
@@ -96,7 +96,7 @@ SeqErrorCommand::SeqErrorCommand(string option)  {
                        convert(temp, threshold);  
                                                
                        errorFileName = queryFileName.substr(0,queryFileName.find_last_of('.')) + ".errors";
-                       openOutputFile(errorFileName, errorFile);
+                       m->openOutputFile(errorFileName, errorFile);
                        printErrorHeader();
                }
        }
@@ -140,7 +140,7 @@ int SeqErrorCommand::execute(){
                if(namesFileName != ""){        weights = getWeights(); }
                
                ifstream queryFile;
-               openInputFile(queryFileName, queryFile);
+               m->openInputFile(queryFileName, queryFile);
                                
                int totalBases = 0;
                int totalMatches = 0;
@@ -194,7 +194,7 @@ int SeqErrorCommand::execute(){
                
                string errorCountFileName = queryFileName.substr(0,queryFileName.find_last_of('.')) + ".count";
                ofstream errorCountFile;
-               openOutputFile(errorCountFileName, errorCountFile);
+               m->openOutputFile(errorCountFileName, errorCountFile);
                
                m->mothurOut("Overall error rate:\t" + toString((double)(totalBases - totalMatches) / (double)totalBases) + "\n\n");
                m->mothurOut("Errors\tSequences\n");
@@ -220,7 +220,7 @@ void SeqErrorCommand::getReferences(){
        try {
                
                ifstream referenceFile;
-               openInputFile(referenceFileName, referenceFile);
+               m->openInputFile(referenceFileName, referenceFile);
                
                while(referenceFile){
                        Sequence currentSeq(referenceFile);
@@ -231,7 +231,7 @@ void SeqErrorCommand::getReferences(){
                                currentSeq.removeAmbigBases();
                        }
                        referenceSeqs.push_back(currentSeq);
-                       gobble(referenceFile);
+                       m->gobble(referenceFile);
                }
                numRefs = referenceSeqs.size();
                
@@ -335,7 +335,7 @@ Compare SeqErrorCommand::getErrors(Sequence query, Sequence reference){
 
 map<string, int> SeqErrorCommand::getWeights(){
        ifstream nameFile;
-       openInputFile(namesFileName, nameFile);
+       m->openInputFile(namesFileName, nameFile);
        
        string seqName;
        string redundantSeqs;
@@ -343,8 +343,8 @@ map<string, int> SeqErrorCommand::getWeights(){
        
        while(nameFile){
                nameFile >> seqName >> redundantSeqs;
-               nameCountMap[seqName] = getNumNames(redundantSeqs); 
-               gobble(nameFile);
+               nameCountMap[seqName] = m->getNumNames(redundantSeqs); 
+               m->gobble(nameFile);
        }
        return nameCountMap;
 }
index 4077619b4a515495cc00489b3b403d74180feba4..5dbcdec9cb90f2082912017064f876fd6210e464 100644 (file)
@@ -43,7 +43,7 @@ SeqSummaryCommand::SeqSummaryCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -57,7 +57,7 @@ SeqSummaryCommand::SeqSummaryCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastafile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastafile); //if user entered a file with a path then preserve it       
                        }
                        
                        string temp = validParameter.validFile(parameters, "processors", false);        if (temp == "not found"){       temp = "1";                             }
@@ -98,7 +98,7 @@ int SeqSummaryCommand::execute(){
                
                if (abort == true) { return 0; }
                
-               string summaryFile = outputDir + getSimpleName(fastafile) + ".summary";
+               string summaryFile = outputDir + m->getSimpleName(fastafile) + ".summary";
                                
                int numSeqs = 0;
                
@@ -143,7 +143,7 @@ int SeqSummaryCommand::execute(){
                                                MPI_File_write_shared(outMPI, buf2, length, MPI_CHAR, &statusOut);
                                                delete buf2;
                                                
-                                               MPIPos = setFilePosFasta(fastafile, numSeqs); //fills MPIPos, returns numSeqs
+                                               MPIPos = m->setFilePosFasta(fastafile, numSeqs); //fills MPIPos, returns numSeqs
                                        
                                                for(int i = 1; i < processors; i++) { 
                                                        MPI_Send(&numSeqs, 1, MPI_INT, i, tag, MPI_COMM_WORLD);
@@ -224,7 +224,7 @@ int SeqSummaryCommand::execute(){
                                
                                MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
 #else
-                       vector<unsigned long int> positions = divideFile(fastafile, processors);
+                       vector<unsigned long int> positions = m->divideFile(fastafile, processors);
                                
                        for (int i = 0; i < (positions.size()-1); i++) {
                                lines.push_back(new linePair(positions[i], positions[(i+1)]));
@@ -239,7 +239,7 @@ int SeqSummaryCommand::execute(){
                                        rename((summaryFile + toString(processIDS[0]) + ".temp").c_str(), summaryFile.c_str());
                                        //append files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((summaryFile + toString(processIDS[i]) + ".temp"), summaryFile);
+                                               m->appendFiles((summaryFile + toString(processIDS[i]) + ".temp"), summaryFile);
                                                remove((summaryFile + toString(processIDS[i]) + ".temp").c_str());
                                        }
                                }
@@ -308,7 +308,7 @@ int SeqSummaryCommand::driverCreateSummary(vector<int>& startPosition, vector<in
        try {
                
                ofstream outSummary;
-               openOutputFile(sumFile, outSummary);
+               m->openOutputFile(sumFile, outSummary);
                
                //print header if you are process 0
                if (filePos->start == 0) {
@@ -316,7 +316,7 @@ int SeqSummaryCommand::driverCreateSummary(vector<int>& startPosition, vector<in
                }
                                
                ifstream in;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                                
                in.seekg(filePos->start);
 
@@ -327,7 +327,7 @@ int SeqSummaryCommand::driverCreateSummary(vector<int>& startPosition, vector<in
                                
                        if (m->control_pressed) { in.close(); outSummary.close(); return 1; }
                                        
-                       Sequence current(in); gobble(in);
+                       Sequence current(in); m->gobble(in);
        
                        if (current.getName() != "") {
                                startPosition.push_back(current.getStartPos());
@@ -437,7 +437,7 @@ int SeqSummaryCommand::createProcessesCreateSummary(vector<int>& startPosition,
                                //pass numSeqs to parent
                                ofstream out;
                                string tempFile = fastafile + toString(getpid()) + ".num.temp";
-                               openOutputFile(tempFile, out);
+                               m->openOutputFile(tempFile, out);
                                
                                out << num << endl;
                                for (int k = 0; k < startPosition.size(); k++)          {               out << startPosition[k] << '\t'; }  out << endl;
@@ -462,15 +462,15 @@ int SeqSummaryCommand::createProcessesCreateSummary(vector<int>& startPosition,
                for (int i = 0; i < processIDS.size(); i++) {
                        string tempFilename = fastafile + toString(processIDS[i]) + ".num.temp";
                        ifstream in;
-                       openInputFile(tempFilename, in);
+                       m->openInputFile(tempFilename, in);
                        
                        int temp, tempNum;
-                       in >> tempNum; gobble(in); num += tempNum;
-                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; startPosition.push_back(temp);              }               gobble(in);
-                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; endPosition.push_back(temp);                }               gobble(in);
-                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; seqLength.push_back(temp);                  }               gobble(in);
-                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; ambigBases.push_back(temp);                 }               gobble(in);
-                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; longHomoPolymer.push_back(temp);    }               gobble(in);
+                       in >> tempNum; m->gobble(in); num += tempNum;
+                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; startPosition.push_back(temp);              }               m->gobble(in);
+                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; endPosition.push_back(temp);                }               m->gobble(in);
+                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; seqLength.push_back(temp);                  }               m->gobble(in);
+                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; ambigBases.push_back(temp);                 }               m->gobble(in);
+                       for (int k = 0; k < tempNum; k++)                       {               in >> temp; longHomoPolymer.push_back(temp);    }               m->gobble(in);
                                
                        in.close();
                        remove(tempFilename.c_str());
index 38e9b6230838424dd136562111f25967f6822099..04f97a8c2e22e0ccef1f8322ec23be45615b6380 100644 (file)
@@ -253,7 +253,7 @@ string Sequence::getCommentString(ifstream& fastaFile) {
                while(fastaFile){
                        letter=fastaFile.get();
                        if((letter == '\r') || (letter == '\n')){  
-                               gobble(fastaFile);  //in case its a \r\n situation
+                               m->gobble(fastaFile);  //in case its a \r\n situation
                                break;
                        }
                }
@@ -302,7 +302,7 @@ string Sequence::getCommentString(istringstream& fastaFile) {
                while(fastaFile){
                        letter=fastaFile.get();
                        if((letter == '\r') || (letter == '\n')){  
-                               gobble(fastaFile);  //in case its a \r\n situation
+                               m->gobble(fastaFile);  //in case its a \r\n situation
                                break;
                        }
                }
index 9ddb40f44a7e9ded9ba12a625e647c5abd3bed43..585b3b3d8347272cb7b47afc9a923fb0af28eaa9 100644 (file)
@@ -39,7 +39,7 @@ SequenceDB::SequenceDB(ifstream& filehandle) {
                        if (newSequence.getName() != "") {   data.push_back(newSequence);  }
                        
                        //takes care of white space
-                       gobble(filehandle);
+                       m->gobble(filehandle);
                }
 
                filehandle.close();
index 043c0acc8ec524c1b510da28c36c149d300f215a..a9ae730fba554945fb737c08b0f4cc739af5bec8 100644 (file)
@@ -106,7 +106,7 @@ int SetDirectoryCommand::execute(){
                        #endif
                        
                        //test to make sure directory exists
-                       output = getFullPathName(output);
+                       output = m->getFullPathName(output);
                        string outTemp = output + "temp";
                        ofstream out;
                        out.open(outTemp.c_str(), ios::trunc);
@@ -139,7 +139,7 @@ int SetDirectoryCommand::execute(){
                        #endif
                        
                        //test to make sure directory exists
-                       input = getFullPathName(input);
+                       input = m->getFullPathName(input);
                        string inTemp = input + "temp";
                        ofstream in;
                        in.open(inTemp.c_str(), ios::trunc);
index 593664e3569d0ef8f9faeb31df9379ab2cafed41..19f3ed129ab85b9f66dbea06c56637ea2f8daa42 100644 (file)
@@ -36,7 +36,7 @@ SetLogFileCommand::SetLogFileCommand(string option)  {
                        if (name == "not found") {  m->mothurOut("name is a required parameter for the set.logfile command."); abort = true; } 
                        
                        string temp = validParameter.validFile(parameters, "append", false);            if (temp == "not found") {  temp = "F";  }
-                       append = isTrue(temp);
+                       append = m->isTrue(temp);
                }
        }
        catch(exception& e) {
index 4e53f69cb3e7dd51c3d4b30c10a09d76339b6f2c..a691a405ddb31fb022ebf37c98b40deb8e54c6a5 100644 (file)
@@ -43,25 +43,25 @@ SffInfoCommand::SffInfoCommand(string option)  {
                        sffFilename = validParameter.validFile(parameters, "sff", false);
                        if (sffFilename == "not found") { m->mothurOut("sff is a required parameter for the sffinfo command."); m->mothurOutEndLine(); abort = true;  }
                        else { 
-                               splitAtDash(sffFilename, filenames);
+                               m->splitAtDash(sffFilename, filenames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < filenames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(filenames[i]);
+                                               string path = m->hasPath(filenames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       filenames[i] = inputDir + filenames[i];         }
                                        }
        
                                        ifstream in;
-                                       int ableToOpen = openInputFile(filenames[i], in, "noerror");
+                                       int ableToOpen = m->openInputFile(filenames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(filenames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(filenames[i]);
                                                        m->mothurOut("Unable to open " + filenames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        filenames[i] = tryPath;
                                                }
                                        }
@@ -83,25 +83,25 @@ SffInfoCommand::SffInfoCommand(string option)  {
                        if (accnosName == "not found") { accnosName = "";  }
                        else { 
                                hasAccnos = true;
-                               splitAtDash(accnosName, accnosFileNames);
+                               m->splitAtDash(accnosName, accnosFileNames);
                                
                                //go through files and make sure they are good, if not, then disregard them
                                for (int i = 0; i < accnosFileNames.size(); i++) {
                                        if (inputDir != "") {
-                                               string path = hasPath(accnosFileNames[i]);
+                                               string path = m->hasPath(accnosFileNames[i]);
                                                //if the user has not given a path then, add inputdir. else leave path alone.
                                                if (path == "") {       accnosFileNames[i] = inputDir + accnosFileNames[i];             }
                                        }
        
                                        ifstream in;
-                                       int ableToOpen = openInputFile(accnosFileNames[i], in, "noerror");
+                                       int ableToOpen = m->openInputFile(accnosFileNames[i], in, "noerror");
                                
                                        //if you can't open it, try default location
                                        if (ableToOpen == 1) {
                                                if (m->getDefaultPath() != "") { //default path is set
-                                                       string tryPath = m->getDefaultPath() + getSimpleName(accnosFileNames[i]);
+                                                       string tryPath = m->getDefaultPath() + m->getSimpleName(accnosFileNames[i]);
                                                        m->mothurOut("Unable to open " + accnosFileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                        accnosFileNames[i] = tryPath;
                                                }
                                        }
@@ -124,19 +124,19 @@ SffInfoCommand::SffInfoCommand(string option)  {
                        }
                        
                        string temp = validParameter.validFile(parameters, "qfile", false);                     if (temp == "not found"){       temp = "T";                             }
-                       qual = isTrue(temp); 
+                       qual = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "fasta", false);                            if (temp == "not found"){       temp = "T";                             }
-                       fasta = isTrue(temp); 
+                       fasta = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "flow", false);                                     if (temp == "not found"){       temp = "F";                             }
-                       flow = isTrue(temp); 
+                       flow = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "trim", false);                                     if (temp == "not found"){       temp = "T";                             }
-                       trim = isTrue(temp); 
+                       trim = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "sfftxt", false);                           if (temp == "not found"){       temp = "F";                             }
-                       sfftxt = isTrue(temp); 
+                       sfftxt = m->isTrue(temp); 
                }
        }
        catch(exception& e) {
@@ -210,27 +210,27 @@ int SffInfoCommand::execute(){
 int SffInfoCommand::extractSffInfo(string input, string accnos){
        try {
                
-               if (outputDir == "") {  outputDir += hasPath(input); }
+               if (outputDir == "") {  outputDir += m->hasPath(input); }
                
                if (accnos != "")       {  readAccnosFile(accnos);  }
                else                            {       seqNames.clear();               }
 
                ofstream outSfftxt, outFasta, outQual, outFlow;
                string outFastaFileName, outQualFileName;
-               string sfftxtFileName = outputDir + getRootName(getSimpleName(input)) + "sff.txt";
-               string outFlowFileName = outputDir + getRootName(getSimpleName(input)) + "flow";
+               string sfftxtFileName = outputDir + m->getRootName(m->getSimpleName(input)) + "sff.txt";
+               string outFlowFileName = outputDir + m->getRootName(m->getSimpleName(input)) + "flow";
                if (trim) {
-                       outFastaFileName = outputDir + getRootName(getSimpleName(input)) + "fasta";
-                       outQualFileName = outputDir + getRootName(getSimpleName(input)) + "qual";
+                       outFastaFileName = outputDir + m->getRootName(m->getSimpleName(input)) + "fasta";
+                       outQualFileName = outputDir + m->getRootName(m->getSimpleName(input)) + "qual";
                }else{
-                       outFastaFileName = outputDir + getRootName(getSimpleName(input)) + "raw.fasta";
-                       outQualFileName = outputDir + getRootName(getSimpleName(input)) + "raw.qual";
+                       outFastaFileName = outputDir + m->getRootName(m->getSimpleName(input)) + "raw.fasta";
+                       outQualFileName = outputDir + m->getRootName(m->getSimpleName(input)) + "raw.qual";
                }
                
-               if (sfftxt) { openOutputFile(sfftxtFileName, outSfftxt); outSfftxt.setf(ios::fixed, ios::floatfield); outSfftxt.setf(ios::showpoint);  outputNames.push_back(sfftxtFileName); }
-               if (fasta)      { openOutputFile(outFastaFileName, outFasta);   outputNames.push_back(outFastaFileName); }
-               if (qual)       { openOutputFile(outQualFileName, outQual);             outputNames.push_back(outQualFileName);  }
-               if (flow)       { openOutputFile(outFlowFileName, outFlow);             outputNames.push_back(outFlowFileName);  }
+               if (sfftxt) { m->openOutputFile(sfftxtFileName, outSfftxt); outSfftxt.setf(ios::fixed, ios::floatfield); outSfftxt.setf(ios::showpoint);  outputNames.push_back(sfftxtFileName); }
+               if (fasta)      { m->openOutputFile(outFastaFileName, outFasta);        outputNames.push_back(outFastaFileName); }
+               if (qual)       { m->openOutputFile(outQualFileName, outQual);          outputNames.push_back(outQualFileName);  }
+               if (flow)       { m->openOutputFile(outFlowFileName, outFlow);          outputNames.push_back(outFlowFileName);  }
                
                ifstream in;
                in.open(input.c_str(), ios::binary);
@@ -671,11 +671,11 @@ int SffInfoCommand::readAccnosFile(string filename) {
                seqNames.clear();
                
                ifstream in;
-               openInputFile(filename, in);
+               m->openInputFile(filename, in);
                string name;
                
                while(!in.eof()){
-                       in >> name; gobble(in);
+                       in >> name; m->gobble(in);
                                                
                        seqNames.insert(name);
                        
index 195996e50d41ff81953f5715704964398b9715e9..2c1b6af3004e7351085e4538f7023e342bc181f9 100644 (file)
@@ -21,12 +21,12 @@ SharedCommand::SharedCommand(string o) : outputDir(o) {
                
                //getting output filename
                filename = globaldata->inputFileName;
-               if (outputDir == "") { outputDir += hasPath(filename); }
+               if (outputDir == "") { outputDir += m->hasPath(filename); }
                
-               filename = outputDir + getRootName(getSimpleName(filename));
+               filename = outputDir + m->getRootName(m->getSimpleName(filename));
                filename = filename + "shared";
                
-               openOutputFile(filename, out);
+               m->openOutputFile(filename, out);
                pickedGroups = false;
                
                groupMap = globaldata->gGroupmap;
@@ -48,7 +48,7 @@ SharedCommand::SharedCommand(string o) : outputDir(o) {
                }
                
                //set fileroot
-               fileroot = outputDir + getRootName(getSimpleName(globaldata->getListFile()));
+               fileroot = outputDir + m->getRootName(m->getSimpleName(globaldata->getListFile()));
                
                //clears file before we start to write to it below
                for (int i=0; i<groups.size(); i++) {
@@ -119,9 +119,9 @@ int SharedCommand::execute(){
                                groups += globaldata->Groups[i] + ".";
                        }
                
-                       string newGroupFile = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + groups + "groups";
+                       string newGroupFile = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + groups + "groups";
                        ofstream outGroups;
-                       openOutputFile(newGroupFile, outGroups);
+                       m->openOutputFile(newGroupFile, outGroups);
                
                        vector<string> names = groupMap->getNamesSeqs();
                        string groupName;
@@ -172,7 +172,7 @@ int SharedCommand::execute(){
                                        userLabels.erase(SharedList->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(SharedList->getLabel(), userLabels, errorOff) == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(SharedList->getLabel(), userLabels, errorOff) == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = SharedList->getLabel();
                                        
                                        delete SharedList;
@@ -292,7 +292,7 @@ void SharedCommand::printSharedData(vector<SharedRAbundVector*> thislookup) {
                                thislookup[i]->print(out);
                                
                                RAbundVector rav = thislookup[i]->getRAbundVector();
-                               openOutputFileAppend(fileroot + thislookup[i]->getGroup() + ".rabund", *(filehandles[thislookup[i]->getGroup()]));
+                               m->openOutputFileAppend(fileroot + thislookup[i]->getGroup() + ".rabund", *(filehandles[thislookup[i]->getGroup()]));
                                rav.print(*(filehandles[thislookup[i]->getGroup()]));
                                (*(filehandles[thislookup[i]->getGroup()])).close();
                        }
@@ -315,7 +315,7 @@ void SharedCommand::printSharedData(vector<SharedRAbundVector*> thislookup) {
                                        (myIt->second)->print(out);
                                
                                        RAbundVector rav = (myIt->second)->getRAbundVector();
-                                       openOutputFileAppend(fileroot + (myIt->second)->getGroup() + ".rabund", *(filehandles[(myIt->second)->getGroup()]));
+                                       m->openOutputFileAppend(fileroot + (myIt->second)->getGroup() + ".rabund", *(filehandles[(myIt->second)->getGroup()]));
                                        rav.print(*(filehandles[(myIt->second)->getGroup()]));
                                        (*(filehandles[(myIt->second)->getGroup()])).close();
                                }else{
@@ -377,14 +377,14 @@ int SharedCommand::eliminateZeroOTUS(vector<SharedRAbundVector*>& thislookup) {
 int SharedCommand::createMisMatchFile() {
        try {
                ofstream outMisMatch;
-               string outputMisMatchName = outputDir + getRootName(getSimpleName(globaldata->inputFileName));
+               string outputMisMatchName = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName));
                
                //you have sequences in your list file that are not in your group file
                if (SharedList->getNumSeqs() > groupMap->getNumSeqs()) { 
                        outputMisMatchName += "missing.group";
                        m->mothurOut("For a list of names that are in your list file and not in your group file, please refer to " + outputMisMatchName + "."); m->mothurOutEndLine();
                        
-                       openOutputFile(outputMisMatchName, outMisMatch);
+                       m->openOutputFile(outputMisMatchName, outMisMatch);
                        
                        map<string, string> listNames;
                        map<string, string>::iterator itList;
@@ -458,7 +458,7 @@ int SharedCommand::createMisMatchFile() {
                
                        map<string, string>::iterator itMatch;
                        
-                       openOutputFile(outputMisMatchName, outMisMatch);
+                       m->openOutputFile(outputMisMatchName, outMisMatch);
                        
                        //loop through names in seqNames and if they aren't in namesIn list output them
                        for (int i = 0; i < seqNames.size(); i++) {
@@ -496,11 +496,11 @@ int SharedCommand::readOrderFile() {
                order.clear();
                
                ifstream in;
-               openInputFile(globaldata->getOrderGroupFile(), in);
+               m->openInputFile(globaldata->getOrderGroupFile(), in);
                string thisGroup;
                
                while(!in.eof()){
-                       in >> thisGroup; gobble(in);
+                       in >> thisGroup; m->gobble(in);
                                                
                        order.push_back(thisGroup);
                        
index cc3cd8df4205e2f37182a8a80037bc02bb37ca45..49780314bca4d40be6a96a9593831b39317faaca 100644 (file)
@@ -52,9 +52,9 @@ SharedListVector::SharedListVector(ifstream& f) : DataVector(), maxRank(0), numB
 /***********************************************************************/
 void SharedListVector::set(int binNumber, string seqNames){
        try {
-               int nNames_old = getNumNames(data[binNumber]);
+               int nNames_old = m->getNumNames(data[binNumber]);
                data[binNumber] = seqNames;
-               int nNames_new = getNumNames(seqNames);
+               int nNames_new = m->getNumNames(seqNames);
        
                if(nNames_old == 0)                     {       numBins++;                              }
                if(nNames_new == 0)                     {       numBins--;                              }
@@ -79,7 +79,7 @@ string SharedListVector::get(int index){
 void SharedListVector::push_back(string seqNames){
        try {
                data.push_back(seqNames);
-               int nNames = getNumNames(seqNames);
+               int nNames = m->getNumNames(seqNames);
        
                numBins++;
        
@@ -141,7 +141,7 @@ RAbundVector SharedListVector::getRAbundVector(){
                RAbundVector rav;
        
                for(int i=0;i<data.size();i++){
-                       int binSize = getNumNames(data[i]);
+                       int binSize = m->getNumNames(data[i]);
                        rav.push_back(binSize);
                }
        
@@ -171,7 +171,7 @@ SAbundVector SharedListVector::getSAbundVector(){
                SAbundVector sav(maxRank+1);
        
                for(int i=0;i<data.size();i++){
-                       int binSize = getNumNames(data[i]);     
+                       int binSize = m->getNumNames(data[i]);  
                        sav.set(binSize, sav.get(binSize) + 1); 
                }
                sav.set(0, 0);
@@ -194,7 +194,7 @@ SharedOrderVector* SharedListVector::getSharedOrderVector(){
                order->setLabel(label);
        
                for(int i=0;i<numBins;i++){
-                       int binSize = getNumNames(get(i));      //find number of individual in given bin        
+                       int binSize = m->getNumNames(get(i));   //find number of individual in given bin        
                        names = get(i);
                        while (names.find_first_of(',') != -1) { 
                                name = names.substr(0,names.find_first_of(','));
@@ -275,7 +275,7 @@ vector<SharedRAbundVector*> SharedListVector::getSharedRAbundVector() {
                        finder[globaldata->gGroupmap->namesOfGroups[i]] = temp;
                        finder[globaldata->gGroupmap->namesOfGroups[i]]->setLabel(label);
                        finder[globaldata->gGroupmap->namesOfGroups[i]]->setGroup(globaldata->gGroupmap->namesOfGroups[i]);
-                       if (inVector(globaldata->gGroupmap->namesOfGroups[i], globaldata->Groups)) {  //if this group is in user groups
+                       if (m->inUsersGroups(globaldata->gGroupmap->namesOfGroups[i], globaldata->Groups)) {  //if this group is in user groups
                                lookup.push_back(finder[globaldata->gGroupmap->namesOfGroups[i]]);
                        }
                }
@@ -331,7 +331,7 @@ OrderVector SharedListVector::getOrderVector(map<string,int>* orderMap = NULL){
                        OrderVector ov;
                
                        for(int i=0;i<data.size();i++){
-                               int binSize = getNumNames(data[i]);             
+                               int binSize = m->getNumNames(data[i]);          
                                for(int j=0;j<binSize;j++){
                                        ov.push_back(i);
                                }
index 2df67b8d19b1861714aba2746e3326256cdfe2ae..3944212ea99e688cea1e04af5bd559044869505d 100644 (file)
@@ -57,7 +57,7 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() {  //reads in a
                        }
                }
                
-               gobble(f); 
+               m->gobble(f); 
                
                if (f.eof() != true) { f >> nextLabel; }
                
@@ -81,7 +81,7 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() {  //reads in a
                                }
                        }
                        
-                       gobble(f);
+                       m->gobble(f);
                                
                        if (f.eof() != true) { f >> nextLabel; }
 
index d135091c3301ed428a8e8e0391a2120643a21520..c15dfac5a1cde0b8fb08173702c44b227e06c2c0 100644 (file)
@@ -101,7 +101,7 @@ SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(0),
                        
                }
                
-               gobble(f);
+               m->gobble(f);
                
                if (f.eof() != true) { f >> nextLabel; }
                
@@ -128,7 +128,7 @@ SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(0),
                                lookup[count]->push_back(inputData, groupN); //abundance, bin, group
                        }
                        
-                       gobble(f);
+                       m->gobble(f);
                                
                        if (f.eof() != true) { f >> nextLabel; }
                }
index 924ed690571d9aa5f9861bc41b14a4fad8a1db47..9679642d9b62fb4a621701d21ad4c0d7cadb7281 100644 (file)
@@ -42,7 +42,7 @@ SplitAbundCommand::SplitAbundCommand(string option)  {
                                it = parameters.find("list");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["list"] = inputDir + it->second;             }
                                }
@@ -50,7 +50,7 @@ SplitAbundCommand::SplitAbundCommand(string option)  {
                                it = parameters.find("group");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["group"] = inputDir + it->second;            }
                                }
@@ -58,7 +58,7 @@ SplitAbundCommand::SplitAbundCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -66,7 +66,7 @@ SplitAbundCommand::SplitAbundCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -109,7 +109,7 @@ SplitAbundCommand::SplitAbundCommand(string option)  {
                                if (groupfile != "") {  Groups = groupMap->namesOfGroups;  } 
                                else {  m->mothurOut("You cannot select groups without a valid groupfile, I will disregard your groups selection. "); m->mothurOutEndLine(); groups = "";   }
                        }else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                        }
                        
                        if ((groupfile == "") && (groups != "")) {  m->mothurOut("You cannot select groups without a valid groupfile, I will disregard your groups selection. "); m->mothurOutEndLine(); groups = "";  Groups.clear(); }
@@ -122,12 +122,12 @@ SplitAbundCommand::SplitAbundCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = "";  allLines = 1; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
                        string temp = validParameter.validFile(parameters, "accnos", false);            if (temp == "not found") { temp = "F"; }
-                       accnos = isTrue(temp); 
+                       accnos = m->isTrue(temp); 
                        
                        temp = validParameter.validFile(parameters, "cutoff", false);                           if (temp == "not found") { temp = "0"; }
                        convert(temp, cutoff); 
@@ -176,10 +176,10 @@ int SplitAbundCommand::execute(){
                if (abort == true) {    return 0;       }
                
                if (listfile != "") { //you are using a listfile to determine abundance
-                       if (outputDir == "") { outputDir = hasPath(listfile); }
+                       if (outputDir == "") { outputDir = m->hasPath(listfile); }
                
                        //remove old files so you can append later....
-                       string fileroot = outputDir + getRootName(getSimpleName(listfile));
+                       string fileroot = outputDir + m->getRootName(m->getSimpleName(listfile));
                        if (Groups.size() == 0) {
                                remove((fileroot + "rare.list").c_str());
                                remove((fileroot + "abund.list").c_str());
@@ -223,7 +223,7 @@ int SplitAbundCommand::execute(){
                                                userLabels.erase(list->getLabel());
                                }
                                
-                               if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                               if ((m->anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                                string saveLabel = list->getLabel();
                                                
                                                delete list;
@@ -280,7 +280,7 @@ int SplitAbundCommand::execute(){
                        if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) {        remove(outputNames[i].c_str()); }       return 0;       }
                                                                        
                }else { //you are using the namefile to determine abundance
-                       if (outputDir == "") { outputDir = hasPath(namefile); }
+                       if (outputDir == "") { outputDir = m->hasPath(namefile); }
                        
                        splitNames(); 
                        writeNames();
@@ -316,7 +316,7 @@ int SplitAbundCommand::splitList(ListVector* thisList) {
                        string bin = thisList->get(i);
                                                
                        vector<string> names;
-                       splitAtComma(bin, names);  //parses bin into individual sequence names
+                       m->splitAtComma(bin, names);  //parses bin into individual sequence names
                        int size = names.size();
                                
                        if (size <= cutoff) {
@@ -364,12 +364,12 @@ int SplitAbundCommand::writeList(ListVector* thisList) {
                        ofstream aout;
                        ofstream rout;
                        
-                       string rare = outputDir + getRootName(getSimpleName(listfile))  + "rare.list";
-                       openOutputFileAppend(rare, rout);
+                       string rare = outputDir + m->getRootName(m->getSimpleName(listfile))  + "rare.list";
+                       m->openOutputFileAppend(rare, rout);
                        outputNames.push_back(rare);
                        
-                       string abund = outputDir + getRootName(getSimpleName(listfile))  + "abund.list";
-                       openOutputFileAppend(abund, aout);
+                       string abund = outputDir + m->getRootName(m->getSimpleName(listfile))  + "abund.list";
+                       m->openOutputFileAppend(abund, aout);
                        outputNames.push_back(abund);
 
                        if (rareNames.size() != 0)      {  rout << thisList->getLabel() << '\t' << numRareBins << '\t';         }
@@ -380,7 +380,7 @@ int SplitAbundCommand::writeList(ListVector* thisList) {
                        
                                string bin = list->get(i); 
                        
-                               int size = getNumNames(bin);
+                               int size = m->getNumNames(bin);
                        
                                if (size <= cutoff) {  rout << bin << '\t';  }
                                else                            {  aout << bin << '\t'; }
@@ -393,7 +393,7 @@ int SplitAbundCommand::writeList(ListVector* thisList) {
                        aout.close();
                        
                }else{ //parse names by abundance and group
-                       string fileroot =  outputDir + getRootName(getSimpleName(listfile));
+                       string fileroot =  outputDir + m->getRootName(m->getSimpleName(listfile));
                        ofstream* temp;
                        ofstream* temp2;
                        //map<string, bool> wroteFile;
@@ -406,8 +406,8 @@ int SplitAbundCommand::writeList(ListVector* thisList) {
                                temp2 = new ofstream;
                                filehandles[Groups[i]+".abund"] = temp2;
                                
-                               openOutputFileAppend(fileroot + Groups[i] + ".rare.list", *(filehandles[Groups[i]+".rare"]));
-                               openOutputFileAppend(fileroot + Groups[i] + ".abund.list", *(filehandles[Groups[i]+".abund"]));
+                               m->openOutputFileAppend(fileroot + Groups[i] + ".rare.list", *(filehandles[Groups[i]+".rare"]));
+                               m->openOutputFileAppend(fileroot + Groups[i] + ".abund.list", *(filehandles[Groups[i]+".abund"]));
                        }
                        
                        map<string, string> groupVector;
@@ -426,7 +426,7 @@ int SplitAbundCommand::writeList(ListVector* thisList) {
                                string bin = list->get(i); 
                        
                                vector<string> names;
-                               splitAtComma(bin, names);  //parses bin into individual sequence names
+                               m->splitAtComma(bin, names);  //parses bin into individual sequence names
                        
                                //parse bin into list of sequences in each group
                                for (int j = 0; j < names.size(); j++) {
@@ -439,7 +439,7 @@ int SplitAbundCommand::writeList(ListVector* thisList) {
                                        
                                        string group = groupMap->getGroup(names[j]);
                                
-                                       if (inUsersGroups(group, Groups)) { //only add if this is in a group we want
+                                       if (m->inUsersGroups(group, Groups)) { //only add if this is in a group we want
                                                itGroup = groupBins.find(group+rareAbund);
                                                if(itGroup == groupBins.end()) {
                                                        groupBins[group+rareAbund] = names[j];  //add first name
@@ -483,17 +483,17 @@ int SplitAbundCommand::splitNames() { //namefile
                        
                //open input file
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                
                while (!in.eof()) {
                        if (m->control_pressed) { break; }
                        
                        string firstCol, secondCol;
-                       in >> firstCol >> secondCol; gobble(in);
+                       in >> firstCol >> secondCol; m->gobble(in);
                        
                        nameMap[firstCol] = secondCol;
                        
-                       int size = getNumNames(secondCol);
+                       int size = m->getNumNames(secondCol);
                                
                        if (size <= cutoff) {
                                rareNames.insert(firstCol); 
@@ -516,13 +516,13 @@ int SplitAbundCommand::readNamesFile() {
        try {
                //open input file
                ifstream in;
-               openInputFile(namefile, in);
+               m->openInputFile(namefile, in);
                
                while (!in.eof()) {
                        if (m->control_pressed) { break; }
                        
                        string firstCol, secondCol;
-                       in >> firstCol >> secondCol; gobble(in);
+                       in >> firstCol >> secondCol; m->gobble(in);
                        
                        nameMap[firstCol] = secondCol;
                }
@@ -547,7 +547,7 @@ int SplitAbundCommand::createNameMap(ListVector* thisList) {
                                string bin = thisList->get(i);
                                                        
                                vector<string> names;
-                               splitAtComma(bin, names);  //parses bin into individual sequence names
+                               m->splitAtComma(bin, names);  //parses bin into individual sequence names
                                
                                for (int j = 0; j < names.size(); j++) {  nameMap[names[j]] = names[j];  }
                        }//end for
@@ -570,12 +570,12 @@ int SplitAbundCommand::writeNames() { //namefile
                        ofstream aout;
                        ofstream rout;
                        
-                       string rare = outputDir + getRootName(getSimpleName(namefile))  + "rare.names";
-                       openOutputFile(rare, rout);
+                       string rare = outputDir + m->getRootName(m->getSimpleName(namefile))  + "rare.names";
+                       m->openOutputFile(rare, rout);
                        outputNames.push_back(rare);
                        
-                       string abund = outputDir + getRootName(getSimpleName(namefile))  + "abund.names";
-                       openOutputFile(abund, aout);
+                       string abund = outputDir + m->getRootName(m->getSimpleName(namefile))  + "abund.names";
+                       m->openOutputFile(abund, aout);
                        outputNames.push_back(abund);
                        
                        if (rareNames.size() != 0) {
@@ -593,7 +593,7 @@ int SplitAbundCommand::writeNames() { //namefile
                        aout.close();
                        
                }else{ //parse names by abundance and group
-                       string fileroot =  outputDir + getRootName(getSimpleName(namefile));
+                       string fileroot =  outputDir + m->getRootName(m->getSimpleName(namefile));
                        ofstream* temp;
                        ofstream* temp2;
                        map<string, ofstream*> filehandles;
@@ -605,13 +605,13 @@ int SplitAbundCommand::writeNames() { //namefile
                                temp2 = new ofstream;
                                filehandles[Groups[i]+".abund"] = temp2;
                                
-                               openOutputFile(fileroot + Groups[i] + ".rare.names", *(filehandles[Groups[i]+".rare"]));
-                               openOutputFile(fileroot + Groups[i] + ".abund.names", *(filehandles[Groups[i]+".abund"]));
+                               m->openOutputFile(fileroot + Groups[i] + ".rare.names", *(filehandles[Groups[i]+".rare"]));
+                               m->openOutputFile(fileroot + Groups[i] + ".abund.names", *(filehandles[Groups[i]+".abund"]));
                        }
                        
                        for (map<string, string>::iterator itName = nameMap.begin(); itName != nameMap.end(); itName++) {                               
                                vector<string> names;
-                               splitAtComma(itName->second, names);  //parses bin into individual sequence names
+                               m->splitAtComma(itName->second, names);  //parses bin into individual sequence names
                                
                                string rareAbund;
                                if (rareNames.count(itName->first) != 0) { //you are a rare name
@@ -626,7 +626,7 @@ int SplitAbundCommand::writeNames() { //namefile
                                        
                                        string group = groupMap->getGroup(names[i]);
                                        
-                                       if (inUsersGroups(group, Groups)) { //only add if this is in a group we want
+                                       if (m->inUsersGroups(group, Groups)) { //only add if this is in a group we want
                                                itout = outputStrings.find(group+rareAbund);
                                                if (itout == outputStrings.end()) {  
                                                        outputStrings[group+rareAbund] = names[i] + '\t' + names[i];
@@ -667,8 +667,8 @@ int SplitAbundCommand::writeAccnos(string tag) {
                        ofstream rout;
                        
                        
-                       string rare = outputDir + getRootName(getSimpleName(inputFile))  + tag + "rare.accnos";
-                       openOutputFile(rare, rout);
+                       string rare = outputDir + m->getRootName(m->getSimpleName(inputFile))  + tag + "rare.accnos";
+                       m->openOutputFile(rare, rout);
                        outputNames.push_back(rare);
                        
                        for (set<string>::iterator itRare = rareNames.begin(); itRare != rareNames.end(); itRare++) {
@@ -676,8 +676,8 @@ int SplitAbundCommand::writeAccnos(string tag) {
                        }
                        rout.close();
                
-                       string abund = outputDir + getRootName(getSimpleName(inputFile)) + tag  + "abund.accnos";
-                       openOutputFile(abund, aout);
+                       string abund = outputDir + m->getRootName(m->getSimpleName(inputFile)) + tag  + "abund.accnos";
+                       m->openOutputFile(abund, aout);
                        outputNames.push_back(abund);
                        
                        for (set<string>::iterator itAbund = abundNames.begin(); itAbund != abundNames.end(); itAbund++) {
@@ -686,7 +686,7 @@ int SplitAbundCommand::writeAccnos(string tag) {
                        aout.close();
                        
                }else{ //parse names by abundance and group
-                       string fileroot =  outputDir + getRootName(getSimpleName(inputFile));
+                       string fileroot =  outputDir + m->getRootName(m->getSimpleName(inputFile));
                        ofstream* temp;
                        ofstream* temp2;
                        map<string, ofstream*> filehandles;
@@ -698,15 +698,15 @@ int SplitAbundCommand::writeAccnos(string tag) {
                                temp2 = new ofstream;
                                filehandles[Groups[i]+".abund"] = temp2;
                                
-                               openOutputFile(fileroot + tag + Groups[i] + ".rare.accnos", *(filehandles[Groups[i]+".rare"]));
-                               openOutputFile(fileroot + tag + Groups[i] + ".abund.accnos", *(filehandles[Groups[i]+".abund"]));
+                               m->openOutputFile(fileroot + tag + Groups[i] + ".rare.accnos", *(filehandles[Groups[i]+".rare"]));
+                               m->openOutputFile(fileroot + tag + Groups[i] + ".abund.accnos", *(filehandles[Groups[i]+".abund"]));
                        }
                        
                        //write rare
                        for (set<string>::iterator itRare = rareNames.begin(); itRare != rareNames.end(); itRare++) {
                                        string group = groupMap->getGroup(*itRare);
                                        
-                                       if (inUsersGroups(group, Groups)) { //only add if this is in a group we want
+                                       if (m->inUsersGroups(group, Groups)) { //only add if this is in a group we want
                                                *(filehandles[group+".rare"]) << *itRare << endl;
                                        }
                        }
@@ -715,7 +715,7 @@ int SplitAbundCommand::writeAccnos(string tag) {
                        for (set<string>::iterator itAbund = abundNames.begin(); itAbund != abundNames.end(); itAbund++) {
                                        string group = groupMap->getGroup(*itAbund);
                                        
-                                       if (inUsersGroups(group, Groups)) { //only add if this is in a group we want
+                                       if (m->inUsersGroups(group, Groups)) { //only add if this is in a group we want
                                                *(filehandles[group+".abund"]) << *itAbund << endl;
                                        }
                        }
@@ -746,17 +746,17 @@ int SplitAbundCommand::parseGroup(string tag) { //namefile
                        ofstream aout;
                        ofstream rout;
                        
-                       string rare = outputDir + getRootName(getSimpleName(groupfile))  + tag + "rare.groups";
-                       openOutputFile(rare, rout);
+                       string rare = outputDir + m->getRootName(m->getSimpleName(groupfile))  + tag + "rare.groups";
+                       m->openOutputFile(rare, rout);
                        outputNames.push_back(rare);
                
-                       string abund = outputDir + getRootName(getSimpleName(groupfile))  + tag + "abund.groups";
-                       openOutputFile(abund, aout);
+                       string abund = outputDir + m->getRootName(m->getSimpleName(groupfile))  + tag + "abund.groups";
+                       m->openOutputFile(abund, aout);
                        outputNames.push_back(abund);
                        
                        for (map<string, string>::iterator itName = nameMap.begin(); itName != nameMap.end(); itName++) {                               
                                vector<string> names;
-                               splitAtComma(itName->second, names);  //parses bin into individual sequence names
+                               m->splitAtComma(itName->second, names);  //parses bin into individual sequence names
                                
                                for (int i = 0; i < names.size(); i++) {
                                
@@ -778,7 +778,7 @@ int SplitAbundCommand::parseGroup(string tag) { //namefile
                        aout.close(); 
 
                }else{ //parse names by abundance and group
-                       string fileroot =  outputDir + getRootName(getSimpleName(groupfile));
+                       string fileroot =  outputDir + m->getRootName(m->getSimpleName(groupfile));
                        ofstream* temp;
                        ofstream* temp2;
                        map<string, ofstream*> filehandles;
@@ -790,13 +790,13 @@ int SplitAbundCommand::parseGroup(string tag) { //namefile
                                temp2 = new ofstream;
                                filehandles[Groups[i]+".abund"] = temp2;
                                
-                               openOutputFile(fileroot + tag + Groups[i] + ".rare.groups", *(filehandles[Groups[i]+".rare"]));
-                               openOutputFile(fileroot + tag + Groups[i] + ".abund.groups", *(filehandles[Groups[i]+".abund"]));
+                               m->openOutputFile(fileroot + tag + Groups[i] + ".rare.groups", *(filehandles[Groups[i]+".rare"]));
+                               m->openOutputFile(fileroot + tag + Groups[i] + ".abund.groups", *(filehandles[Groups[i]+".abund"]));
                        }
                        
                        for (map<string, string>::iterator itName = nameMap.begin(); itName != nameMap.end(); itName++) {                               
                                vector<string> names;
-                               splitAtComma(itName->second, names);  //parses bin into individual sequence names
+                               m->splitAtComma(itName->second, names);  //parses bin into individual sequence names
                                
                                string rareAbund;
                                if (rareNames.count(itName->first) != 0) { //you are a rare name
@@ -809,7 +809,7 @@ int SplitAbundCommand::parseGroup(string tag) { //namefile
                                
                                        string group = groupMap->getGroup(names[i]);
                                                                        
-                                       if (inUsersGroups(group, Groups)) { //only add if this is in a group we want
+                                       if (m->inUsersGroups(group, Groups)) { //only add if this is in a group we want
                                                *(filehandles[group+rareAbund]) << names[i] << '\t' << group << endl;
                                        }
                                }
@@ -840,22 +840,22 @@ int SplitAbundCommand::parseFasta(string tag) { //namefile
                        ofstream aout;
                        ofstream rout;
                        
-                       string rare = outputDir + getRootName(getSimpleName(fastafile))  + tag + "rare.fasta";
-                       openOutputFile(rare, rout);
+                       string rare = outputDir + m->getRootName(m->getSimpleName(fastafile))  + tag + "rare.fasta";
+                       m->openOutputFile(rare, rout);
                        outputNames.push_back(rare);
                
-                       string abund = outputDir + getRootName(getSimpleName(fastafile))  + tag + "abund.fasta";
-                       openOutputFile(abund, aout);
+                       string abund = outputDir + m->getRootName(m->getSimpleName(fastafile))  + tag + "abund.fasta";
+                       m->openOutputFile(abund, aout);
                        outputNames.push_back(abund);
                
                        //open input file
                        ifstream in;
-                       openInputFile(fastafile, in);
+                       m->openInputFile(fastafile, in);
        
                        while (!in.eof()) {
                                if (m->control_pressed) { break; }
                
-                               Sequence seq(in); gobble(in);
+                               Sequence seq(in); m->gobble(in);
                                
                                if (seq.getName() != "") { 
                                        
@@ -879,7 +879,7 @@ int SplitAbundCommand::parseFasta(string tag) { //namefile
                        aout.close(); 
 
                }else{ //parse names by abundance and group
-                       string fileroot =  outputDir + getRootName(getSimpleName(fastafile));
+                       string fileroot =  outputDir + m->getRootName(m->getSimpleName(fastafile));
                        ofstream* temp;
                        ofstream* temp2;
                        map<string, ofstream*> filehandles;
@@ -891,18 +891,18 @@ int SplitAbundCommand::parseFasta(string tag) { //namefile
                                temp2 = new ofstream;
                                filehandles[Groups[i]+".abund"] = temp2;
                                
-                               openOutputFile(fileroot + tag + Groups[i] + ".rare.fasta", *(filehandles[Groups[i]+".rare"]));
-                               openOutputFile(fileroot + tag + Groups[i] + ".abund.fasta", *(filehandles[Groups[i]+".abund"]));
+                               m->openOutputFile(fileroot + tag + Groups[i] + ".rare.fasta", *(filehandles[Groups[i]+".rare"]));
+                               m->openOutputFile(fileroot + tag + Groups[i] + ".abund.fasta", *(filehandles[Groups[i]+".abund"]));
                        }
                        
                        //open input file
                        ifstream in;
-                       openInputFile(fastafile, in);
+                       m->openInputFile(fastafile, in);
        
                        while (!in.eof()) {
                                if (m->control_pressed) { break; }
                
-                               Sequence seq(in); gobble(in);
+                               Sequence seq(in); m->gobble(in);
                                
                                if (seq.getName() != "") { 
                                        map<string, string>::iterator itNames = nameMap.find(seq.getName());
@@ -911,7 +911,7 @@ int SplitAbundCommand::parseFasta(string tag) { //namefile
                                                m->mothurOut(seq.getName() + " is not in your namesfile, ignoring."); m->mothurOutEndLine();
                                        }else{
                                                vector<string> names;
-                                               splitAtComma(itNames->second, names);  //parses bin into individual sequence names
+                                               m->splitAtComma(itNames->second, names);  //parses bin into individual sequence names
                                
                                                string rareAbund;
                                                if (rareNames.count(itNames->first) != 0) { //you are a rare name
@@ -924,7 +924,7 @@ int SplitAbundCommand::parseFasta(string tag) { //namefile
                                
                                                        string group = groupMap->getGroup(seq.getName());
                                        
-                                                       if (inUsersGroups(group, Groups)) { //only add if this is in a group we want
+                                                       if (m->inUsersGroups(group, Groups)) { //only add if this is in a group we want
                                                                seq.printSequence(*(filehandles[group+rareAbund]));
                                                        }else if(group == "not found") {
                                                                m->mothurOut(seq.getName() + " is not in your groupfile. Ignoring."); m->mothurOutEndLine();
index 6e40e97a10b0fd2af75b09c97ae43a26095016b8..a4e1f98581b9ce947dd53ad016dc347c71c99ffe 100644 (file)
@@ -87,12 +87,12 @@ int SplitMatrix::splitClassify(){
                PhyloTree* phylo = new PhyloTree();
                
                ifstream in;
-               openInputFile(taxFile, in);
+               m->openInputFile(taxFile, in);
                        
                //read in users taxonomy file and add sequences to tree
                string seqname, tax;
                while(!in.eof()){
-                       in >> seqname >> tax; gobble(in);
+                       in >> seqname >> tax; m->gobble(in);
                        phylo->addSeqToTree(seqname, tax);
                }
                in.close();
@@ -146,12 +146,12 @@ int SplitMatrix::createDistanceFilesFromTax(map<string, int>& seqGroup, int numG
                }
                        
                ifstream in;
-               openInputFile(fastafile, in);
+               m->openInputFile(fastafile, in);
        
                //parse fastafile
                ofstream outFile;
                while (!in.eof()) {
-                       Sequence query(in); gobble(in);
+                       Sequence query(in); m->gobble(in);
                        if (query.getName() != "") {
                
                                it = seqGroup.find(query.getName());
@@ -160,7 +160,7 @@ int SplitMatrix::createDistanceFilesFromTax(map<string, int>& seqGroup, int numG
                                if (namefile == "") {  names.insert(query.getName()); }
                        
                                if (it != seqGroup.end()) { //not singleton 
-                                       openOutputFileAppend((fastafile + "." + toString(it->second) + ".temp"), outFile);
+                                       m->openOutputFileAppend((fastafile + "." + toString(it->second) + ".temp"), outFile);
                                        query.printSequence(outFile); 
                                        outFile.close();
                                        
@@ -195,22 +195,22 @@ int SplitMatrix::createDistanceFilesFromTax(map<string, int>& seqGroup, int numG
                
                singleton = namefile + ".extra.temp";
                ofstream remainingNames;
-               openOutputFile(singleton, remainingNames);
+               m->openOutputFile(singleton, remainingNames);
                
                bool wroteExtra = false;
 
                ifstream bigNameFile;
-               openInputFile(namefile, bigNameFile);
+               m->openInputFile(namefile, bigNameFile);
                
                string name, nameList;
                while(!bigNameFile.eof()){
-                       bigNameFile >> name >> nameList;  gobble(bigNameFile);
+                       bigNameFile >> name >> nameList;  m->gobble(bigNameFile);
                        
                        //did this sequence get assigned a group
                        it = seqGroup.find(name);
                        
                        if (it != seqGroup.end()) {  
-                               openOutputFileAppend((namefile + "." + toString(it->second) + ".temp"), outFile);
+                               m->openOutputFileAppend((namefile + "." + toString(it->second) + ".temp"), outFile);
                                outFile << name << '\t' << nameList << endl;
                                outFile.close();
                        }else{
@@ -222,23 +222,23 @@ int SplitMatrix::createDistanceFilesFromTax(map<string, int>& seqGroup, int numG
                
                for(int i=0;i<numGroups;i++){
                        string tempNameFile = namefile + "." + toString(i) + ".temp";
-                       string tempDistFile = outputDir + getRootName(getSimpleName((fastafile + "." + toString(i) + ".temp"))) + "dist";
+                       string tempDistFile = outputDir + m->getRootName(m->getSimpleName((fastafile + "." + toString(i) + ".temp"))) + "dist";
 
                        //if there are valid distances
                        ifstream fileHandle;
                        fileHandle.open(tempDistFile.c_str());
                        if(fileHandle)  {       
-                               gobble(fileHandle);
+                               m->gobble(fileHandle);
                                if (!fileHandle.eof()) {  //check for blank file - this could occur if all dists in group are above cutoff
                                        map<string, string> temp;
                                        temp[tempDistFile] = tempNameFile;
                                        dists.push_back(temp);
                                }else {
                                        ifstream in;
-                                       openInputFile(tempNameFile, in);
+                                       m->openInputFile(tempNameFile, in);
                                
                                        while(!in.eof()) { 
-                                               in >> name >> nameList;  gobble(in);
+                                               in >> name >> nameList;  m->gobble(in);
                                                wroteExtra = true;
                                                remainingNames << name << '\t' << nameList << endl;
                                        }
@@ -271,7 +271,7 @@ int SplitMatrix::splitDistanceFileByTax(map<string, int>& seqGroup, int numGroup
                map<string, int>::iterator it2;
                
                ifstream dFile;
-               openInputFile(distFile, dFile);
+               m->openInputFile(distFile, dFile);
                ofstream outFile;
                
                for (int i = 0; i < numGroups; i++) { //remove old temp files, just in case
@@ -294,7 +294,7 @@ int SplitMatrix::splitDistanceFileByTax(map<string, int>& seqGroup, int numGroup
                        
                        if (m->control_pressed) { dFile.close(); for (int i = 0; i < numGroups; i++) { remove((distFile + "." + toString(i) + ".temp").c_str());        } }
                        
-                       dFile >> seqA >> seqB >> dist;  gobble(dFile);
+                       dFile >> seqA >> seqB >> dist;  m->gobble(dFile);
                        
                        //if both sequences are in the same group then they are within the cutoff
                        it = seqGroup.find(seqA);
@@ -303,7 +303,7 @@ int SplitMatrix::splitDistanceFileByTax(map<string, int>& seqGroup, int numGroup
                        if ((it != seqGroup.end()) && (it2 != seqGroup.end())) { //they are both not singletons 
                                if (it->second == it2->second) { //they are from the same group so add the distance
                                        if (numOutputs[it->second] > 30) {
-                                               openOutputFileAppend((distFile + "." + toString(it->second) + ".temp"), outFile);
+                                               m->openOutputFileAppend((distFile + "." + toString(it->second) + ".temp"), outFile);
                                                outFile << outputs[it->second] << seqA << '\t' << seqB << '\t' << dist << endl;
                                                outFile.close();
                                                outputs[it->second] = "";
@@ -323,7 +323,7 @@ int SplitMatrix::splitDistanceFileByTax(map<string, int>& seqGroup, int numGroup
                        
                        //write out any remaining buffers
                        if (numOutputs[i] > 0) {
-                               openOutputFileAppend((distFile + "." + toString(i) + ".temp"), outFile);
+                               m->openOutputFileAppend((distFile + "." + toString(i) + ".temp"), outFile);
                                outFile << outputs[i];
                                outFile.close();
                                outputs[i] = "";
@@ -333,23 +333,23 @@ int SplitMatrix::splitDistanceFileByTax(map<string, int>& seqGroup, int numGroup
                }
                
                ifstream bigNameFile;
-               openInputFile(namefile, bigNameFile);
+               m->openInputFile(namefile, bigNameFile);
                
                singleton = namefile + ".extra.temp";
                ofstream remainingNames;
-               openOutputFile(singleton, remainingNames);
+               m->openOutputFile(singleton, remainingNames);
                
                bool wroteExtra = false;
                                                
                string name, nameList;
                while(!bigNameFile.eof()){
-                       bigNameFile >> name >> nameList;  gobble(bigNameFile);
+                       bigNameFile >> name >> nameList;  m->gobble(bigNameFile);
                        
                        //did this sequence get assigned a group
                        it = seqGroup.find(name);
                        
                        if (it != seqGroup.end()) {  
-                               openOutputFileAppend((namefile + "." + toString(it->second) + ".temp"), outFile);
+                               m->openOutputFileAppend((namefile + "." + toString(it->second) + ".temp"), outFile);
                                outFile << name << '\t' << nameList << endl;
                                outFile.close();
                        }else{
@@ -370,10 +370,10 @@ int SplitMatrix::splitDistanceFileByTax(map<string, int>& seqGroup, int numGroup
                                dists.push_back(temp);
                        }else{
                                ifstream in;
-                               openInputFile(tempNameFile, in);
+                               m->openInputFile(tempNameFile, in);
                                
                                while(!in.eof()) { 
-                                       in >> name >> nameList;  gobble(in);
+                                       in >> name >> nameList;  m->gobble(in);
                                        wroteExtra = true;
                                        remainingNames << name << '\t' << nameList << endl;
                                }
@@ -419,7 +419,7 @@ int SplitMatrix::splitDistanceLarge(){
 
                ofstream outFile;
                ifstream dFile;
-               openInputFile(distFile, dFile);
+               m->openInputFile(distFile, dFile);
        
                while(dFile){
                        string seqA, seqB;
@@ -633,7 +633,7 @@ int SplitMatrix::splitDistanceLarge(){
                                        }
                                }
                        }
-                       gobble(dFile);
+                       m->gobble(dFile);
                }
                dFile.close();
                
@@ -671,7 +671,7 @@ int SplitMatrix::splitNames(vector<set<string> >& groups){
                while(bigNameFile){
                        bigNameFile >> name >> nameList;
                        nameMap[name] = nameList;
-                       gobble(bigNameFile);
+                       m->gobble(bigNameFile);
                }
                bigNameFile.close();
                        
@@ -740,7 +740,7 @@ int SplitMatrix::splitDistanceRAM(){
                int numGroups = 0;
 
                ifstream dFile;
-               openInputFile(distFile, dFile);
+               m->openInputFile(distFile, dFile);
 
                while(dFile){
                        string seqA, seqB;
@@ -823,7 +823,7 @@ int SplitMatrix::splitDistanceRAM(){
                                        }
                                }
                        }
-                       gobble(dFile);
+                       m->gobble(dFile);
                }
                dFile.close();
                
index 087e63f58b983b092fffd09ba191665b3826a7d0..70470b015684b386947056686789da5077000565 100644 (file)
@@ -68,7 +68,7 @@ SummaryCommand::SummaryCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
 
                        //check for optional parameter and set defaults
@@ -76,7 +76,7 @@ SummaryCommand::SummaryCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -91,7 +91,7 @@ SummaryCommand::SummaryCommand(string option)  {
                        else { 
                                 if (calc == "default")  {  calc = "sobs-chao-ace-jack-shannon-npshannon-simpson";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
 
                        string temp;
                        temp = validParameter.validFile(parameters, "abund", false);            if (temp == "not found") { temp = "10"; }
@@ -101,7 +101,7 @@ SummaryCommand::SummaryCommand(string option)  {
                        convert(temp, size); 
                        
                        temp = validParameter.validFile(parameters, "groupmode", false);                if (temp == "not found") { temp = "F"; }
-                       groupMode = isTrue(temp);
+                       groupMode = m->isTrue(temp);
                        
        
                }
@@ -160,7 +160,7 @@ int SummaryCommand::execute(){
                        numLines = 0;
                        numCols = 0;
                        
-                       string fileNameRoot = outputDir + getRootName(getSimpleName(inputFileNames[p])) + "summary";
+                       string fileNameRoot = outputDir + m->getRootName(m->getSimpleName(inputFileNames[p])) + "summary";
                        globaldata->inputFileName = inputFileNames[p];
                        outputNames.push_back(fileNameRoot);
                        
@@ -234,7 +234,7 @@ int SummaryCommand::execute(){
                        if (sumCalculators.size() == 0) { if (hadShared != "") {  globaldata->setSharedFile(hadShared); globaldata->setFormat("sharedfile");  } return 0; }
                        
                        ofstream outputFileHandle;
-                       openOutputFile(fileNameRoot, outputFileHandle);
+                       m->openOutputFile(fileNameRoot, outputFileHandle);
                        outputFileHandle << "label";
                        
                        read = new ReadOTUFile(globaldata->inputFileName);      
@@ -285,7 +285,7 @@ int SummaryCommand::execute(){
                                        numLines++;
                                }
                                
-                               if ((anyLabelsToProcess(sabund->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                               if ((m->anyLabelsToProcess(sabund->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = sabund->getLabel();
                                        
                                        delete sabund;
@@ -401,7 +401,7 @@ vector<string> SummaryCommand::parseSharedFile(string filename) {
                input = globaldata->ginput;
                vector<SharedRAbundVector*> lookup = input->getSharedRAbundVectors();
                
-               string sharedFileRoot = getRootName(filename);
+               string sharedFileRoot = m->getRootName(filename);
                
                //clears file before we start to write to it below
                for (int i=0; i<lookup.size(); i++) {
@@ -420,7 +420,7 @@ vector<string> SummaryCommand::parseSharedFile(string filename) {
                
                        for (int i = 0; i < lookup.size(); i++) {
                                RAbundVector rav = lookup[i]->getRAbundVector();
-                               openOutputFileAppend(sharedFileRoot + lookup[i]->getGroup() + ".rabund", *(filehandles[lookup[i]->getGroup()]));
+                               m->openOutputFileAppend(sharedFileRoot + lookup[i]->getGroup() + ".rabund", *(filehandles[lookup[i]->getGroup()]));
                                rav.print(*(filehandles[lookup[i]->getGroup()]));
                                (*(filehandles[lookup[i]->getGroup()])).close();
                        }
@@ -449,10 +449,10 @@ string SummaryCommand::createGroupSummaryFile(int numLines, int numCols, vector<
        try {
                
                ofstream out;
-               string combineFileName = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "groups.summary";
+               string combineFileName = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + "groups.summary";
                
                //open combined file
-               openOutputFile(combineFileName, out);
+               m->openOutputFile(combineFileName, out);
                
                //open each groups summary file
                string newLabel = "";
@@ -461,7 +461,7 @@ string SummaryCommand::createGroupSummaryFile(int numLines, int numCols, vector<
                for (int i=0; i<outputNames.size(); i++) {
                        temp = new ifstream;
                        filehandles[outputNames[i]] = temp;
-                       openInputFile(outputNames[i], *(temp));
+                       m->openInputFile(outputNames[i], *(temp));
                        
                        //read through first line - labels
                        string tempLabel;
@@ -474,7 +474,7 @@ string SummaryCommand::createGroupSummaryFile(int numLines, int numCols, vector<
                                }
                        }else{  for (int j = 0; j < numCols+1; j++) {  *(temp) >> tempLabel;  }  }
                        
-                       gobble(*(temp));
+                       m->gobble(*(temp));
                }
                
                //output label line to new file
@@ -496,7 +496,7 @@ string SummaryCommand::createGroupSummaryFile(int numLines, int numCols, vector<
                                }
                                
                                out << endl;
-                               gobble(*(filehandles[outputNames[i]]));
+                               m->gobble(*(filehandles[outputNames[i]]));
                        }
                }       
                
index b8956ecd6b495525d922c296484a433cd97ebdc9..cda2ef07da552d6ea4f25504e5b207a84d2594c7 100644 (file)
@@ -69,7 +69,7 @@ SummarySharedCommand::SummarySharedCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->getSharedFile()); //if user entered a file with a path then preserve it        
+                               outputDir += m->hasPath(globaldata->getSharedFile()); //if user entered a file with a path then preserve it     
                        }
 
                        //check for optional parameter and set defaults
@@ -77,7 +77,7 @@ SummarySharedCommand::SummarySharedCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -92,17 +92,17 @@ SummarySharedCommand::SummarySharedCommand(string option)  {
                        else { 
                                 if (calc == "default")  {  calc = "sharedsobs-sharedchao-sharedace-jabund-sorabund-jclass-sorclass-jest-sorest-thetayc-thetan";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
                        
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                        
                        string temp = validParameter.validFile(parameters, "all", false);                               if (temp == "not found") { temp = "false"; }
-                       all = isTrue(temp);
+                       all = m->isTrue(temp);
                        
                        if (abort == false) {
                        
@@ -157,8 +157,8 @@ SummarySharedCommand::SummarySharedCommand(string option)  {
                                        }
                                }
                                
-                               outputFileName = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "shared.summary";
-                               openOutputFile(outputFileName, outputFileHandle);
+                               outputFileName = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + "shared.summary";
+                               m->openOutputFile(outputFileName, outputFileHandle);
                                outputNames.push_back(outputFileName);
                                
                                mult = false;
@@ -239,8 +239,8 @@ int SummarySharedCommand::execute(){
                
                //create file and put column headers for multiple groups file
                if (mult == true) {
-                       outAllFileName = ((getRootName(globaldata->inputFileName)) + "sharedmultiple.summary");
-                       openOutputFile(outAllFileName, outAll);
+                       outAllFileName = ((m->getRootName(globaldata->inputFileName)) + "sharedmultiple.summary");
+                       m->openOutputFile(outAllFileName, outAll);
                        outputNames.push_back(outAllFileName);
                        
                        outAll << "label" <<'\t' << "comparison" << '\t'; 
@@ -304,7 +304,7 @@ int SummarySharedCommand::execute(){
                                userLabels.erase(lookup[0]->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = lookup[0]->getLabel();
                                        
                                        for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  } 
index 1d2832d5fc3a3ba31861d75d93dd202caf82261e..d3b24d1297f280f0b4f11a30724a3c9d61d8427f 100644 (file)
@@ -16,7 +16,7 @@ TaxEqualizer::TaxEqualizer(string tfile, int c, string o) : cutoff(c), outputDir
                containsConfidence = false;
                
                ifstream inTax;
-               openInputFile(tfile, inTax);
+               m->openInputFile(tfile, inTax);
        
                highestLevel = getHighestLevel(inTax);
                
@@ -32,11 +32,11 @@ TaxEqualizer::TaxEqualizer(string tfile, int c, string o) : cutoff(c), outputDir
                        
                        inTax.close(); 
                        ifstream in; 
-                       openInputFile(tfile, in);
+                       m->openInputFile(tfile, in);
                        
                        ofstream out;
-                       equalizedFile = outputDir + getRootName(getSimpleName(tfile)) + "equalized.taxonomy";
-                       openOutputFile(equalizedFile, out);
+                       equalizedFile = outputDir + m->getRootName(m->getSimpleName(tfile)) + "equalized.taxonomy";
+                       m->openOutputFile(equalizedFile, out);
                        
        
                        string name, tax;
@@ -44,7 +44,7 @@ TaxEqualizer::TaxEqualizer(string tfile, int c, string o) : cutoff(c), outputDir
                        
                                if (m->control_pressed) {  break; }
                                
-                               in >> name >> tax;   gobble(in);
+                               in >> name >> tax;   m->gobble(in);
                                
                                if (containsConfidence) {  removeConfidences(tax);      }
                                
@@ -78,7 +78,7 @@ int TaxEqualizer::getHighestLevel(ifstream& in) {
                string name, tax;
                
                while (in) {
-                       in >> name >> tax;   gobble(in);
+                       in >> name >> tax;   m->gobble(in);
                
                        //count levels in this taxonomy
                        int thisLevel = 0;
index 8e459810589cbc23e9f443884406028382e4e212..14d86e6daf211b625931c3d52a127cd441086267 100644 (file)
--- a/tree.cpp
+++ b/tree.cpp
@@ -78,7 +78,7 @@ void Tree::addNamesToCounts() {
                        if (itNames == globaldata->names.end()) { m->mothurOut(name + " is not in your name file, please correct."); m->mothurOutEndLine(); exit(1);  }
                        else {
                                vector<string> dupNames;
-                               splitAtComma(globaldata->names[name], dupNames);
+                               m->splitAtComma(globaldata->names[name], dupNames);
                                
                                map<string, int>::iterator itCounts;
                                int maxPars = 1;
@@ -292,14 +292,14 @@ map<string, int> Tree::mergeUserGroups(int i, vector<string> g) {
                
                //loop through nodes groups removing the ones the user doesn't want
                for(it=tree[lc].pGroups.begin();it!=tree[lc].pGroups.end();){
-                               if (inUsersGroups(it->first, g) != true) {
+                               if (m->inUsersGroups(it->first, g) != true) {
                                        tree[lc].pGroups.erase(it++);
                                }else { it++; }
                }
 
                //loop through nodes groups removing the ones the user doesn't want
                for(it=tree[rc].pGroups.begin();it!=tree[rc].pGroups.end();){
-                               if (inUsersGroups(it->first, g) != true) {
+                               if (m->inUsersGroups(it->first, g) != true) {
                                        tree[rc].pGroups.erase(it++);
                                }else { it++; }
                }
@@ -381,8 +381,8 @@ void Tree::randomLabels(vector<string> g) {
                        //if either of the leaf nodes you are about to switch are not in the users groups then you don't want to switch them.
                        bool treez, treei;
                
-                       treez = inUsersGroups(tree[z].getGroup(), g);
-                       treei = inUsersGroups(tree[i].getGroup(), g);
+                       treez = m->inUsersGroups(tree[z].getGroup(), g);
+                       treei = m->inUsersGroups(tree[i].getGroup(), g);
                        
                        if ((treez == true) && (treei == true)) {
                                //switches node i and node z's info.
@@ -542,10 +542,10 @@ void Tree::printForBoot(ostream& out) {
 void Tree::createNewickFile(string f) {
        try {
                int root = findRoot();
-               //filename = getRootName(globaldata->getTreeFile()) + "newick";
+               //filename = m->getRootName(globaldata->getTreeFile()) + "newick";
                filename = f;
 
-               openOutputFile(filename, out);
+               m->openOutputFile(filename, out);
                
                printBranch(root, out, "branch");
                
@@ -643,7 +643,7 @@ void Tree::parseTreeFile() {
        try {
                string filename = globaldata->getTreeFile();
                ifstream filehandle;
-               openInputFile(filename, filehandle);
+               m->openInputFile(filename, filehandle);
                int c, comment;
                comment = 0;
                int done = 1;
index c4e58c28b3a7c56892981c7e221b738daa610ccd..eb3c33481d4ef68199f2b42e452ea93c1679bbf4 100644 (file)
@@ -58,7 +58,7 @@ TreeGroupCommand::TreeGroupCommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -66,7 +66,7 @@ TreeGroupCommand::TreeGroupCommand(string option)  {
                                it = parameters.find("column");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["column"] = inputDir + it->second;           }
                                }
@@ -74,7 +74,7 @@ TreeGroupCommand::TreeGroupCommand(string option)  {
                                it = parameters.find("name");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["name"] = inputDir + it->second;             }
                                }
@@ -111,7 +111,7 @@ TreeGroupCommand::TreeGroupCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -124,7 +124,7 @@ TreeGroupCommand::TreeGroupCommand(string option)  {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                                
@@ -133,7 +133,7 @@ TreeGroupCommand::TreeGroupCommand(string option)  {
                        else { 
                                 if (calc == "default")  {  calc = "jclass-thetayc";  }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
 
                        string temp;
                        temp = validParameter.validFile(parameters, "precision", false);                        if (temp == "not found") { temp = "100"; }
@@ -146,7 +146,7 @@ TreeGroupCommand::TreeGroupCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
 
                                
@@ -322,7 +322,7 @@ int TreeGroupCommand::execute(){
                        if (m->control_pressed) { return 0; }
 
                        //create a new filename
-                       outputFile = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "tre"; 
+                       outputFile = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + "tre";   
                        outputNames.push_back(outputFile);
                                
                        createTree();
@@ -512,7 +512,7 @@ int TreeGroupCommand::makeSimsShared() {
                                userLabels.erase(lookup[0]->getLabel());
                        }
                        
-                       if ((anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                       if ((m->anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                string saveLabel = lookup[0]->getLabel();
                        
                                for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  } 
@@ -593,7 +593,7 @@ int TreeGroupCommand::process(vector<SharedRAbundVector*> thisLookup) {
                                        for (int g = 0; g < numGroups; g++) {   index[g] = g;   }
                
                                        //create a new filename
-                                       outputFile = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + treeCalculators[i]->getName() + "." + thisLookup[0]->getLabel() + ".tre";                              
+                                       outputFile = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + treeCalculators[i]->getName() + "." + thisLookup[0]->getLabel() + ".tre";                                
                                        outputNames.push_back(outputFile);
                                                                                                
                                        for (int k = 0; k < thisLookup.size(); k++) { 
index dcef7f7c19174f1aaf6a1435931c9005f986f638..b2fc591c0adb24820d6f603bd8016154ad1c626c 100644 (file)
@@ -13,7 +13,7 @@
 
  TreeMap::TreeMap(string filename) {
        groupFileName = filename;
-       openInputFile(filename, fileHandle);
+       m->openInputFile(filename, fileHandle);
 }
 
 /************************************************************/
@@ -39,7 +39,7 @@ void TreeMap::readMap() {
                                seqsPerGroup[seqGroup]++;
                        }
 
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                }
                fileHandle.close();
 }
index daf0ecea2efe53fafa907518cc347444da651b6f..8a767f696415737284491fa691a708dd1c011573 100644 (file)
@@ -47,7 +47,7 @@ TrimSeqsCommand::TrimSeqsCommand(string option)  {
                                it = parameters.find("fasta");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
                                }
@@ -55,7 +55,7 @@ TrimSeqsCommand::TrimSeqsCommand(string option)  {
                                it = parameters.find("oligos");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["oligos"] = inputDir + it->second;           }
                                }
@@ -63,7 +63,7 @@ TrimSeqsCommand::TrimSeqsCommand(string option)  {
                                it = parameters.find("qfile");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["qfile"] = inputDir + it->second;            }
                                }
@@ -78,7 +78,7 @@ TrimSeqsCommand::TrimSeqsCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(fastaFile); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(fastaFile); //if user entered a file with a path then preserve it       
                        }
                
                        
@@ -87,7 +87,7 @@ TrimSeqsCommand::TrimSeqsCommand(string option)  {
                        string temp;
                        temp = validParameter.validFile(parameters, "flip", false);
                        if (temp == "not found"){       flip = 0;       }
-                       else if(isTrue(temp))   {       flip = 1;       }
+                       else if(m->isTrue(temp))        {       flip = 1;       }
                
                        temp = validParameter.validFile(parameters, "oligos", true);
                        if (temp == "not found"){       oligoFile = "";         }
@@ -126,7 +126,7 @@ TrimSeqsCommand::TrimSeqsCommand(string option)  {
                        convert(temp, qThreshold);
                        
                        temp = validParameter.validFile(parameters, "qtrim", false);            if (temp == "not found") { temp = "F"; }
-                       qtrim = isTrue(temp);
+                       qtrim = m->isTrue(temp);
 
                        temp = validParameter.validFile(parameters, "rollaverage", false);      if (temp == "not found") { temp = "0"; }
                        convert(temp, qRollAverage);
@@ -144,7 +144,7 @@ TrimSeqsCommand::TrimSeqsCommand(string option)  {
                        convert(temp, qAverage);
                        
                        temp = validParameter.validFile(parameters, "allfiles", false);         if (temp == "not found") { temp = "F"; }
-                       allFiles = isTrue(temp);
+                       allFiles = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "processors", false);       if (temp == "not found") { temp = "1"; }
                        convert(temp, processors); 
@@ -219,15 +219,15 @@ int TrimSeqsCommand::execute(){
                numFPrimers = 0;  //this needs to be initialized
                numRPrimers = 0;
                
-               string trimSeqFile = outputDir + getRootName(getSimpleName(fastaFile)) + "trim.fasta";
+               string trimSeqFile = outputDir + m->getRootName(m->getSimpleName(fastaFile)) + "trim.fasta";
                outputNames.push_back(trimSeqFile);
-               string scrapSeqFile = outputDir + getRootName(getSimpleName(fastaFile)) + "scrap.fasta";
+               string scrapSeqFile = outputDir + m->getRootName(m->getSimpleName(fastaFile)) + "scrap.fasta";
                outputNames.push_back(scrapSeqFile);
-               string trimQualFile = outputDir + getRootName(getSimpleName(fastaFile)) + "trim.qual";
+               string trimQualFile = outputDir + m->getRootName(m->getSimpleName(fastaFile)) + "trim.qual";
                outputNames.push_back(trimQualFile);
-               string scrapQualFile = outputDir + getRootName(getSimpleName(fastaFile)) + "scrap.qual";
+               string scrapQualFile = outputDir + m->getRootName(m->getSimpleName(fastaFile)) + "scrap.qual";
                outputNames.push_back(scrapQualFile);
-               string groupFile = outputDir + getRootName(getSimpleName(fastaFile)) + "groups";
+               string groupFile = outputDir + m->getRootName(m->getSimpleName(fastaFile)) + "groups";
                
                vector<string> fastaFileNames;
                vector<string> qualFileNames;
@@ -285,26 +285,26 @@ int TrimSeqsCommand::execute(){
                                        
                                        //append files
                                        for(int i=1;i<processors;i++){
-                                               appendFiles((trimSeqFile + toString(processIDS[i]) + ".temp"), trimSeqFile);
+                                               m->appendFiles((trimSeqFile + toString(processIDS[i]) + ".temp"), trimSeqFile);
                                                remove((trimSeqFile + toString(processIDS[i]) + ".temp").c_str());
-                                               appendFiles((scrapSeqFile + toString(processIDS[i]) + ".temp"), scrapSeqFile);
+                                               m->appendFiles((scrapSeqFile + toString(processIDS[i]) + ".temp"), scrapSeqFile);
                                                remove((scrapSeqFile + toString(processIDS[i]) + ".temp").c_str());
 
-                                               appendFiles((trimQualFile + toString(processIDS[i]) + ".temp"), trimQualFile);
+                                               m->appendFiles((trimQualFile + toString(processIDS[i]) + ".temp"), trimQualFile);
                                                remove((trimQualFile + toString(processIDS[i]) + ".temp").c_str());
-                                               appendFiles((scrapQualFile + toString(processIDS[i]) + ".temp"), scrapQualFile);
+                                               m->appendFiles((scrapQualFile + toString(processIDS[i]) + ".temp"), scrapQualFile);
                                                remove((scrapQualFile + toString(processIDS[i]) + ".temp").c_str());
                                                
-                                               appendFiles((groupFile + toString(processIDS[i]) + ".temp"), groupFile);
+                                               m->appendFiles((groupFile + toString(processIDS[i]) + ".temp"), groupFile);
                                                remove((groupFile + toString(processIDS[i]) + ".temp").c_str());
                                                for (int j = 0; j < fastaFileNames.size(); j++) {
-                                                       appendFiles((fastaFileNames[j] + toString(processIDS[i]) + ".temp"), fastaFileNames[j]);
+                                                       m->appendFiles((fastaFileNames[j] + toString(processIDS[i]) + ".temp"), fastaFileNames[j]);
                                                        remove((fastaFileNames[j] + toString(processIDS[i]) + ".temp").c_str());
                                                }
                                                
                                                if(qFileName != ""){
                                                        for (int j = 0; j < qualFileNames.size(); j++) {
-                                                               appendFiles((qualFileNames[j] + toString(processIDS[i]) + ".temp"), qualFileNames[j]);
+                                                               m->appendFiles((qualFileNames[j] + toString(processIDS[i]) + ".temp"), qualFileNames[j]);
                                                                remove((qualFileNames[j] + toString(processIDS[i]) + ".temp").c_str());
                                                        }
                                                }                                               
@@ -331,15 +331,15 @@ int TrimSeqsCommand::execute(){
                                                
                                                                                
                for(int i=0;i<fastaFileNames.size();i++){
-                       if (isBlank(fastaFileNames[i])) { remove(fastaFileNames[i].c_str());    }
+                       if (m->isBlank(fastaFileNames[i])) { remove(fastaFileNames[i].c_str()); }
                        else if (filesToRemove.count(fastaFileNames[i]) > 0) { remove(fastaFileNames[i].c_str()); }
                        else {
                                ifstream inFASTA;
                                string seqName;
-                               openInputFile(fastaFileNames[i], inFASTA);
+                               m->openInputFile(fastaFileNames[i], inFASTA);
                                ofstream outGroups;
-                               string outGroupFilename = outputDir + getRootName(getSimpleName(fastaFileNames[i])) + "groups";
-                               openOutputFile(outGroupFilename, outGroups);
+                               string outGroupFilename = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[i])) + "groups";
+                               m->openOutputFile(outGroupFilename, outGroups);
                                outputNames.push_back(outGroupFilename);
                                
                                string thisGroup = "";
@@ -364,12 +364,12 @@ int TrimSeqsCommand::execute(){
                
                if(qFileName != ""){
                        for(int i=0;i<qualFileNames.size();i++){
-                               if (isBlank(qualFileNames[i])) { remove(qualFileNames[i].c_str());      }
+                               if (m->isBlank(qualFileNames[i])) { remove(qualFileNames[i].c_str());   }
                                else if (filesToRemove.count(qualFileNames[i]) > 0) { remove(qualFileNames[i].c_str()); }
                                else {
                                        ifstream inQual;
                                        string seqName;
-                                       openInputFile(qualFileNames[i], inQual);
+                                       m->openInputFile(qualFileNames[i], inQual);
 //                                     ofstream outGroups;
 //                                     
 //                                     string thisGroup = "";
@@ -413,16 +413,16 @@ int TrimSeqsCommand::driverCreateTrim(string filename, string qFileName, string
        try {
                
                ofstream outFASTA;
-               int able = openOutputFile(trimFile, outFASTA);
+               int able = m->openOutputFile(trimFile, outFASTA);
                
                ofstream scrapFASTA;
-               openOutputFile(scrapFile, scrapFASTA);
+               m->openOutputFile(scrapFile, scrapFASTA);
                
                ofstream outQual;
                ofstream scrapQual;
                if(qFileName != ""){
-                       openOutputFile(trimQFile, outQual);
-                       openOutputFile(scrapQFile, scrapQual);
+                       m->openOutputFile(trimQFile, outQual);
+                       m->openOutputFile(scrapQFile, scrapQual);
                }
                
                ofstream outGroups;
@@ -431,7 +431,7 @@ int TrimSeqsCommand::driverCreateTrim(string filename, string qFileName, string
                
                
                if (oligoFile != "") {          
-                       openOutputFile(groupFile, outGroups);   
+                       m->openOutputFile(groupFile, outGroups);   
                        for (int i = 0; i < fastaNames.size(); i++) {
                        #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
                                fastaFileNames.push_back(new ofstream((fastaNames[i] + toString(getpid()) + ".temp").c_str(), ios::ate)); 
@@ -448,11 +448,11 @@ int TrimSeqsCommand::driverCreateTrim(string filename, string qFileName, string
                }
                
                ifstream inFASTA;
-               openInputFile(filename, inFASTA);
+               m->openInputFile(filename, inFASTA);
                inFASTA.seekg(line->start);
                
                ifstream qFile;
-               if(qFileName != "")     {       openInputFile(qFileName, qFile);        qFile.seekg(qline->start);  }
+               if(qFileName != "")     {       m->openInputFile(qFileName, qFile);     qFile.seekg(qline->start);  }
                
                bool done = false;
                int count = 0;
@@ -477,11 +477,11 @@ int TrimSeqsCommand::driverCreateTrim(string filename, string qFileName, string
                        int success = 1;
                        
 
-                       Sequence currSeq(inFASTA); gobble(inFASTA);
+                       Sequence currSeq(inFASTA); m->gobble(inFASTA);
 
                        QualityScores currQual;
                        if(qFileName != ""){
-                               currQual = QualityScores(qFile, currSeq.getNumBases());  gobble(qFile);
+                               currQual = QualityScores(qFile, currSeq.getNumBases());  m->gobble(qFile);
                        }
                        
                        string origSeq = currSeq.getUnaligned();
@@ -652,7 +652,7 @@ int TrimSeqsCommand::setLines(string filename, string qfilename, vector<unsigned
        try {
                
                //set file positions for fasta file
-               fastaFilePos = divideFile(filename, processors);
+               fastaFilePos = m->divideFile(filename, processors);
                
                if (qfilename == "") { return processors; }
                
@@ -660,7 +660,7 @@ int TrimSeqsCommand::setLines(string filename, string qfilename, vector<unsigned
                map<string, int> firstSeqNames;
                for (int i = 0; i < (fastaFilePos.size()-1); i++) {
                        ifstream in;
-                       openInputFile(filename, in);
+                       m->openInputFile(filename, in);
                        in.seekg(fastaFilePos[i]);
                
                        Sequence temp(in); 
@@ -671,11 +671,11 @@ int TrimSeqsCommand::setLines(string filename, string qfilename, vector<unsigned
                                
                //seach for filePos of each first name in the qfile and save in qfileFilePos
                ifstream inQual;
-               openInputFile(qfilename, inQual);
+               m->openInputFile(qfilename, inQual);
                        
                string input;
                while(!inQual.eof()){   
-                       input = getline(inQual);
+                       input = m->getline(inQual);
 
                        if (input.length() != 0) {
                                if(input[0] == '>'){ //this is a sequence name line
@@ -733,7 +733,7 @@ int TrimSeqsCommand::setLines(string filename, string qfilename, vector<unsigned
 void TrimSeqsCommand::getOligos(vector<string>& outFASTAVec, vector<string>& outQualVec){
        try {
                ifstream inOligos;
-               openInputFile(oligoFile, inOligos);
+               m->openInputFile(oligoFile, inOligos);
                
                ofstream test;
                
@@ -777,19 +777,19 @@ void TrimSeqsCommand::getOligos(vector<string>& outFASTAVec, vector<string>& out
                                        groupVector.push_back(group);
                                        
                                        if(allFiles){
-                                               outFASTAVec.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + group + ".fasta"));
+                                               outFASTAVec.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
                                                if(qFileName != ""){
-                                                       outQualVec.push_back((outputDir + getRootName(getSimpleName(qFileName)) + group + ".qual"));
+                                                       outQualVec.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
                                                }
                                                if (group == "") { //if there is not a group for this primer, then this file will not get written to, but we add it to keep the indexes correct
-                                                       filesToRemove.insert((outputDir + getRootName(getSimpleName(fastaFile)) + group + ".fasta"));
+                                                       filesToRemove.insert((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
                                                        if(qFileName != ""){
-                                                               filesToRemove.insert((outputDir + getRootName(getSimpleName(qFileName)) + group + ".qual"));
+                                                               filesToRemove.insert((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
                                                        }
                                                }else {
-                                                       outputNames.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + group + ".fasta"));
+                                                       outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
                                                        if(qFileName != ""){
-                                                               outputNames.push_back((outputDir + getRootName(getSimpleName(qFileName)) + group + ".qual"));
+                                                               outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
                                                        }                                                       
                                                }
                                        }
@@ -811,16 +811,16 @@ void TrimSeqsCommand::getOligos(vector<string>& outFASTAVec, vector<string>& out
                                        groupVector.push_back(group);
                                        
                                        if(allFiles){
-                                               outputNames.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + group + ".fasta"));
-                                               outFASTAVec.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + group + ".fasta"));
+                                               outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
+                                               outFASTAVec.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
                                                if(qFileName != ""){
-                                                       outQualVec.push_back((outputDir + getRootName(getSimpleName(qFileName)) + group + ".qual"));
-                                                       outputNames.push_back((outputDir + getRootName(getSimpleName(qFileName)) + group + ".qual"));
+                                                       outQualVec.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+                                                       outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
                                                }                                                       
                                        }
                                }else{  m->mothurOut(type + " is not recognized as a valid type. Choices are forward, reverse, and barcode. Ignoring " + oligo + "."); m->mothurOutEndLine();  }
                        }
-                       gobble(inOligos);
+                       m->gobble(inOligos);
                }
                
                inOligos.close();
@@ -831,13 +831,13 @@ void TrimSeqsCommand::getOligos(vector<string>& outFASTAVec, vector<string>& out
                        for (map<string, int>::iterator itBar = barcodes.begin(); itBar != barcodes.end(); itBar++) {
                                for (map<string, int>::iterator itPrime = primers.begin(); itPrime != primers.end(); itPrime++) {
                                        if (groupVector[itPrime->second] != "") { //there is a group for this primer
-                                               outputNames.push_back((outputDir + getRootName(getSimpleName(qFileName)) + groupVector[itBar->second] + "." + groupVector[itPrime->second] + ".fasta"));
-                                               outFASTAVec.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + groupVector[itBar->second] + "." + groupVector[itPrime->second] + ".fasta"));
+                                               outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + groupVector[itBar->second] + "." + groupVector[itPrime->second] + ".fasta"));
+                                               outFASTAVec.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + groupVector[itBar->second] + "." + groupVector[itPrime->second] + ".fasta"));
                                                combos[(groupVector[itBar->second] + "." + groupVector[itPrime->second])] = outFASTAVec.size()-1;
                                                
                                                if(qFileName != ""){
-                                                       outQualVec.push_back((outputDir + getRootName(getSimpleName(qFileName)) + groupVector[itBar->second] + "." + groupVector[itPrime->second] + ".qual"));
-                                                       outputNames.push_back((outputDir + getRootName(getSimpleName(qFileName)) + groupVector[itBar->second] + "." + groupVector[itPrime->second] + ".qual"));
+                                                       outQualVec.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + groupVector[itBar->second] + "." + groupVector[itPrime->second] + ".qual"));
+                                                       outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + groupVector[itBar->second] + "." + groupVector[itPrime->second] + ".qual"));
                                                }
                                        }
                                }
index 77cd4d7d686ed5607c11eb07d2245c62f2ef2deb..848c85c9d20f14f2ede20987026666ab2cd62181 100644 (file)
@@ -40,7 +40,7 @@ UnifracUnweightedCommand::UnifracUnweightedCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
                                                        
                        //check for optional parameter and set defaults
@@ -48,7 +48,7 @@ UnifracUnweightedCommand::UnifracUnweightedCommand(string option)  {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                                
@@ -56,26 +56,26 @@ UnifracUnweightedCommand::UnifracUnweightedCommand(string option)  {
                        convert(itersString, iters); 
                        
                        string temp = validParameter.validFile(parameters, "distance", false);                  if (temp == "not found") { temp = "false"; }
-                       phylip = isTrue(temp);
+                       phylip = m->isTrue(temp);
                        
                        temp = validParameter.validFile(parameters, "random", false);                                   if (temp == "not found") { temp = "true"; }
-                       random = isTrue(temp);
+                       random = m->isTrue(temp);
                        
                        if (!random) {  iters = 0;  } //turn off random calcs
                        
                        //if user selects distance = true and no groups it won't calc the pairwise
                        if ((phylip) && (Groups.size() == 0)) {
                                groups = "all";
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                
                        if (abort == false) {
                                T = globaldata->gTree;
                                tmap = globaldata->gTreemap;
-                               sumFile = outputDir + getSimpleName(globaldata->getTreeFile()) + ".uwsummary";
+                               sumFile = outputDir + m->getSimpleName(globaldata->getTreeFile()) + ".uwsummary";
                                outputNames.push_back(sumFile);
-                               openOutputFile(sumFile, outSum);
+                               m->openOutputFile(sumFile, outSum);
                                
                                util = new SharedUtil();
                                util->setGroups(globaldata->Groups, tmap->namesOfGroups, allGroups, numGroups, "unweighted");   //sets the groups the user wants to analyze
@@ -143,8 +143,8 @@ int UnifracUnweightedCommand::execute() {
                        counter = 0;
                        
                        if (random)  {  
-                               output = new ColumnFile(outputDir + getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".unweighted", itersString);
-                               outputNames.push_back(outputDir + getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".unweighted");
+                               output = new ColumnFile(outputDir + m->getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".unweighted", itersString);
+                               outputNames.push_back(outputDir + m->getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".unweighted");
                        }
                        
                        
@@ -317,11 +317,11 @@ void UnifracUnweightedCommand::printUWSummaryFile(int i) {
 /***********************************************************/
 void UnifracUnweightedCommand::createPhylipFile(int i) {
        try {
-               string phylipFileName = outputDir + getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".unweighted.dist";
+               string phylipFileName = outputDir + m->getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".unweighted.dist";
                outputNames.push_back(phylipFileName);
                
                ofstream out;
-               openOutputFile(phylipFileName, out);
+               m->openOutputFile(phylipFileName, out);
                        
                //output numSeqs
                out << globaldata->Groups.size() << endl;
index f092b0f2cf03c8e00d70e437af2219ad9c8def44..28d94d0adf502d21860099ba2928081169715e01 100644 (file)
@@ -40,7 +40,7 @@ UnifracWeightedCommand::UnifracWeightedCommand(string option) {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
                                                                                                                                        
                        //check for optional parameter and set defaults
@@ -48,7 +48,7 @@ UnifracWeightedCommand::UnifracWeightedCommand(string option) {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                                
@@ -56,10 +56,10 @@ UnifracWeightedCommand::UnifracWeightedCommand(string option) {
                        convert(itersString, iters); 
                        
                        string temp = validParameter.validFile(parameters, "distance", false);                  if (temp == "not found") { temp = "false"; }
-                       phylip = isTrue(temp);
+                       phylip = m->isTrue(temp);
                
                        temp = validParameter.validFile(parameters, "random", false);                                   if (temp == "not found") { temp = "true"; }
-                       random = isTrue(temp);
+                       random = m->isTrue(temp);
                        
                        if (!random) {  iters = 0;  } //turn off random calcs
 
@@ -67,8 +67,8 @@ UnifracWeightedCommand::UnifracWeightedCommand(string option) {
                        if (abort == false) {
                                T = globaldata->gTree;
                                tmap = globaldata->gTreemap;
-                               sumFile = outputDir + getSimpleName(globaldata->getTreeFile()) + ".wsummary";
-                               openOutputFile(sumFile, outSum);
+                               sumFile = outputDir + m->getSimpleName(globaldata->getTreeFile()) + ".wsummary";
+                               m->openOutputFile(sumFile, outSum);
                                outputNames.push_back(sumFile);
                                
                                util = new SharedUtil();
@@ -142,8 +142,8 @@ int UnifracWeightedCommand::execute() {
                        uScores.resize(numComp);  //data[0] = weightedscore AB, data[1] = weightedscore AC...
                        
                        if (random) {  
-                               output = new ColumnFile(outputDir + getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".weighted", itersString);  
-                               outputNames.push_back(outputDir + getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".weighted");
+                               output = new ColumnFile(outputDir + m->getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".weighted", itersString);  
+                               outputNames.push_back(outputDir + m->getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".weighted");
                        } 
 
                        userData = weighted->getValues(T[i]);  //userData[0] = weightedscore
@@ -348,10 +348,10 @@ void UnifracWeightedCommand::createPhylipFile() {
                //for each tree
                for (int i = 0; i < T.size(); i++) { 
                
-                       string phylipFileName = outputDir + getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".weighted.dist";
+                       string phylipFileName = outputDir + m->getSimpleName(globaldata->getTreeFile())  + toString(i+1) + ".weighted.dist";
                        outputNames.push_back(phylipFileName);
                        ofstream out;
-                       openOutputFile(phylipFileName, out);
+                       m->openOutputFile(phylipFileName, out);
                        
                        //output numSeqs
                        out << globaldata->Groups.size() << endl;
index 2a2a41cf0f6b823e3a781d9dabe53702e04d6f78..1f6ad9632bc1dccba63c3308cbb4065b6dc4eca6 100644 (file)
@@ -53,7 +53,7 @@ EstOutput Unweighted::getValues(Tree* t) {
        
                                        copyIpcount = t->tree[i].pcount;
                                        for (it = copyIpcount.begin(); it != copyIpcount.end();) {
-                                               if (inUsersGroups(it->first, groups) != true) { 
+                                               if (m->inUsersGroups(it->first, groups) != true) {      
                                                        copyIpcount.erase(it++);        
                                                }else { it++;  }
                                        }
@@ -107,7 +107,7 @@ EstOutput Unweighted::getValues(Tree* t) {
                                
                                copyIpcount = t->tree[i].pcount;
                                for (it = copyIpcount.begin(); it != copyIpcount.end();) {
-                                       if (inUsersGroups(it->first, groups) != true) { 
+                                       if (m->inUsersGroups(it->first, groups) != true) {      
                                                copyIpcount.erase(it++);        
                                        }else {  it++;  }
                                }
@@ -197,7 +197,7 @@ EstOutput Unweighted::getValues(Tree* t, string groupA, string groupB) {
                                        //This section adds in all lengths that are non leaf
                                        copyIpcount = copyTree->tree[i].pcount;
                                        for (it = copyIpcount.begin(); it != copyIpcount.end();) {
-                                               if (inUsersGroups(it->first, groups) != true) { 
+                                               if (m->inUsersGroups(it->first, groups) != true) {      
                                                        copyIpcount.erase(it++);        
                                                }else { it++;  }
                                        }
@@ -257,7 +257,7 @@ EstOutput Unweighted::getValues(Tree* t, string groupA, string groupB) {
                        
                                copyIpcount = copyTree->tree[i].pcount;
                                for (it = copyIpcount.begin(); it != copyIpcount.end();) {
-                                               if (inUsersGroups(it->first, groups) != true) { 
+                                               if (m->inUsersGroups(it->first, groups) != true) {      
                                                        copyIpcount.erase(it++);        
                                                }else { it++;  }
                                }
index 1faa651cd85dea92784a7dcc20cfc1fd3a2a1a9d..38a90940095b799634494a20ddf3d1688f2a0f3a 100644 (file)
@@ -69,7 +69,7 @@ bool ValidParameters::isValidParameter(string parameter, vector<string> cParams,
                vector<string> range = parameterRanges[parameter];
                
                vector<string> values;
-               splitAtDash(value, values);
+               m->splitAtDash(value, values);
                
                for(int i = 0; i < values.size(); i++) {
                        value = values.at(i);
@@ -233,14 +233,14 @@ string ValidParameters::validFile(map<string, string>& container, string paramet
                                if (pid == 0) {
                        #endif
 
-                               ableToOpen = openInputFile(it->second, in, "noerror");
+                               ableToOpen = m->openInputFile(it->second, in, "noerror");
                                
                                //if you can't open it, try default location
                                if (ableToOpen == 1) {
                                        if (m->getDefaultPath() != "") { //default path is set
-                                               string tryPath = m->getDefaultPath() + getSimpleName(it->second);
+                                               string tryPath = m->getDefaultPath() + m->getSimpleName(it->second);
                                                m->mothurOut("Unable to open " + it->second + ". Trying default " + tryPath); m->mothurOutEndLine();
-                                               ableToOpen = openInputFile(tryPath, in, "noerror");
+                                               ableToOpen = m->openInputFile(tryPath, in, "noerror");
                                                container[parameter] = tryPath;
                                        }
                                }
index 443c36ce95c0c8a8bb9233f2aa40c3518126e28d..dfa551966c66c46df5e28d48cce90eff7848986d 100644 (file)
--- a/venn.cpp
+++ b/venn.cpp
@@ -34,9 +34,9 @@ vector<string> Venn::getPic(SAbundVector* sabund, vector<Calculator*> vCalcs) {
                vector<string> outputNames;
                
                for(int i=0;i<vCalcs.size();i++){
-                       string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "." + sabund->getLabel() + "." + vCalcs[i]->getName() + ".svg";
+                       string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + "." + sabund->getLabel() + "." + vCalcs[i]->getName() + ".svg";
                        outputNames.push_back(filenamesvg);
-                       openOutputFile(filenamesvg, outsvg);
+                       m->openOutputFile(filenamesvg, outsvg);
                        
                        if (m->control_pressed) { outsvg.close(); return outputNames; }
 
@@ -88,9 +88,9 @@ vector<string> Venn::getPic(vector<SharedRAbundVector*> lookup, vector<Calculato
                        
                        //make a file for each calculator
                        for(int i=0;i<vCalcs.size();i++){
-                               string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + "." + vCalcs[i]->getName() + "." + lookup[0]->getGroup() + ".svg";
+                               string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + "." + vCalcs[i]->getName() + "." + lookup[0]->getGroup() + ".svg";
                                outputNames.push_back(filenamesvg);
-                               openOutputFile(filenamesvg, outsvg);
+                               m->openOutputFile(filenamesvg, outsvg);
                                
                                if (m->control_pressed) { outsvg.close(); return outputNames; }
                                
@@ -140,10 +140,10 @@ vector<string> Venn::getPic(vector<SharedRAbundVector*> lookup, vector<Calculato
                        
                        //make a file for each calculator
                        for(int i=0;i<vCalcs.size();i++){
-                               string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + "." + vCalcs[i]->getName() + "." + lookup[0]->getGroup() + "-" + lookup[1]->getGroup() + ".svg";
+                               string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + "." + vCalcs[i]->getName() + "." + lookup[0]->getGroup() + "-" + lookup[1]->getGroup() + ".svg";
 
                                outputNames.push_back(filenamesvg);
-                               openOutputFile(filenamesvg, outsvg);
+                               m->openOutputFile(filenamesvg, outsvg);
                                
                                if (m->control_pressed) { outsvg.close(); return outputNames; }
                                
@@ -215,10 +215,10 @@ vector<string> Venn::getPic(vector<SharedRAbundVector*> lookup, vector<Calculato
                        //make a file for each calculator
                        for(int i=0;i<vCalcs.size();i++){
                        
-                               string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + "." + vCalcs[i]->getName() + "." + lookup[0]->getGroup() + "-" + lookup[1]->getGroup() + "-" + lookup[2]->getGroup() + ".svg";
+                               string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + "." + vCalcs[i]->getName() + "." + lookup[0]->getGroup() + "-" + lookup[1]->getGroup() + "-" + lookup[2]->getGroup() + ".svg";
 
                                outputNames.push_back(filenamesvg);
-                               openOutputFile(filenamesvg, outsvg);
+                               m->openOutputFile(filenamesvg, outsvg);
                                
                                if (m->control_pressed) { outsvg.close(); return outputNames; }
                                
@@ -477,9 +477,9 @@ vector<string> Venn::getPic(vector<SharedRAbundVector*> lookup, vector<Calculato
                                
                                if ((vCalcs[i]->getName() != "sharedsobs") && (vCalcs[i]->getName() != "sharedchao")) { m->mothurOut(vCalcs[i]->getName() + " is not a valid calculator with four groups.  It will be disregarded. "); m->mothurOutEndLine(); }
                                else{
-                                       string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + "." + vCalcs[i]->getName() + "." + lookup[0]->getGroup() + "-" + lookup[1]->getGroup() + "-" + lookup[2]->getGroup() + "-" + lookup[3]->getGroup() + ".svg";
+                                       string filenamesvg = outputDir + m->getRootName(m->getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + "." + vCalcs[i]->getName() + "." + lookup[0]->getGroup() + "-" + lookup[1]->getGroup() + "-" + lookup[2]->getGroup() + "-" + lookup[3]->getGroup() + ".svg";
                                        outputNames.push_back(filenamesvg);
-                                       openOutputFile(filenamesvg, outsvg);
+                                       m->openOutputFile(filenamesvg, outsvg);
 
                                        if (m->control_pressed) { outsvg.close(); return outputNames; }
                                        
index 192611d15e01e2a307e5fca00287a817812968a9..608c0a06a93b955c6021dbb565df7b3d98cb13ea 100644 (file)
@@ -52,7 +52,7 @@ VennCommand::VennCommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it  
+                               outputDir += m->hasPath(globaldata->inputFileName); //if user entered a file with a path then preserve it       
                        }
 
                        //check for optional parameter and set defaults
@@ -60,7 +60,7 @@ VennCommand::VennCommand(string option)  {
                        label = validParameter.validFile(parameters, "label", false);                   
                        if (label == "not found") { label = ""; }
                        else { 
-                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               if(label != "all") {  m->splitAtDash(label, labels);  allLines = 0;  }
                                else { allLines = 1;  }
                        }
                        
@@ -73,7 +73,7 @@ VennCommand::VennCommand(string option)  {
                        groups = validParameter.validFile(parameters, "groups", false);                 
                        if (groups == "not found") { groups = ""; }
                        else { 
-                               splitAtDash(groups, Groups);
+                               m->splitAtDash(groups, Groups);
                                globaldata->Groups = Groups;
                        }
                        
@@ -89,7 +89,7 @@ VennCommand::VennCommand(string option)  {
                                        else { calc = "sharedsobs"; }
                                }
                        }
-                       splitAtDash(calc, Estimators);
+                       m->splitAtDash(calc, Estimators);
                        
                        string temp;
                        temp = validParameter.validFile(parameters, "abund", false);            if (temp == "not found") { temp = "10"; }
@@ -240,7 +240,7 @@ int VennCommand::execute(){
                                        for(int i = 0; i < outfilenames.size(); i++) { if (outfilenames[i] != "control" ) { outputNames.push_back(outfilenames[i]); }  }
                                }
                                
-                               if ((anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                               if ((m->anyLabelsToProcess(lookup[0]->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = lookup[0]->getLabel();
                                        
                                        for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  } 
@@ -342,7 +342,7 @@ int VennCommand::execute(){
                                        userLabels.erase(sabund->getLabel());
                                }
                                
-                               if ((anyLabelsToProcess(sabund->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                               if ((m->anyLabelsToProcess(sabund->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
                                        string saveLabel = sabund->getLabel();
                                
                                        delete sabund;
index a114d2ca0756c6fe671dc135acf0254ad1d5bf92..faa1ff76697e88a4f7e0bb06c1e2e44df7c53a2d 100644 (file)
@@ -55,9 +55,9 @@ EstOutput Weighted::getValues(Tree* t) {
                                        }
                                                
                                        //is this sum from a sequence which is in one of the users groups
-                                       if (inUsersGroups(t->tree[v].getGroup(), globaldata->Groups) == true) {
+                                       if (m->inUsersGroups(t->tree[v].getGroup(), globaldata->Groups) == true) {
                                                //is this sum from a sequence which is in this groupCombo
-                                               if (inUsersGroups(t->tree[v].getGroup(), groups)) {
+                                               if (m->inUsersGroups(t->tree[v].getGroup(), groups)) {
                                                        int numSeqsInGroupI, numSeqsInGroupL;
                                                        
                                                        map<string, int>::iterator it;
@@ -174,7 +174,7 @@ EstOutput Weighted::getValues(Tree* t, string groupA, string groupB) {
                                sum += abs(t->tree[index].getBranchLength());
                        }
                                                
-                       if (inUsersGroups(t->tree[v].getGroup(), groups)) {
+                       if (m->inUsersGroups(t->tree[v].getGroup(), groups)) {
                                int numSeqsInGroupI, numSeqsInGroupL;
                                                        
                                map<string, int>::iterator it;