]> git.donarmstrong.com Git - mothur.git/commitdiff
some changes while testing 1.9
authorwestcott <westcott>
Wed, 14 Apr 2010 11:32:59 +0000 (11:32 +0000)
committerwestcott <westcott>
Wed, 14 Apr 2010 11:32:59 +0000 (11:32 +0000)
39 files changed:
Mothur.xcodeproj/project.pbxproj
bayesian.cpp
chimeraccodecommand.cpp
chimeracheckcommand.cpp
chimerapintailcommand.cpp
chimeraslayercommand.cpp
classifyseqscommand.cpp
cluster.cpp
clustercommand.cpp
filterseqscommand.cpp
filterseqscommand.h
getrabundcommand.cpp
getsabundcommand.cpp
globaldata.cpp
hclustercommand.cpp
heatmapcommand.cpp
makefile [new file with mode: 0644]
mgclustercommand.cpp
mothur.cpp
mothur.h
mothurout.cpp
mothurout.h
nameassignment.cpp
parselistscommand.cpp
parsesffcommand.cpp
phylotree.cpp
phylotree.h
phylotypecommand.cpp
readcluster.cpp
readcluster.h
readcolumn.cpp
readotucommand.cpp
removeseqscommand.cpp
setdircommand.cpp
sharedrabundvector.cpp
sparsematrix.cpp
taxonomyequalizer.cpp
taxonomyequalizer.h
validparameter.cpp

index 24351a06ea744778b9b463d2ebeec5572b9b5dd2..8fc67bd1b0beb07be0fb77d33c21dacc497932d9 100644 (file)
@@ -11,6 +11,7 @@
                A747E79C1163442A00FB9042 /* chimeracheckcommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = chimeracheckcommand.cpp; sourceTree = "<group>"; };
                A747E81C116365E000FB9042 /* chimeraslayercommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chimeraslayercommand.h; sourceTree = "<group>"; };
                A747E81D116365E000FB9042 /* chimeraslayercommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = chimeraslayercommand.cpp; sourceTree = "<group>"; };
+               A7639F8D1175DF35008F5578 /* makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = makefile; sourceTree = "<group>"; };
                A78254461164D7790002E2DD /* chimerapintailcommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chimerapintailcommand.h; sourceTree = "<group>"; };
                A78254471164D7790002E2DD /* chimerapintailcommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = chimerapintailcommand.cpp; sourceTree = "<group>"; };
                A7825502116519F70002E2DD /* chimerabellerophoncommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chimerabellerophoncommand.h; sourceTree = "<group>"; };
                08FB7794FE84155DC02AAC07 /* mothur */ = {
                        isa = PBXGroup;
                        children = (
+                               A7639F8D1175DF35008F5578 /* makefile */,
                                A7DA1FF0113FECD400BF472F /* alignment.cpp */,
                                A7DA1FF1113FECD400BF472F /* alignment.hpp */,
                                A7DA1FF6113FECD400BF472F /* averagelinkage.cpp */,
index af1fa27f2202de76086e562c775229f4f241e387..b007c006dc741c2fd1755d60dcee7d3f5942aa39 100644 (file)
@@ -33,11 +33,11 @@ Classify(tfile, tempFile, method, ksize, 0.0, 0.0, 0.0, 0.0), kmerSize(ksize), c
                
                /************calculate the probablity that each word will be in a specific taxonomy*************/
                ofstream out;
-               string probFileName = tempFile.substr(0,tempFile.find_last_of(".")+1) + char('0'+ kmerSize) + "mer.prob";
+               string probFileName = tfile.substr(0,tfile.find_last_of(".")+1) + tempFile.substr(0,tempFile.find_last_of(".")+1) + char('0'+ kmerSize) + "mer.prob";
                ifstream probFileTest(probFileName.c_str());
                
                ofstream out2;
-               string probFileName2 = tempFile.substr(0,tempFile.find_last_of(".")+1) + char('0'+ kmerSize) + "mer.numNonZero";
+               string probFileName2 = tfile.substr(0,tfile.find_last_of(".")+1) + tempFile.substr(0,tempFile.find_last_of(".")+1) + char('0'+ kmerSize) + "mer.numNonZero";
                ifstream probFileTest2(probFileName2.c_str());
                
                int start = time(NULL);
@@ -106,15 +106,21 @@ string Bayesian::getTaxonomy(Sequence* seq) {
                //get words contained in query
                //getKmerString returns a string where the index in the string is hte kmer number 
                //and the character at that index can be converted to be the number of times that kmer was seen
+
                string queryKmerString = kmer.getKmerString(seq->getUnaligned()); 
+
                vector<int> queryKmers;
                for (int i = 0; i < queryKmerString.length(); i++) {
                        if (queryKmerString[i] != '!') { //this kmer is in the query
                                queryKmers.push_back(i);
                        }
                }
-       
+               
+               if (queryKmers.size() == 0) {  m->mothurOut(seq->getName() + "is bad."); m->mothurOutEndLine(); return "bad seq"; }
+               
                int index = getMostProbableTaxonomy(queryKmers);
+
                
                if (m->control_pressed) { return tax; }
                                        
@@ -171,9 +177,10 @@ string Bayesian::bootstrapResults(vector<int> kmers, int tax, int numToSelect) {
                                }else{
                                        confidenceScores[taxonomy.level][taxonomy.name]++;
                                }
-                       
+               
                                taxonomy = phyloTree->get(taxonomy.parent);
                        }
+       
                }
                
                string confidenceTax = "";
@@ -181,7 +188,7 @@ string Bayesian::bootstrapResults(vector<int> kmers, int tax, int numToSelect) {
                TaxNode seqTax = phyloTree->get(tax);
                
                while (seqTax.level != 0) { //while you are not at the root
-                               
+                                       
                                itBoot2 = confidenceScores[seqTax.level].find(seqTax.name); //is this a classification we already have a count on
                                
                                int confidence = 0;
@@ -197,6 +204,7 @@ string Bayesian::bootstrapResults(vector<int> kmers, int tax, int numToSelect) {
                                seqTax = phyloTree->get(seqTax.parent);
                }
                
+               if (confidenceTax == "") { confidenceTax = "unclassified;"; simpleTax = "unclassified;"; }
                return confidenceTax;
                
        }
@@ -208,12 +216,11 @@ string Bayesian::bootstrapResults(vector<int> kmers, int tax, int numToSelect) {
 /**************************************************************************************************/
 int Bayesian::getMostProbableTaxonomy(vector<int> queryKmer) {
        try {
-               int indexofGenus;
+               int indexofGenus = 0;
                
                double maxProbability = -1000000.0;
                //find taxonomy with highest probability that this sequence is from it
                for (int k = 0; k < genusNodes.size(); k++) {
-               
                        //for each taxonomy calc its probability
                        double prob = 1.0;
                        for (int i = 0; i < queryKmer.size(); i++) {
index 748163e04d447258b3a1e0ecfe62ea70ef382801..a18fd4fee9cb20b40cc04bcead6924234f32467b 100644 (file)
@@ -371,7 +371,7 @@ int ChimeraCcodeCommand::execute(){
 
                #else
                        ifstream inFASTA;
-                       openInputFile(candidateFileNames[s], inFASTA);
+                       openInputFile(fastafile, inFASTA);
                        numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
                        inFASTA.close();
                        lines.push_back(new linePair(0, numSeqs));
index ba5e5be5fafaf958c02b2dd2421eac9637f51c41..d80cce65cfe21703d9b57f94133040685b2fca76 100644 (file)
@@ -294,7 +294,7 @@ int ChimeraCheckCommand::execute(){
 
                #else
                        ifstream inFASTA;
-                       openInputFile(candidateFileNames[s], inFASTA);
+                       openInputFile(fastafile, inFASTA);
                        numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
                        inFASTA.close();
                        lines.push_back(new linePair(0, numSeqs));
index 919285db14ede39d0afb0a2fff88960869159f50..f565fd301c86126358846076f25e048518c38a10 100644 (file)
@@ -21,7 +21,7 @@ ChimeraPintailCommand::ChimeraPintailCommand(string option)  {
                
                else {
                        //valid paramters for this command
-                       string Array[] =  {"fasta","filter","processors","window" "increment","template","conservation","quantile","mask","outputdir","inputdir"};
+                       string Array[] =  {"fasta","filter","processors","window" ,"increment","template","conservation","quantile","mask","outputdir","inputdir"};
                        vector<string> myArray (Array, Array+(sizeof(Array)/sizeof(string)));
                        
                        OptionParser parser(option);
@@ -381,7 +381,7 @@ int ChimeraPintailCommand::execute(){
 
                #else
                        ifstream inFASTA;
-                       openInputFile(candidateFileNames[s], inFASTA);
+                       openInputFile(fastafile, inFASTA);
                        numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
                        inFASTA.close();
                        lines.push_back(new linePair(0, numSeqs));
index 336dba939f1fd114c6ace70f1ddc2501448df336..1a5ae09df87ee9e37abbf81621b0da532a4549dd 100644 (file)
@@ -405,7 +405,7 @@ int ChimeraSlayerCommand::execute(){
 
                #else
                        ifstream inFASTA;
-                       openInputFile(candidateFileNames[s], inFASTA);
+                       openInputFile(fastafile, inFASTA);
                        numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
                        inFASTA.close();
                        lines.push_back(new linePair(0, numSeqs));
index a9f0a36a2a440e17e8f4f433954c766abba041ed..26df57ffbb56d6ddd0cc3532013c2be65fe5e3f8 100644 (file)
@@ -313,6 +313,7 @@ int ClassifySeqsCommand::execute(){
                        for (int i = 0; i < lines.size(); i++) {  delete lines[i];  }  lines.clear();
                        
 #ifdef USE_MPI 
+
                                int pid, end, numSeqsPerProcessor; 
                                int tag = 2001;
                                vector<long> MPIPos;
@@ -392,6 +393,7 @@ int ClassifySeqsCommand::execute(){
                                MPI_File_close(&outMPITempTax);
                                
 #else
+
                        //read namefile
                        if(namefile != "") {
                                nameMap.clear(); //remove old names
@@ -469,7 +471,9 @@ int ClassifySeqsCommand::execute(){
                        driver(lines[0], newTaxonomyFile, tempTaxonomyFile, fastaFileNames[s]);
        #endif  
 #endif
-
+               
+               delete classify;
+               
                #ifdef USE_MPI  
                        if (pid == 0) {  //this part does not need to be paralellized
                #endif
@@ -484,6 +488,7 @@ int ClassifySeqsCommand::execute(){
                
                        //read in users taxonomy file and add sequences to tree
                        string name, taxon;
+
                        while(!in.eof()){
                                in >> name >> taxon; gobble(in);
                                
@@ -561,7 +566,6 @@ int ClassifySeqsCommand::execute(){
                        m->mothurOut("It took " + toString(time(NULL) - start) + " secs to classify " + toString(numFastaSeqs) + " sequences."); m->mothurOutEndLine(); m->mothurOutEndLine();
                }
                
-               delete classify;
                return 0;
        }
        catch(exception& e) {
@@ -677,13 +681,13 @@ int ClassifySeqsCommand::driver(linePair* line, string taxFName, string tempTFNa
                        if (m->control_pressed) { return 0; }
                        
                        Sequence* candidateSeq = new Sequence(inFASTA);
-                       
+       
                        if (candidateSeq->getName() != "") {
                                taxonomy = classify->getTaxonomy(candidateSeq);
                                
                                if (m->control_pressed) { delete candidateSeq; return 0; }
 
-                               if (taxonomy != "bad seq") {
+                               if ((taxonomy != "bad seq") && (taxonomy != "")) {
                                        //output confidence scores or not
                                        if (probs) {
                                                outTax << candidateSeq->getName() << '\t' << taxonomy << endl;
@@ -692,7 +696,7 @@ int ClassifySeqsCommand::driver(linePair* line, string taxFName, string tempTFNa
                                        }
                                        
                                        outTaxSimple << candidateSeq->getName() << '\t' << classify->getSimpleTax() << endl;
-                               }
+                               }else{  m->mothurOut("Sequence: " + candidateSeq->getName() + " is bad."); m->mothurOutEndLine();  }
                        }                               
                        delete candidateSeq;
                        
@@ -744,7 +748,7 @@ int ClassifySeqsCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_File
                        if (candidateSeq->getName() != "") {
                                taxonomy = classify->getTaxonomy(candidateSeq);
                                
-                               if (taxonomy != "bad seq") {
+                               if ((taxonomy != "bad seq") && (taxonomy != ""))  {
                                        //output confidence scores or not
                                        if (probs) {
                                                outputString =  candidateSeq->getName() + "\t" + taxonomy + "\n";
@@ -764,7 +768,7 @@ int ClassifySeqsCommand::driverMPI(int start, int num, MPI_File& inMPI, MPI_File
                                        strcpy(buf, outputString.c_str()); 
                                
                                        MPI_File_write_shared(tempFile, buf, length, MPI_CHAR, &statusTemp);
-                               }
+                               }else{  cout << "Sequence: " << candidateSeq->getName() << " is bad." << endl;  }
                        }                               
                        delete candidateSeq;
                        
index e2d307e1bfbce54162b55a7368b58180205f87e5..96ca44061436f873ee8b663e248ddcc386c995cb 100644 (file)
@@ -50,14 +50,17 @@ rabund(rav), list(lv), dMatrix(dm), method(f)
        // a list contains pointers (iterators) to the all distances related
        // to a certain sequence. The Vector is accessed via the index of a 
        // sequence in the distance matrix.
-       
-
+//ofstream outtemp;
+//string temp = "temp";
+//openOutputFile(temp, outtemp);       
+//cout << lv->size() << endl;
        seqVec = vector<MatVec>(lv->size());
        for (MatData currentCell = dMatrix->begin(); currentCell != dMatrix->end(); currentCell++) {
+//outtemp << currentCell->row << '\t' << currentCell->column  << '\t' << currentCell->dist << endl;
                seqVec[currentCell->row].push_back(currentCell);
                seqVec[currentCell->column].push_back(currentCell);
        }
-
+//outtemp.close();
        mapWanted = false;  //set to true by mgcluster to speed up overlap merge
        
        //save so you can modify as it changes in average neighbor
@@ -74,11 +77,16 @@ void Cluster::getRowColCells() {
                smallRow = smallCell->row;              // get its row
                smallCol = smallCell->column;   // get its column
                smallDist = smallCell->dist;    // get the smallest distance
-       
+       //cout << "small row = " << smallRow << "small col = " << smallCol << "small dist = " << smallDist << endl;
+        
                rowCells = seqVec[smallRow];    // all distances related to the row index
                colCells = seqVec[smallCol];    // all distances related to the column index
                nRowCells = rowCells.size();
                nColCells = colCells.size();
+//cout << "num rows = " << nRowCells << "num col = " << nColCells << endl;
+               
+               //for (int i = 0; i < nColCells; i++) { cout << colCells[i]->row << '\t' << colCells[i]->column << endl;  }
+               //for (int i = 0; i < nRowCells; i++) { cout << rowCells[i]->row << '\t' << rowCells[i]->column << endl;  }
        }
        catch(exception& e) {
                m->errorOut(e, "Cluster", "getRowColCells");
@@ -132,7 +140,9 @@ void Cluster::removeCell(const MatData& cell, int vrow, int vcol, bool rmMatrix)
                        seqVec[dcol].erase(seqVec[dcol].begin()+vcol);
                
                        if (rmMatrix) {
+                       //cout << " removing = " << cell->row << '\t' << cell->column  << '\t' << cell->dist << endl;
                                dMatrix->rmCell(cell);
+               //      cout << "done" << endl;
                        }
                
        }
@@ -188,6 +198,7 @@ void Cluster::clusterNames(){
 void Cluster::update(double& cutOFF){
        try {
                getRowColCells();       
+//cout << "got rowcells" << endl;
 
                vector<int> foundCol(nColCells, 0);
 
index 5e6a9b45aea94babdb66d7c928f48b323e88d573..6f6e309331df3caf27dc5d2d0c6d4e19ab246590 100644 (file)
@@ -154,7 +154,7 @@ int ClusterCommand::execute(){
                double saveCutoff = cutoff;
                
                while (matrix->getSmallDist() < cutoff && matrix->getNNodes() > 0){
-       
+               
                        if (m->control_pressed) { //clean up
                                delete globaldata->gSparseMatrix;  globaldata->gSparseMatrix = NULL;
                                delete globaldata->gListVector;  globaldata->gListVector = NULL;
index 3d3062b4cc371848fdbd222b7985415a41e62e57..b992750f1d4fafa1374c9a8a804758cd71ba9cfc 100644 (file)
@@ -637,40 +637,45 @@ string FilterSeqsCommand::createFilter() {
                MPI_Status status;
                
                MPI_Comm_rank(MPI_COMM_WORLD, &pid); 
-               if (pid == 0) { //only one process should output the filter
                
-                       vector<int> temp; temp.resize(alignmentLength+1);
-                                                       
-                       //get the frequencies from the child processes
-                       for(int i = 0; i < ((processors-1)*5); i++) { 
-                               MPI_Recv(&temp[0], (alignmentLength+1), MPI_INT, MPI_ANY_SOURCE, 2001, MPI_COMM_WORLD, &status); 
-                               int receiveTag = temp[temp.size()-1];  //child process added a int to the end to indicate what letter count this is for
-                               
-                               if (receiveTag == Atag) { //you are recieveing the A frequencies
-                                       for (int k = 0; k < alignmentLength; k++) {             F.a[k] += temp[k];      }
-                               }else if (receiveTag == Ttag) { //you are recieveing the T frequencies
-                                       for (int k = 0; k < alignmentLength; k++) {             F.t[k] += temp[k];      }
-                               }else if (receiveTag == Ctag) { //you are recieveing the C frequencies
-                                       for (int k = 0; k < alignmentLength; k++) {             F.c[k] += temp[k];      }
-                               }else if (receiveTag == Gtag) { //you are recieveing the G frequencies
-                                       for (int k = 0; k < alignmentLength; k++) {             F.g[k] += temp[k];      }
-                               }else if (receiveTag == Gaptag) { //you are recieveing the gap frequencies
-                                       for (int k = 0; k < alignmentLength; k++) {             F.gap[k] += temp[k];    }
-                               }
-                       } 
-               }else{
-               
-                       //send my fequency counts
-                       F.a.push_back(Atag);
-                       int ierr = MPI_Send(&(F.a[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
-                       F.t.push_back(Ttag);
-                       ierr = MPI_Send (&(F.t[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
-                       F.c.push_back(Ctag);
-                       ierr = MPI_Send(&(F.c[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
-                       F.g.push_back(Gtag);
-                       ierr = MPI_Send(&(F.g[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
-                       F.gap.push_back(Gaptag);
-                       ierr = MPI_Send(&(F.gap[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
+               if(trump != '*' || isTrue(vertical) || soft != 0){
+                       
+                       if (pid == 0) { //only one process should output the filter
+                       
+                               vector<int> temp; temp.resize(alignmentLength+1);
+                                                               
+                               //get the frequencies from the child processes
+                               for(int i = 0; i < ((processors-1)*5); i++) { 
+                                       MPI_Recv(&temp[0], (alignmentLength+1), MPI_INT, MPI_ANY_SOURCE, 2001, MPI_COMM_WORLD, &status); 
+                                       int receiveTag = temp[temp.size()-1];  //child process added a int to the end to indicate what letter count this is for
+                                       
+                                       if (receiveTag == Atag) { //you are recieveing the A frequencies
+                                               for (int k = 0; k < alignmentLength; k++) {             F.a[k] += temp[k];      }
+                                       }else if (receiveTag == Ttag) { //you are recieveing the T frequencies
+                                               for (int k = 0; k < alignmentLength; k++) {             F.t[k] += temp[k];      }
+                                       }else if (receiveTag == Ctag) { //you are recieveing the C frequencies
+                                               for (int k = 0; k < alignmentLength; k++) {             F.c[k] += temp[k];      }
+                                       }else if (receiveTag == Gtag) { //you are recieveing the G frequencies
+                                               for (int k = 0; k < alignmentLength; k++) {             F.g[k] += temp[k];      }
+                                       }else if (receiveTag == Gaptag) { //you are recieveing the gap frequencies
+                                               for (int k = 0; k < alignmentLength; k++) {             F.gap[k] += temp[k];    }
+                                       }
+                               } 
+                       }else{
+                       
+                               //send my fequency counts
+                               F.a.push_back(Atag);
+                               int ierr = MPI_Send(&(F.a[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
+                               F.t.push_back(Ttag);
+                               ierr = MPI_Send (&(F.t[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
+                               F.c.push_back(Ctag);
+                               ierr = MPI_Send(&(F.c[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
+                               F.g.push_back(Gtag);
+                               ierr = MPI_Send(&(F.g[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
+                               F.gap.push_back(Gaptag);
+                               ierr = MPI_Send(&(F.gap[0]), (alignmentLength+1), MPI_INT, 0, 2001, MPI_COMM_WORLD);
+                       }
+                       
                }
                
                if (pid == 0) { //only one process should output the filter
index 3c46036468401352987fb9d6cb61b48447613dab..848d08a30e29c665f028a31c9f9dd97e0a113c5d 100644 (file)
@@ -1,61 +1,60 @@
-#ifndef FILTERSEQSCOMMAND_H
-#define FILTERSEQSCOMMAND_H
-
-/*
- *  filterseqscommand.h
- *  Mothur
- *
- *  Created by Thomas Ryabin on 5/4/09.
- *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
- *
- */
-
-#include "command.hpp"
-#include "filters.h"
-#include "mpi.h"
-
-class Sequence;
-class FilterSeqsCommand : public Command {
-
-public:
-       FilterSeqsCommand(string);
-       ~FilterSeqsCommand() {};
-       int execute();  
-       void help();
-       
-private:
-       struct linePair {
-               int start;
-               int num;
-               linePair(long int i, long int j) : start(i), num(j) {}
-       };
-       vector<linePair*> lines;
-       vector<int> processIDS;
-
-       string vertical, filter, fasta, hard, outputDir, filterFileName;
-       vector<string> fastafileNames;  
-       int alignmentLength, processors;
-       vector<int> bufferSizes;
-       vector<string> outputNames;
-
-       char trump;
-       bool abort;
-       float soft;
-       int numSeqs;
-       
-       string createFilter();
-       int filterSequences();
-       int createProcessesCreateFilter(Filters&, string);
-       int createProcessesRunFilter(string, string);
-       int driverRunFilter(string, string, string, linePair*);
-       int driverCreateFilter(Filters& F, string filename, linePair* line);
-       #ifdef USE_MPI
-       int driverMPIRun(int, int, MPI_File&, MPI_File&, vector<long>&);
-       int MPICreateFilter(int, int, Filters&, MPI_File&, vector<long>&);      
-       #endif
-       int setLines(string);
-       
-       
-};
-
-#endif
+#ifndef FILTERSEQSCOMMAND_H\r
+#define FILTERSEQSCOMMAND_H\r
+\r
+/*\r
+ *  filterseqscommand.h\r
+ *  Mothur\r
+ *\r
+ *  Created by Thomas Ryabin on 5/4/09.\r
+ *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.\r
+ *\r
+ */\r
+\r
+#include "command.hpp"\r
+#include "filters.h"\r
+\r
+class Sequence;\r
+class FilterSeqsCommand : public Command {\r
+\r
+public:\r
+       FilterSeqsCommand(string);\r
+       ~FilterSeqsCommand() {};\r
+       int execute();  \r
+       void help();\r
+       \r
+private:\r
+       struct linePair {\r
+               int start;\r
+               int num;\r
+               linePair(long int i, long int j) : start(i), num(j) {}\r
+       };\r
+       vector<linePair*> lines;\r
+       vector<int> processIDS;\r
+\r
+       string vertical, filter, fasta, hard, outputDir, filterFileName;\r
+       vector<string> fastafileNames;  \r
+       int alignmentLength, processors;\r
+       vector<int> bufferSizes;\r
+       vector<string> outputNames;\r
+\r
+       char trump;\r
+       bool abort;\r
+       float soft;\r
+       int numSeqs;\r
+       \r
+       string createFilter();\r
+       int filterSequences();\r
+       int createProcessesCreateFilter(Filters&, string);\r
+       int createProcessesRunFilter(string, string);\r
+       int driverRunFilter(string, string, string, linePair*);\r
+       int driverCreateFilter(Filters& F, string filename, linePair* line);\r
+       #ifdef USE_MPI\r
+       int driverMPIRun(int, int, MPI_File&, MPI_File&, vector<long>&);\r
+       int MPICreateFilter(int, int, Filters&, MPI_File&, vector<long>&);      \r
+       #endif\r
+       int setLines(string);\r
+       \r
+       \r
+};\r
+\r
+#endif\r
index 6b68c32cad7673b950eeb8acfe6423b160630130..b665c88cdede4273b1aadd5bf1d4ee21ddec6b85 100644 (file)
@@ -120,7 +120,7 @@ int GetRAbundCommand::execute(){
                set<string> processedLabels;
                set<string> userLabels = labels;
                
-               if (m->control_pressed) {  out.close(); remove(filename.c_str()); delete read; delete input; delete list; globaldata->gListVector = NULL;  return 0; }
+               if (m->control_pressed) {  out.close(); remove(filename.c_str());  delete list; globaldata->gListVector = NULL;  return 0; }
                
                while((list != NULL) && ((allLines == 1) || (userLabels.size() != 0))) {
                        
@@ -129,7 +129,7 @@ int GetRAbundCommand::execute(){
                                        rabund = new RAbundVector();                            
                                        *rabund = (list->getRAbundVector());
                                        
-                                       if (m->control_pressed) {  out.close(); remove(filename.c_str()); delete read; delete input; delete list; delete rabund; globaldata->gListVector = NULL;  return 0; }
+                                       if (m->control_pressed) {  out.close(); remove(filename.c_str());  delete list; delete rabund; globaldata->gListVector = NULL;  return 0; }
 
                                        
                                        if(sorted)      {   rabund->print(out);                         }
@@ -151,7 +151,7 @@ int GetRAbundCommand::execute(){
                                        rabund = new RAbundVector();
                                        *rabund = (list->getRAbundVector());
                                        
-                                       if (m->control_pressed) {  out.close(); remove(filename.c_str()); delete read; delete input; delete list; delete rabund; globaldata->gListVector = NULL;  return 0; }
+                                       if (m->control_pressed) {  out.close(); remove(filename.c_str());  delete list; delete rabund; globaldata->gListVector = NULL;  return 0; }
                                        
                                        if(sorted)      {   rabund->print(out);                         }
                                        else            {       rabund->nonSortedPrint(out);    }
@@ -193,7 +193,7 @@ int GetRAbundCommand::execute(){
                        rabund = new RAbundVector();
                        *rabund = (list->getRAbundVector());
                        
-                       if (m->control_pressed) {  out.close(); remove(filename.c_str()); delete read; delete input; delete list; delete rabund; globaldata->gListVector = NULL;  return 0; }
+                       if (m->control_pressed) {  out.close(); remove(filename.c_str());  delete list; delete rabund; globaldata->gListVector = NULL;  return 0; }
                        
                        if(sorted)      {   rabund->print(out);                         }
                        else            {       rabund->nonSortedPrint(out);    }
@@ -206,11 +206,10 @@ int GetRAbundCommand::execute(){
                m->mothurOut("Output File Name: "); m->mothurOutEndLine();
                m->mothurOut(filename); m->mothurOutEndLine();  
                m->mothurOutEndLine();
-
                
                out.close(); 
-               delete read; delete input;
-               globaldata->gListVector = NULL; 
+               
+               globaldata->gListVector = NULL;
                
                return 0;               
        }
index 9260a5c0fea40ce63bf77ed4f20a12f437b9a08a..ca8c8a66a9445c21a7472301dce1bce71abe34b3 100644 (file)
@@ -115,7 +115,7 @@ int GetSAbundCommand::execute(){
                set<string> processedLabels;
                set<string> userLabels = labels;
                
-               if (m->control_pressed) {  out.close(); remove(filename.c_str()); delete read; delete input; delete order; globaldata->gorder = NULL;  return 0; }
+               if (m->control_pressed) {  out.close(); remove(filename.c_str());  delete order; globaldata->gorder = NULL;  return 0; }
 
                
                while((order != NULL) && ((allLines == 1) || (userLabels.size() != 0))) {
@@ -127,7 +127,7 @@ int GetSAbundCommand::execute(){
                                        sabund->print(out);
                                        delete sabund;
                                        
-                                       if (m->control_pressed) {  out.close(); remove(filename.c_str()); delete read; delete input; delete order; globaldata->gorder = NULL;  return 0; }
+                                       if (m->control_pressed) {  out.close(); remove(filename.c_str());  delete order; globaldata->gorder = NULL;  return 0; }
 
                                        processedLabels.insert(order->getLabel());
                                        userLabels.erase(order->getLabel());
@@ -145,7 +145,7 @@ int GetSAbundCommand::execute(){
                                        sabund->print(out);
                                        delete sabund;
                                        
-                                       if (m->control_pressed) {  out.close(); remove(filename.c_str()); delete read; delete input; delete order; globaldata->gorder = NULL;  return 0; }
+                                       if (m->control_pressed) {  out.close(); remove(filename.c_str());  delete order; globaldata->gorder = NULL;  return 0; }
 
                                        processedLabels.insert(order->getLabel());
                                        userLabels.erase(order->getLabel());
@@ -185,12 +185,11 @@ int GetSAbundCommand::execute(){
                        sabund->print(out);
                        delete sabund;
                        
-                       if (m->control_pressed) {  out.close(); remove(filename.c_str()); delete read; delete input; delete order; globaldata->gorder = NULL;  return 0; }
+                       if (m->control_pressed) {  out.close(); remove(filename.c_str());  delete order; globaldata->gorder = NULL;  return 0; }
                        
                        delete order;
                }
                globaldata->gorder = NULL;
-               delete read; delete input;
 
                out.close();
                
index 58d00ffbee1166e3422cf070978c8c97fa964cc1..69dccb5226638a3af2a2bb9936b774f6dc90169e 100644 (file)
@@ -80,6 +80,7 @@ void GlobalData::clear() {
 //     fastafile               =   ""; //do we need this?
        treefile                =       "";
        sharedfile              =       "";
+       format = "";
 }
 
 
index d9a14d9b5979636dba434733a132d35c25de8568..f98190873eb7219b86f3da445de3fbf9da8ff848 100644 (file)
@@ -189,7 +189,7 @@ int HClusterCommand::execute(){
                time_t estart = time(NULL);
                
                if (!sorted) {
-                       read = new ReadCluster(distfile, cutoff);       
+                       read = new ReadCluster(distfile, cutoff, outputDir);    
                        read->setFormat(format);
                        read->read(globaldata->nameMap);
                        
index 5d7e1d635fd4e56893edcacfad7eaca6960f86d1..7aa978d55096469b43262c1ea0a66e9e99f57a7d 100644 (file)
@@ -182,7 +182,7 @@ int HeatMapCommand::execute(){
                                
                                lastLabel = lookup[0]->getLabel();
                                //prevent memory leak
-                               for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  }
+                               for (int i = 0; i < lookup.size(); i++) {  delete lookup[i]; lookup[i] = NULL; }
                                                        
                                //get next line to process
                                lookup = input->getSharedRAbundVectors();                               
diff --git a/makefile b/makefile
new file mode 100644 (file)
index 0000000..451d613
--- /dev/null
+++ b/makefile
@@ -0,0 +1,1625 @@
+###################################################\r
+#\r
+# Makefile for mothur\r
+# Creator [Xcode -> Makefile Ver: Feb 14 2007 09:18:41]\r
+# Created: [Thu Mar  4 08:31:03 2010]\r
+#\r
+###################################################\r
+\r
+#\r
+# Macros\r
+#\r
+\r
+CC = mpic++\r
+CC_OPTIONS = -O3\r
+LNK_OPTIONS = \r
+\r
+# if you do not want to use the readline library set to no, default yes.\r
+# make sure you have the library installed\r
+\r
+USEREADLINE ?= yes\r
+\r
+ifeq  ($(strip $(USEREADLINE)),yes)\r
+    CC_OPTIONS += -DUSE_READLINE\r
+       LNK_OPTIONS += \\r
+      -lreadline\\r
+      -lncurses\\r
+      -L../readline-6.0\r
+endif\r
+\r
+USEMPI ?= no\r
+\r
+ifeq  ($(strip $(USEMPI)),yes)\r
+    CC_OPTIONS += -DUSE_MPI\r
+endif\r
+\r
+#\r
+# INCLUDE directories for mothur\r
+#\r
+
+     INCLUDE = -I.
+\r
+#\r
+# Build mothur\r
+#\r
+\r
+mothur : \\r
+               ./sharedutilities.o\\r
+               ./treegroupscommand.o\\r
+               ./bootstrapsharedcommand.o\\r
+               ./matrixoutputcommand.o\\r
+               ./getoturepcommand.o\\r
+               ./screenseqscommand.o\\r
+               ./chimera.o\\r
+               ./decalc.o\\r
+               ./readotucommand.o\\r
+               ./readdistcommand.o\\r
+               ./commandfactory.o\\r
+               ./alignment.o\\r
+               ./alignmentcell.o\\r
+               ./gotohoverlap.o\\r
+               ./overlap.o\\r
+               ./needlemanoverlap.o\\r
+               ./blastalign.o\\r
+               ./noalign.o\\r
+               ./suffixdb.o\\r
+               ./suffixnodes.o\\r
+               ./suffixtree.o\\r
+               ./blastdb.o\\r
+               ./nast.o\\r
+               ./nastreport.o\\r
+               ./boneh.o\\r
+               ./efron.o\\r
+               ./solow.o\\r
+               ./unifracweightedcommand.o\\r
+               ./weighted.o\\r
+               ./unweighted.o\\r
+               ./unifracunweightedcommand.o\\r
+               ./getsabundcommand.o\\r
+               ./getrabundcommand.o\\r
+               ./bellerophon.o\\r
+               ./pintail.o\\r
+               ./sharedanderbergs.o\\r
+               ./venncommand.o\\r
+               ./venn.o\\r
+               ./fullmatrix.o\\r
+               ./heatmap.o\\r
+               ./heatmapcommand.o\\r
+               ./libshuffcommand.o\\r
+               ./nocommands.o\\r
+               ./sharedbraycurtis.o\\r
+               ./sharedkulczynski.o\\r
+               ./sharedlennon.o\\r
+               ./sharedkulczynskicody.o\\r
+               ./sharedmorisitahorn.o\\r
+               ./sharedochiai.o\\r
+               ./readcolumn.o\\r
+               ./readotu.o\\r
+               ./readphylip.o\\r
+               ./consensuscommand.o\\r
+               ./heatmapsimcommand.o\\r
+               ./heatmapsim.o\\r
+               ./optionparser.o\\r
+               ./filterseqscommand.o\\r
+               ./goodscoverage.o\\r
+               ./sequencedb.o\\r
+               ./sharedjackknife.o\\r
+               ./sharedmarczewski.o\\r
+               ./aligncommand.o\\r
+               ./treemap.o\\r
+               ./parsimonycommand.o\\r
+               ./parsimony.o\\r
+               ./seqsummarycommand.o\\r
+               ./chimeraccodecommand.o\\r
+               ./chimerabellerophoncommand.o\\r
+               ./chimeracheckcommand.o\\r
+               ./chimeraslayercommand.o\\r
+               ./chimerapintailcommand.o\\r
+               ./chimeraseqscommand.o\\r
+               ./sharedlistvector.o\\r
+               ./tree.o\\r
+               ./readtree.o\\r
+               ./sharedsobscollectsummary.o\\r
+               ./deconvolutecommand.o\\r
+               ./listseqscommand.o\\r
+               ./getseqscommand.o\\r
+               ./removeseqscommand.o\\r
+               ./systemcommand.o\\r
+               ./binsequencecommand.o\\r
+               ./distancecommand.o\\r
+               ./ace.o\\r
+               ./averagelinkage.o\\r
+               ./bootstrap.o\\r
+               ./calculator.o\\r
+               ./chao1.o\\r
+               ./cluster.o\\r
+               ./clustercommand.o\\r
+               ./collect.o\\r
+               ./collectcommand.o\\r
+               ./collectsharedcommand.o\\r
+               ./commandoptionparser.o\\r
+               ./completelinkage.o\\r
+               ./database.o\\r
+               ./engine.o\\r
+               ./fastamap.o\\r
+               ./fileoutput.o\\r
+               ./globaldata.o\\r
+               ./groupmap.o\\r
+               ./helpcommand.o\\r
+               ./inputdata.o\\r
+               ./jackknife.o\\r
+               ./kmer.o\\r
+               ./kmerdb.o\\r
+               ./listvector.o\\r
+               ./mothur.o\\r
+               ./nameassignment.o\\r
+               ./npshannon.o\\r
+               ./ordervector.o\\r
+               ./progress.o\\r
+               ./quitcommand.o\\r
+               ./rabundvector.o\\r
+               ./rarecalc.o\\r
+               ./raredisplay.o\\r
+               ./rarefact.o\\r
+               ./rarefactcommand.o\\r
+               ./rarefactsharedcommand.o\\r
+               ./sabundvector.o\\r
+               ./sequence.o\\r
+               ./shannon.o\\r
+               ./sharedace.o\\r
+               ./sharedchao1.o\\r
+               ./sharedcommand.o\\r
+               ./sharedjabund.o\\r
+               ./sharedjclass.o\\r
+               ./sharedjest.o\\r
+               ./sharedordervector.o\\r
+               ./sharedrabundvector.o\\r
+               ./sharedsabundvector.o\\r
+               ./sharedsobs.o\\r
+               ./sharedsorabund.o\\r
+               ./sharedsorclass.o\\r
+               ./sharedsorest.o\\r
+               ./sharedthetan.o\\r
+               ./sharedthetayc.o\\r
+               ./simpson.o\\r
+               ./singlelinkage.o\\r
+               ./sparsematrix.o\\r
+               ./summarycommand.o\\r
+               ./summarysharedcommand.o\\r
+               ./uvest.o\\r
+               ./validcalculator.o\\r
+               ./validparameter.o\\r
+               ./treenode.o\\r
+               ./readtreecommand.o\\r
+               ./reversecommand.o\\r
+               ./trimseqscommand.o\\r
+               ./slibshuff.o\\r
+               ./libshuff.o\\r
+               ./dlibshuff.o\\r
+               ./mergefilecommand.o\\r
+               ./coverage.o\\r
+               ./whittaker.o\\r
+               ./preclustercommand.o\\r
+               ./otuhierarchycommand.o\\r
+               ./setdircommand.o\\r
+               ./getgroupcommand.o\\r
+               ./getlabelcommand.o\\r
+               ./secondarystructurecommand.o\\r
+               ./mothurout.o\\r
+               ./parselistscommand.o\\r
+               ./readblast.o\\r
+               ./chimeracheckrdp.o\\r
+               ./hclustercommand.o\\r
+               ./hcluster.o\\r
+               ./getlistcountcommand.o\\r
+               ./readcluster.o\\r
+               ./ccode.o\\r
+               ./taxonomyequalizer.o\\r
+               ./phylotypecommand.o\\r
+               ./classifyseqscommand.o\\r
+               ./parsesffcommand.o\\r
+               ./classify.o\\r
+               ./phylotree.o\\r
+               ./bayesian.o\\r
+               ./alignmentdb.o\\r
+               ./knn.o\\r
+               ./distancedb.o\\r
+               ./chimeraslayer.o\\r
+               ./slayer.o\\r
+               ./pcacommand.o\\r
+               ./formatcolumn.o\\r
+               ./formatphylip.o\\r
+               ./mgclustercommand.o\\r
+               ./getsharedotucommand.o\\r
+               ./maligner.o\\r
+               ./chimerarealigner.o\\r
+               ./bergerparker.o\\r
+               ./bstick.o\\r
+               ./sharedkstest.o\\r
+               ./qstat.o\\r
+               ./shen.o\\r
+               ./logsd.o\\r
+               ./geom.o\r
+       $(CC) $(LNK_OPTIONS) \\r
+               ./sharedutilities.o\\r
+               ./treegroupscommand.o\\r
+               ./bootstrapsharedcommand.o\\r
+               ./matrixoutputcommand.o\\r
+               ./getoturepcommand.o\\r
+               ./screenseqscommand.o\\r
+               ./chimera.o\\r
+               ./decalc.o\\r
+               ./readotucommand.o\\r
+               ./readdistcommand.o\\r
+               ./commandfactory.o\\r
+               ./alignment.o\\r
+               ./alignmentcell.o\\r
+               ./gotohoverlap.o\\r
+               ./overlap.o\\r
+               ./needlemanoverlap.o\\r
+               ./blastalign.o\\r
+               ./noalign.o\\r
+               ./suffixdb.o\\r
+               ./suffixnodes.o\\r
+               ./suffixtree.o\\r
+               ./blastdb.o\\r
+               ./nast.o\\r
+               ./nastreport.o\\r
+               ./boneh.o\\r
+               ./efron.o\\r
+               ./solow.o\\r
+               ./unifracweightedcommand.o\\r
+               ./weighted.o\\r
+               ./unweighted.o\\r
+               ./unifracunweightedcommand.o\\r
+               ./getsabundcommand.o\\r
+               ./getrabundcommand.o\\r
+               ./bellerophon.o\\r
+               ./pintail.o\\r
+               ./sharedanderbergs.o\\r
+               ./venncommand.o\\r
+               ./venn.o\\r
+               ./fullmatrix.o\\r
+               ./heatmap.o\\r
+               ./heatmapcommand.o\\r
+               ./libshuffcommand.o\\r
+               ./nocommands.o\\r
+               ./sharedbraycurtis.o\\r
+               ./sharedkulczynski.o\\r
+               ./sharedlennon.o\\r
+               ./sharedkulczynskicody.o\\r
+               ./sharedmorisitahorn.o\\r
+               ./sharedochiai.o\\r
+               ./readcolumn.o\\r
+               ./readotu.o\\r
+               ./readphylip.o\\r
+               ./consensuscommand.o\\r
+               ./heatmapsimcommand.o\\r
+               ./heatmapsim.o\\r
+               ./optionparser.o\\r
+               ./filterseqscommand.o\\r
+               ./goodscoverage.o\\r
+               ./sequencedb.o\\r
+               ./sharedjackknife.o\\r
+               ./sharedmarczewski.o\\r
+               ./aligncommand.o\\r
+               ./treemap.o\\r
+               ./parsimonycommand.o\\r
+               ./parsimony.o\\r
+               ./seqsummarycommand.o\\r
+               ./chimeraccodecommand.o\\r
+               ./chimerabellerophoncommand.o\\r
+               ./chimeracheckcommand.o\\r
+               ./chimeraslayercommand.o\\r
+               ./chimerapintailcommand.o\\r
+               ./chimeraseqscommand.o\\r
+               ./sharedlistvector.o\\r
+               ./tree.o\\r
+               ./readtree.o\\r
+               ./sharedsobscollectsummary.o\\r
+               ./deconvolutecommand.o\\r
+               ./listseqscommand.o\\r
+               ./getseqscommand.o\\r
+               ./removeseqscommand.o\\r
+               ./systemcommand.o\\r
+               ./binsequencecommand.o\\r
+               ./distancecommand.o\\r
+               ./ace.o\\r
+               ./averagelinkage.o\\r
+               ./bootstrap.o\\r
+               ./calculator.o\\r
+               ./chao1.o\\r
+               ./cluster.o\\r
+               ./clustercommand.o\\r
+               ./collect.o\\r
+               ./collectcommand.o\\r
+               ./collectsharedcommand.o\\r
+               ./commandoptionparser.o\\r
+               ./completelinkage.o\\r
+               ./database.o\\r
+               ./engine.o\\r
+               ./fastamap.o\\r
+               ./fileoutput.o\\r
+               ./globaldata.o\\r
+               ./groupmap.o\\r
+               ./helpcommand.o\\r
+               ./inputdata.o\\r
+               ./jackknife.o\\r
+               ./kmer.o\\r
+               ./kmerdb.o\\r
+               ./listvector.o\\r
+               ./mothur.o\\r
+               ./nameassignment.o\\r
+               ./npshannon.o\\r
+               ./ordervector.o\\r
+               ./progress.o\\r
+               ./quitcommand.o\\r
+               ./rabundvector.o\\r
+               ./rarecalc.o\\r
+               ./raredisplay.o\\r
+               ./rarefact.o\\r
+               ./rarefactcommand.o\\r
+               ./rarefactsharedcommand.o\\r
+               ./sabundvector.o\\r
+               ./sequence.o\\r
+               ./shannon.o\\r
+               ./sharedace.o\\r
+               ./sharedchao1.o\\r
+               ./sharedcommand.o\\r
+               ./sharedjabund.o\\r
+               ./sharedjclass.o\\r
+               ./sharedjest.o\\r
+               ./sharedordervector.o\\r
+               ./sharedrabundvector.o\\r
+               ./sharedsabundvector.o\\r
+               ./sharedsobs.o\\r
+               ./sharedsorabund.o\\r
+               ./sharedsorclass.o\\r
+               ./sharedsorest.o\\r
+               ./sharedthetan.o\\r
+               ./sharedthetayc.o\\r
+               ./simpson.o\\r
+               ./singlelinkage.o\\r
+               ./sparsematrix.o\\r
+               ./summarycommand.o\\r
+               ./summarysharedcommand.o\\r
+               ./uvest.o\\r
+               ./validcalculator.o\\r
+               ./validparameter.o\\r
+               ./treenode.o\\r
+               ./readtreecommand.o\\r
+               ./reversecommand.o\\r
+               ./trimseqscommand.o\\r
+               ./slibshuff.o\\r
+               ./libshuff.o\\r
+               ./dlibshuff.o\\r
+               ./mergefilecommand.o\\r
+               ./coverage.o\\r
+               ./whittaker.o\\r
+               ./preclustercommand.o\\r
+               ./otuhierarchycommand.o\\r
+               ./setdircommand.o\\r
+               ./getgroupcommand.o\\r
+               ./getlabelcommand.o\\r
+               ./secondarystructurecommand.o\\r
+               ./mothurout.o\\r
+               ./parselistscommand.o\\r
+               ./readblast.o\\r
+               ./chimeracheckrdp.o\\r
+               ./hclustercommand.o\\r
+               ./hcluster.o\\r
+               ./getlistcountcommand.o\\r
+               ./readcluster.o\\r
+               ./ccode.o\\r
+               ./taxonomyequalizer.o\\r
+               ./phylotypecommand.o\\r
+               ./classifyseqscommand.o\\r
+               ./parsesffcommand.o\\r
+               ./classify.o\\r
+               ./phylotree.o\\r
+               ./bayesian.o\\r
+               ./alignmentdb.o\\r
+               ./knn.o\\r
+               ./distancedb.o\\r
+               ./chimeraslayer.o\\r
+               ./slayer.o\\r
+               ./pcacommand.o\\r
+               ./formatcolumn.o\\r
+               ./formatphylip.o\\r
+               ./mgclustercommand.o\\r
+               ./getsharedotucommand.o\\r
+               ./maligner.o\\r
+               ./chimerarealigner.o\\r
+               ./bergerparker.o\\r
+               ./bstick.o\\r
+               ./sharedkstest.o\\r
+               ./qstat.o\\r
+               ./shen.o\\r
+               ./logsd.o\\r
+               ./geom.o\\r
+               -o ../Release/mothur\r
+\r
+clean : \r
+               rm \\r
+               ./sharedutilities.o\\r
+               ./treegroupscommand.o\\r
+               ./bootstrapsharedcommand.o\\r
+               ./matrixoutputcommand.o\\r
+               ./getoturepcommand.o\\r
+               ./screenseqscommand.o\\r
+               ./chimera.o\\r
+               ./decalc.o\\r
+               ./readotucommand.o\\r
+               ./readdistcommand.o\\r
+               ./commandfactory.o\\r
+               ./alignment.o\\r
+               ./alignmentcell.o\\r
+               ./gotohoverlap.o\\r
+               ./overlap.o\\r
+               ./needlemanoverlap.o\\r
+               ./blastalign.o\\r
+               ./noalign.o\\r
+               ./suffixdb.o\\r
+               ./suffixnodes.o\\r
+               ./suffixtree.o\\r
+               ./blastdb.o\\r
+               ./nast.o\\r
+               ./nastreport.o\\r
+               ./boneh.o\\r
+               ./efron.o\\r
+               ./solow.o\\r
+               ./unifracweightedcommand.o\\r
+               ./weighted.o\\r
+               ./unweighted.o\\r
+               ./unifracunweightedcommand.o\\r
+               ./getsabundcommand.o\\r
+               ./getrabundcommand.o\\r
+               ./bellerophon.o\\r
+               ./pintail.o\\r
+               ./sharedanderbergs.o\\r
+               ./venncommand.o\\r
+               ./venn.o\\r
+               ./fullmatrix.o\\r
+               ./heatmap.o\\r
+               ./heatmapcommand.o\\r
+               ./libshuffcommand.o\\r
+               ./nocommands.o\\r
+               ./sharedbraycurtis.o\\r
+               ./sharedkulczynski.o\\r
+               ./sharedlennon.o\\r
+               ./sharedkulczynskicody.o\\r
+               ./sharedmorisitahorn.o\\r
+               ./sharedochiai.o\\r
+               ./readcolumn.o\\r
+               ./readotu.o\\r
+               ./readphylip.o\\r
+               ./consensuscommand.o\\r
+               ./heatmapsimcommand.o\\r
+               ./heatmapsim.o\\r
+               ./optionparser.o\\r
+               ./filterseqscommand.o\\r
+               ./goodscoverage.o\\r
+               ./sequencedb.o\\r
+               ./sharedjackknife.o\\r
+               ./sharedmarczewski.o\\r
+               ./aligncommand.o\\r
+               ./treemap.o\\r
+               ./parsimonycommand.o\\r
+               ./parsimony.o\\r
+               ./seqsummarycommand.o\\r
+               ./chimeraccodecommand.o\\r
+               ./chimerabellerophoncommand.o\\r
+               ./chimeracheckcommand.o\\r
+               ./chimeraslayercommand.o\\r
+               ./chimerapintailcommand.o\\r
+               ./chimeraseqscommand.o\\r
+               ./sharedlistvector.o\\r
+               ./tree.o\\r
+               ./readtree.o\\r
+               ./sharedsobscollectsummary.o\\r
+               ./deconvolutecommand.o\\r
+               ./listseqscommand.o\\r
+               ./getseqscommand.o\\r
+               ./removeseqscommand.o\\r
+               ./systemcommand.o\\r
+               ./binsequencecommand.o\\r
+               ./distancecommand.o\\r
+               ./ace.o\\r
+               ./averagelinkage.o\\r
+               ./bootstrap.o\\r
+               ./calculator.o\\r
+               ./chao1.o\\r
+               ./cluster.o\\r
+               ./clustercommand.o\\r
+               ./collect.o\\r
+               ./collectcommand.o\\r
+               ./collectsharedcommand.o\\r
+               ./commandoptionparser.o\\r
+               ./completelinkage.o\\r
+               ./database.o\\r
+               ./engine.o\\r
+               ./fastamap.o\\r
+               ./fileoutput.o\\r
+               ./globaldata.o\\r
+               ./groupmap.o\\r
+               ./helpcommand.o\\r
+               ./inputdata.o\\r
+               ./jackknife.o\\r
+               ./kmer.o\\r
+               ./kmerdb.o\\r
+               ./listvector.o\\r
+               ./mothur.o\\r
+               ./nameassignment.o\\r
+               ./npshannon.o\\r
+               ./ordervector.o\\r
+               ./progress.o\\r
+               ./quitcommand.o\\r
+               ./rabundvector.o\\r
+               ./rarecalc.o\\r
+               ./raredisplay.o\\r
+               ./rarefact.o\\r
+               ./rarefactcommand.o\\r
+               ./rarefactsharedcommand.o\\r
+               ./sabundvector.o\\r
+               ./sequence.o\\r
+               ./shannon.o\\r
+               ./sharedace.o\\r
+               ./sharedchao1.o\\r
+               ./sharedcommand.o\\r
+               ./sharedjabund.o\\r
+               ./sharedjclass.o\\r
+               ./sharedjest.o\\r
+               ./sharedordervector.o\\r
+               ./sharedrabundvector.o\\r
+               ./sharedsabundvector.o\\r
+               ./sharedsobs.o\\r
+               ./sharedsorabund.o\\r
+               ./sharedsorclass.o\\r
+               ./sharedsorest.o\\r
+               ./sharedthetan.o\\r
+               ./sharedthetayc.o\\r
+               ./simpson.o\\r
+               ./singlelinkage.o\\r
+               ./sparsematrix.o\\r
+               ./summarycommand.o\\r
+               ./summarysharedcommand.o\\r
+               ./uvest.o\\r
+               ./validcalculator.o\\r
+               ./validparameter.o\\r
+               ./treenode.o\\r
+               ./readtreecommand.o\\r
+               ./reversecommand.o\\r
+               ./trimseqscommand.o\\r
+               ./slibshuff.o\\r
+               ./libshuff.o\\r
+               ./dlibshuff.o\\r
+               ./mergefilecommand.o\\r
+               ./coverage.o\\r
+               ./whittaker.o\\r
+               ./preclustercommand.o\\r
+               ./otuhierarchycommand.o\\r
+               ./setdircommand.o\\r
+               ./getgroupcommand.o\\r
+               ./getlabelcommand.o\\r
+               ./secondarystructurecommand.o\\r
+               ./mothurout.o\\r
+               ./parselistscommand.o\\r
+               ./readblast.o\\r
+               ./chimeracheckrdp.o\\r
+               ./hclustercommand.o\\r
+               ./hcluster.o\\r
+               ./getlistcountcommand.o\\r
+               ./readcluster.o\\r
+               ./ccode.o\\r
+               ./taxonomyequalizer.o\\r
+               ./phylotypecommand.o\\r
+               ./classifyseqscommand.o\\r
+               ./parsesffcommand.o\\r
+               ./classify.o\\r
+               ./phylotree.o\\r
+               ./bayesian.o\\r
+               ./alignmentdb.o\\r
+               ./knn.o\\r
+               ./distancedb.o\\r
+               ./chimeraslayer.o\\r
+               ./slayer.o\\r
+               ./pcacommand.o\\r
+               ./formatcolumn.o\\r
+               ./formatphylip.o\\r
+               ./mgclustercommand.o\\r
+               ./getsharedotucommand.o\\r
+               ./maligner.o\\r
+               ./chimerarealigner.o\\r
+               ./bergerparker.o\\r
+               ./bstick.o\\r
+               ./sharedkstest.o\\r
+               ./qstat.o\\r
+               ./shen.o\\r
+               ./logsd.o\\r
+               ./geom.o\\r
+               mothur\r
+\r
+install : mothur\r
+               #cp mothur ../Release/mothur\r
+\r
+#\r
+# Build the parts of mothur\r
+#\r
+\r
+\r
+# Item # 1 -- sharedutilities --\r
+./sharedutilities.o : sharedutilities.cpp\r
+       $(CC) $(CC_OPTIONS) sharedutilities.cpp -c $(INCLUDE) -o ./sharedutilities.o\r
+\r
+\r
+# Item # 2 -- treegroupscommand --\r
+./treegroupscommand.o : treegroupscommand.cpp\r
+       $(CC) $(CC_OPTIONS) treegroupscommand.cpp -c $(INCLUDE) -o ./treegroupscommand.o\r
+\r
+\r
+# Item # 3 -- bootstrapsharedcommand --\r
+./bootstrapsharedcommand.o : bootstrapsharedcommand.cpp\r
+       $(CC) $(CC_OPTIONS) bootstrapsharedcommand.cpp -c $(INCLUDE) -o ./bootstrapsharedcommand.o\r
+\r
+\r
+# Item # 4 -- matrixoutputcommand --\r
+./matrixoutputcommand.o : matrixoutputcommand.cpp\r
+       $(CC) $(CC_OPTIONS) matrixoutputcommand.cpp -c $(INCLUDE) -o ./matrixoutputcommand.o\r
+\r
+\r
+# Item # 5 -- getoturepcommand --\r
+./getoturepcommand.o : getoturepcommand.cpp\r
+       $(CC) $(CC_OPTIONS) getoturepcommand.cpp -c $(INCLUDE) -o ./getoturepcommand.o\r
+\r
+\r
+# Item # 6 -- screenseqscommand --\r
+./screenseqscommand.o : screenseqscommand.cpp\r
+       $(CC) $(CC_OPTIONS) screenseqscommand.cpp -c $(INCLUDE) -o ./screenseqscommand.o\r
+\r
+\r
+# Item # 7 -- chimera --\r
+./chimera.o : chimera.cpp\r
+       $(CC) $(CC_OPTIONS) chimera.cpp -c $(INCLUDE) -o ./chimera.o\r
+\r
+\r
+# Item # 8 -- decalc --\r
+./decalc.o : decalc.cpp\r
+       $(CC) $(CC_OPTIONS) decalc.cpp -c $(INCLUDE) -o ./decalc.o\r
+\r
+\r
+# Item # 9 -- readotucommand --\r
+./readotucommand.o : readotucommand.cpp\r
+       $(CC) $(CC_OPTIONS) readotucommand.cpp -c $(INCLUDE) -o ./readotucommand.o\r
+\r
+\r
+# Item # 10 -- readdistcommand --\r
+./readdistcommand.o : readdistcommand.cpp\r
+       $(CC) $(CC_OPTIONS) readdistcommand.cpp -c $(INCLUDE) -o ./readdistcommand.o\r
+\r
+\r
+# Item # 11 -- commandfactory --\r
+./commandfactory.o : commandfactory.cpp\r
+       $(CC) $(CC_OPTIONS) commandfactory.cpp -c $(INCLUDE) -o ./commandfactory.o\r
+\r
+\r
+# Item # 12 -- alignment --\r
+./alignment.o : alignment.cpp\r
+       $(CC) $(CC_OPTIONS) alignment.cpp -c $(INCLUDE) -o ./alignment.o\r
+\r
+\r
+# Item # 13 -- alignmentcell --\r
+./alignmentcell.o : alignmentcell.cpp\r
+       $(CC) $(CC_OPTIONS) alignmentcell.cpp -c $(INCLUDE) -o ./alignmentcell.o\r
+\r
+\r
+# Item # 14 -- gotohoverlap --\r
+./gotohoverlap.o : gotohoverlap.cpp\r
+       $(CC) $(CC_OPTIONS) gotohoverlap.cpp -c $(INCLUDE) -o ./gotohoverlap.o\r
+\r
+\r
+# Item # 15 -- overlap --\r
+./overlap.o : overlap.cpp\r
+       $(CC) $(CC_OPTIONS) overlap.cpp -c $(INCLUDE) -o ./overlap.o\r
+\r
+\r
+# Item # 16 -- needlemanoverlap --\r
+./needlemanoverlap.o : needlemanoverlap.cpp\r
+       $(CC) $(CC_OPTIONS) needlemanoverlap.cpp -c $(INCLUDE) -o ./needlemanoverlap.o\r
+\r
+\r
+# Item # 17 -- blastalign --\r
+./blastalign.o : blastalign.cpp\r
+       $(CC) $(CC_OPTIONS) blastalign.cpp -c $(INCLUDE) -o ./blastalign.o\r
+\r
+\r
+# Item # 18 -- noalign --\r
+./noalign.o : noalign.cpp\r
+       $(CC) $(CC_OPTIONS) noalign.cpp -c $(INCLUDE) -o ./noalign.o\r
+\r
+\r
+# Item # 19 -- suffixdb --\r
+./suffixdb.o : suffixdb.cpp\r
+       $(CC) $(CC_OPTIONS) suffixdb.cpp -c $(INCLUDE) -o ./suffixdb.o\r
+\r
+\r
+# Item # 20 -- suffixnodes --\r
+./suffixnodes.o : suffixnodes.cpp\r
+       $(CC) $(CC_OPTIONS) suffixnodes.cpp -c $(INCLUDE) -o ./suffixnodes.o\r
+\r
+\r
+# Item # 21 -- suffixtree --\r
+./suffixtree.o : suffixtree.cpp\r
+       $(CC) $(CC_OPTIONS) suffixtree.cpp -c $(INCLUDE) -o ./suffixtree.o\r
+\r
+\r
+# Item # 22 -- blastdb --\r
+./blastdb.o : blastdb.cpp\r
+       $(CC) $(CC_OPTIONS) blastdb.cpp -c $(INCLUDE) -o ./blastdb.o\r
+\r
+\r
+# Item # 23 -- nast --\r
+./nast.o : nast.cpp\r
+       $(CC) $(CC_OPTIONS) nast.cpp -c $(INCLUDE) -o ./nast.o\r
+\r
+\r
+# Item # 24 -- nastreport --\r
+./nastreport.o : nastreport.cpp\r
+       $(CC) $(CC_OPTIONS) nastreport.cpp -c $(INCLUDE) -o ./nastreport.o\r
+\r
+\r
+# Item # 25 -- boneh --\r
+./boneh.o : boneh.cpp\r
+       $(CC) $(CC_OPTIONS) boneh.cpp -c $(INCLUDE) -o ./boneh.o\r
+\r
+\r
+# Item # 26 -- efron --\r
+./efron.o : efron.cpp\r
+       $(CC) $(CC_OPTIONS) efron.cpp -c $(INCLUDE) -o ./efron.o\r
+\r
+\r
+# Item # 27 -- solow --\r
+./solow.o : solow.cpp\r
+       $(CC) $(CC_OPTIONS) solow.cpp -c $(INCLUDE) -o ./solow.o\r
+\r
+\r
+# Item # 28 -- unifracweightedcommand --\r
+./unifracweightedcommand.o : unifracweightedcommand.cpp\r
+       $(CC) $(CC_OPTIONS) unifracweightedcommand.cpp -c $(INCLUDE) -o ./unifracweightedcommand.o\r
+\r
+\r
+# Item # 29 -- weighted --\r
+./weighted.o : weighted.cpp\r
+       $(CC) $(CC_OPTIONS) weighted.cpp -c $(INCLUDE) -o ./weighted.o\r
+\r
+\r
+# Item # 30 -- unweighted --\r
+./unweighted.o : unweighted.cpp\r
+       $(CC) $(CC_OPTIONS) unweighted.cpp -c $(INCLUDE) -o ./unweighted.o\r
+\r
+\r
+# Item # 31 -- unifracunweightedcommand --\r
+./unifracunweightedcommand.o : unifracunweightedcommand.cpp\r
+       $(CC) $(CC_OPTIONS) unifracunweightedcommand.cpp -c $(INCLUDE) -o ./unifracunweightedcommand.o\r
+\r
+\r
+# Item # 32 -- getsabundcommand --\r
+./getsabundcommand.o : getsabundcommand.cpp\r
+       $(CC) $(CC_OPTIONS) getsabundcommand.cpp -c $(INCLUDE) -o ./getsabundcommand.o\r
+\r
+\r
+# Item # 33 -- getrabundcommand --\r
+./getrabundcommand.o : getrabundcommand.cpp\r
+       $(CC) $(CC_OPTIONS) getrabundcommand.cpp -c $(INCLUDE) -o ./getrabundcommand.o\r
+\r
+\r
+# Item # 34 -- bellerophon --\r
+./bellerophon.o : bellerophon.cpp\r
+       $(CC) $(CC_OPTIONS) bellerophon.cpp -c $(INCLUDE) -o ./bellerophon.o\r
+\r
+\r
+# Item # 35 -- pintail --\r
+./pintail.o : pintail.cpp\r
+       $(CC) $(CC_OPTIONS) pintail.cpp -c $(INCLUDE) -o ./pintail.o\r
+\r
+\r
+# Item # 36 -- sharedanderbergs --\r
+./sharedanderbergs.o : sharedanderbergs.cpp\r
+       $(CC) $(CC_OPTIONS) sharedanderbergs.cpp -c $(INCLUDE) -o ./sharedanderbergs.o\r
+\r
+\r
+# Item # 37 -- venncommand --\r
+./venncommand.o : venncommand.cpp\r
+       $(CC) $(CC_OPTIONS) venncommand.cpp -c $(INCLUDE) -o ./venncommand.o\r
+\r
+\r
+# Item # 38 -- venn --\r
+./venn.o : venn.cpp\r
+       $(CC) $(CC_OPTIONS) venn.cpp -c $(INCLUDE) -o ./venn.o\r
+\r
+\r
+# Item # 39 -- fullmatrix --\r
+./fullmatrix.o : fullmatrix.cpp\r
+       $(CC) $(CC_OPTIONS) fullmatrix.cpp -c $(INCLUDE) -o ./fullmatrix.o\r
+\r
+\r
+# Item # 40 -- heatmap --\r
+./heatmap.o : heatmap.cpp\r
+       $(CC) $(CC_OPTIONS) heatmap.cpp -c $(INCLUDE) -o ./heatmap.o\r
+\r
+\r
+# Item # 41 -- heatmapcommand --\r
+./heatmapcommand.o : heatmapcommand.cpp\r
+       $(CC) $(CC_OPTIONS) heatmapcommand.cpp -c $(INCLUDE) -o ./heatmapcommand.o\r
+\r
+\r
+# Item # 42 -- libshuffcommand --\r
+./libshuffcommand.o : libshuffcommand.cpp\r
+       $(CC) $(CC_OPTIONS) libshuffcommand.cpp -c $(INCLUDE) -o ./libshuffcommand.o\r
+\r
+\r
+# Item # 43 -- nocommands --\r
+./nocommands.o : nocommands.cpp\r
+       $(CC) $(CC_OPTIONS) nocommands.cpp -c $(INCLUDE) -o ./nocommands.o\r
+\r
+\r
+# Item # 44 -- sharedbraycurtis --\r
+./sharedbraycurtis.o : sharedbraycurtis.cpp\r
+       $(CC) $(CC_OPTIONS) sharedbraycurtis.cpp -c $(INCLUDE) -o ./sharedbraycurtis.o\r
+\r
+\r
+# Item # 45 -- sharedkulczynski --\r
+./sharedkulczynski.o : sharedkulczynski.cpp\r
+       $(CC) $(CC_OPTIONS) sharedkulczynski.cpp -c $(INCLUDE) -o ./sharedkulczynski.o\r
+\r
+\r
+# Item # 46 -- sharedlennon --\r
+./sharedlennon.o : sharedlennon.cpp\r
+       $(CC) $(CC_OPTIONS) sharedlennon.cpp -c $(INCLUDE) -o ./sharedlennon.o\r
+\r
+\r
+# Item # 47 -- sharedkulczynskicody --\r
+./sharedkulczynskicody.o : sharedkulczynskicody.cpp\r
+       $(CC) $(CC_OPTIONS) sharedkulczynskicody.cpp -c $(INCLUDE) -o ./sharedkulczynskicody.o\r
+\r
+\r
+# Item # 48 -- sharedmorisitahorn --\r
+./sharedmorisitahorn.o : sharedmorisitahorn.cpp\r
+       $(CC) $(CC_OPTIONS) sharedmorisitahorn.cpp -c $(INCLUDE) -o ./sharedmorisitahorn.o\r
+\r
+\r
+# Item # 49 -- sharedochiai --\r
+./sharedochiai.o : sharedochiai.cpp\r
+       $(CC) $(CC_OPTIONS) sharedochiai.cpp -c $(INCLUDE) -o ./sharedochiai.o\r
+\r
+\r
+# Item # 50 -- readcolumn --\r
+./readcolumn.o : readcolumn.cpp\r
+       $(CC) $(CC_OPTIONS) readcolumn.cpp -c $(INCLUDE) -o ./readcolumn.o\r
+\r
+\r
+# Item # 51 -- readotu --\r
+./readotu.o : readotu.cpp\r
+       $(CC) $(CC_OPTIONS) readotu.cpp -c $(INCLUDE) -o ./readotu.o\r
+\r
+\r
+# Item # 52 -- readphylip --\r
+./readphylip.o : readphylip.cpp\r
+       $(CC) $(CC_OPTIONS) readphylip.cpp -c $(INCLUDE) -o ./readphylip.o\r
+\r
+\r
+# Item # 53 -- consensuscommand --\r
+./consensuscommand.o : consensuscommand.cpp\r
+       $(CC) $(CC_OPTIONS) consensuscommand.cpp -c $(INCLUDE) -o ./consensuscommand.o\r
+\r
+\r
+# Item # 54 -- heatmapsimcommand --\r
+./heatmapsimcommand.o : heatmapsimcommand.cpp\r
+       $(CC) $(CC_OPTIONS) heatmapsimcommand.cpp -c $(INCLUDE) -o ./heatmapsimcommand.o\r
+\r
+\r
+# Item # 55 -- heatmapsim --\r
+./heatmapsim.o : heatmapsim.cpp\r
+       $(CC) $(CC_OPTIONS) heatmapsim.cpp -c $(INCLUDE) -o ./heatmapsim.o\r
+\r
+\r
+# Item # 56 -- optionparser --\r
+./optionparser.o : optionparser.cpp\r
+       $(CC) $(CC_OPTIONS) optionparser.cpp -c $(INCLUDE) -o ./optionparser.o\r
+\r
+\r
+# Item # 57 -- filterseqscommand --\r
+./filterseqscommand.o : filterseqscommand.cpp\r
+       $(CC) $(CC_OPTIONS) filterseqscommand.cpp -c $(INCLUDE) -o ./filterseqscommand.o\r
+\r
+\r
+# Item # 58 -- goodscoverage --\r
+./goodscoverage.o : goodscoverage.cpp\r
+       $(CC) $(CC_OPTIONS) goodscoverage.cpp -c $(INCLUDE) -o ./goodscoverage.o\r
+\r
+\r
+# Item # 59 -- sequencedb --\r
+./sequencedb.o : sequencedb.cpp\r
+       $(CC) $(CC_OPTIONS) sequencedb.cpp -c $(INCLUDE) -o ./sequencedb.o\r
+\r
+\r
+# Item # 60 -- sharedjackknife --\r
+./sharedjackknife.o : sharedjackknife.cpp\r
+       $(CC) $(CC_OPTIONS) sharedjackknife.cpp -c $(INCLUDE) -o ./sharedjackknife.o\r
+\r
+\r
+# Item # 61 -- sharedmarczewski --\r
+./sharedmarczewski.o : sharedmarczewski.cpp\r
+       $(CC) $(CC_OPTIONS) sharedmarczewski.cpp -c $(INCLUDE) -o ./sharedmarczewski.o\r
+\r
+\r
+# Item # 62 -- aligncommand --\r
+./aligncommand.o : aligncommand.cpp\r
+       $(CC) $(CC_OPTIONS) aligncommand.cpp -c $(INCLUDE) -o ./aligncommand.o\r
+\r
+\r
+# Item # 63 -- treemap --\r
+./treemap.o : treemap.cpp\r
+       $(CC) $(CC_OPTIONS) treemap.cpp -c $(INCLUDE) -o ./treemap.o\r
+\r
+\r
+# Item # 64 -- parsimonycommand --\r
+./parsimonycommand.o : parsimonycommand.cpp\r
+       $(CC) $(CC_OPTIONS) parsimonycommand.cpp -c $(INCLUDE) -o ./parsimonycommand.o\r
+\r
+\r
+# Item # 65 -- parsimony --\r
+./parsimony.o : parsimony.cpp\r
+       $(CC) $(CC_OPTIONS) parsimony.cpp -c $(INCLUDE) -o ./parsimony.o\r
+\r
+\r
+# Item # 66 -- seqsummarycommand --\r
+./seqsummarycommand.o : seqsummarycommand.cpp\r
+       $(CC) $(CC_OPTIONS) seqsummarycommand.cpp -c $(INCLUDE) -o ./seqsummarycommand.o\r
+\r
+\r
+# Item # 67 -- chimeraseqscommand --\r
+./chimeraseqscommand.o : chimeraseqscommand.cpp\r
+       $(CC) $(CC_OPTIONS) chimeraseqscommand.cpp -c $(INCLUDE) -o ./chimeraseqscommand.o\r
+\r
+\r
+# Item # 68 -- sharedlistvector --\r
+./sharedlistvector.o : sharedlistvector.cpp\r
+       $(CC) $(CC_OPTIONS) sharedlistvector.cpp -c $(INCLUDE) -o ./sharedlistvector.o\r
+\r
+\r
+# Item # 69 -- tree --\r
+./tree.o : tree.cpp\r
+       $(CC) $(CC_OPTIONS) tree.cpp -c $(INCLUDE) -o ./tree.o\r
+\r
+\r
+# Item # 70 -- readtree --\r
+./readtree.o : readtree.cpp\r
+       $(CC) $(CC_OPTIONS) readtree.cpp -c $(INCLUDE) -o ./readtree.o\r
+\r
+\r
+# Item # 71 -- sharedsobscollectsummary --\r
+./sharedsobscollectsummary.o : sharedsobscollectsummary.cpp\r
+       $(CC) $(CC_OPTIONS) sharedsobscollectsummary.cpp -c $(INCLUDE) -o ./sharedsobscollectsummary.o\r
+\r
+\r
+# Item # 72 -- deconvolutecommand --\r
+./deconvolutecommand.o : deconvolutecommand.cpp\r
+       $(CC) $(CC_OPTIONS) deconvolutecommand.cpp -c $(INCLUDE) -o ./deconvolutecommand.o\r
+\r
+\r
+# Item # 73 -- listseqscommand --\r
+./listseqscommand.o : listseqscommand.cpp\r
+       $(CC) $(CC_OPTIONS) listseqscommand.cpp -c $(INCLUDE) -o ./listseqscommand.o\r
+\r
+\r
+# Item # 74 -- getseqscommand --\r
+./getseqscommand.o : getseqscommand.cpp\r
+       $(CC) $(CC_OPTIONS) getseqscommand.cpp -c $(INCLUDE) -o ./getseqscommand.o\r
+\r
+\r
+# Item # 75 -- removeseqscommand --\r
+./removeseqscommand.o : removeseqscommand.cpp\r
+       $(CC) $(CC_OPTIONS) removeseqscommand.cpp -c $(INCLUDE) -o ./removeseqscommand.o\r
+\r
+\r
+# Item # 76 -- systemcommand --\r
+./systemcommand.o : systemcommand.cpp\r
+       $(CC) $(CC_OPTIONS) systemcommand.cpp -c $(INCLUDE) -o ./systemcommand.o\r
+\r
+\r
+# Item # 77 -- binsequencecommand --\r
+./binsequencecommand.o : binsequencecommand.cpp\r
+       $(CC) $(CC_OPTIONS) binsequencecommand.cpp -c $(INCLUDE) -o ./binsequencecommand.o\r
+\r
+\r
+# Item # 78 -- distancecommand --\r
+./distancecommand.o : distancecommand.cpp\r
+       $(CC) $(CC_OPTIONS) distancecommand.cpp -c $(INCLUDE) -o ./distancecommand.o\r
+\r
+\r
+# Item # 79 -- ace --\r
+./ace.o : ace.cpp\r
+       $(CC) $(CC_OPTIONS) ace.cpp -c $(INCLUDE) -o ./ace.o\r
+\r
+\r
+# Item # 80 -- averagelinkage --\r
+./averagelinkage.o : averagelinkage.cpp\r
+       $(CC) $(CC_OPTIONS) averagelinkage.cpp -c $(INCLUDE) -o ./averagelinkage.o\r
+\r
+\r
+# Item # 81 -- bootstrap --\r
+./bootstrap.o : bootstrap.cpp\r
+       $(CC) $(CC_OPTIONS) bootstrap.cpp -c $(INCLUDE) -o ./bootstrap.o\r
+\r
+\r
+# Item # 82 -- calculator --\r
+./calculator.o : calculator.cpp\r
+       $(CC) $(CC_OPTIONS) calculator.cpp -c $(INCLUDE) -o ./calculator.o\r
+\r
+\r
+# Item # 83 -- chao1 --\r
+./chao1.o : chao1.cpp\r
+       $(CC) $(CC_OPTIONS) chao1.cpp -c $(INCLUDE) -o ./chao1.o\r
+\r
+\r
+# Item # 84 -- cluster --\r
+./cluster.o : cluster.cpp\r
+       $(CC) $(CC_OPTIONS) cluster.cpp -c $(INCLUDE) -o ./cluster.o\r
+\r
+\r
+# Item # 85 -- clustercommand --\r
+./clustercommand.o : clustercommand.cpp\r
+       $(CC) $(CC_OPTIONS) clustercommand.cpp -c $(INCLUDE) -o ./clustercommand.o\r
+\r
+\r
+# Item # 86 -- collect --\r
+./collect.o : collect.cpp\r
+       $(CC) $(CC_OPTIONS) collect.cpp -c $(INCLUDE) -o ./collect.o\r
+\r
+\r
+# Item # 87 -- collectcommand --\r
+./collectcommand.o : collectcommand.cpp\r
+       $(CC) $(CC_OPTIONS) collectcommand.cpp -c $(INCLUDE) -o ./collectcommand.o\r
+\r
+\r
+# Item # 88 -- collectsharedcommand --\r
+./collectsharedcommand.o : collectsharedcommand.cpp\r
+       $(CC) $(CC_OPTIONS) collectsharedcommand.cpp -c $(INCLUDE) -o ./collectsharedcommand.o\r
+\r
+\r
+# Item # 89 -- commandoptionparser --\r
+./commandoptionparser.o : commandoptionparser.cpp\r
+       $(CC) $(CC_OPTIONS) commandoptionparser.cpp -c $(INCLUDE) -o ./commandoptionparser.o\r
+\r
+\r
+# Item # 90 -- completelinkage --\r
+./completelinkage.o : completelinkage.cpp\r
+       $(CC) $(CC_OPTIONS) completelinkage.cpp -c $(INCLUDE) -o ./completelinkage.o\r
+\r
+\r
+# Item # 91 -- database --\r
+./database.o : database.cpp\r
+       $(CC) $(CC_OPTIONS) database.cpp -c $(INCLUDE) -o ./database.o\r
+\r
+\r
+# Item # 92 -- engine --\r
+./engine.o : engine.cpp\r
+       $(CC) $(CC_OPTIONS) engine.cpp -c $(INCLUDE) -o ./engine.o\r
+\r
+\r
+# Item # 93 -- fastamap --\r
+./fastamap.o : fastamap.cpp\r
+       $(CC) $(CC_OPTIONS) fastamap.cpp -c $(INCLUDE) -o ./fastamap.o\r
+\r
+\r
+# Item # 94 -- fileoutput --\r
+./fileoutput.o : fileoutput.cpp\r
+       $(CC) $(CC_OPTIONS) fileoutput.cpp -c $(INCLUDE) -o ./fileoutput.o\r
+\r
+\r
+# Item # 95 -- globaldata --\r
+./globaldata.o : globaldata.cpp\r
+       $(CC) $(CC_OPTIONS) globaldata.cpp -c $(INCLUDE) -o ./globaldata.o\r
+\r
+\r
+# Item # 96 -- groupmap --\r
+./groupmap.o : groupmap.cpp\r
+       $(CC) $(CC_OPTIONS) groupmap.cpp -c $(INCLUDE) -o ./groupmap.o\r
+\r
+\r
+# Item # 97 -- helpcommand --\r
+./helpcommand.o : helpcommand.cpp\r
+       $(CC) $(CC_OPTIONS) helpcommand.cpp -c $(INCLUDE) -o ./helpcommand.o\r
+\r
+\r
+# Item # 98 -- inputdata --\r
+./inputdata.o : inputdata.cpp\r
+       $(CC) $(CC_OPTIONS) inputdata.cpp -c $(INCLUDE) -o ./inputdata.o\r
+\r
+\r
+# Item # 99 -- jackknife --\r
+./jackknife.o : jackknife.cpp\r
+       $(CC) $(CC_OPTIONS) jackknife.cpp -c $(INCLUDE) -o ./jackknife.o\r
+\r
+\r
+# Item # 100 -- kmer --\r
+./kmer.o : kmer.cpp\r
+       $(CC) $(CC_OPTIONS) kmer.cpp -c $(INCLUDE) -o ./kmer.o\r
+\r
+\r
+# Item # 101 -- kmerdb --\r
+./kmerdb.o : kmerdb.cpp\r
+       $(CC) $(CC_OPTIONS) kmerdb.cpp -c $(INCLUDE) -o ./kmerdb.o\r
+\r
+\r
+# Item # 102 -- listvector --\r
+./listvector.o : listvector.cpp\r
+       $(CC) $(CC_OPTIONS) listvector.cpp -c $(INCLUDE) -o ./listvector.o\r
+\r
+\r
+# Item # 103 -- mothur --\r
+./mothur.o : mothur.cpp\r
+       $(CC) $(CC_OPTIONS) mothur.cpp -c $(INCLUDE) -o ./mothur.o\r
+\r
+\r
+# Item # 104 -- nameassignment --\r
+./nameassignment.o : nameassignment.cpp\r
+       $(CC) $(CC_OPTIONS) nameassignment.cpp -c $(INCLUDE) -o ./nameassignment.o\r
+\r
+\r
+# Item # 105 -- npshannon --\r
+./npshannon.o : npshannon.cpp\r
+       $(CC) $(CC_OPTIONS) npshannon.cpp -c $(INCLUDE) -o ./npshannon.o\r
+\r
+\r
+# Item # 106 -- ordervector --\r
+./ordervector.o : ordervector.cpp\r
+       $(CC) $(CC_OPTIONS) ordervector.cpp -c $(INCLUDE) -o ./ordervector.o\r
+\r
+\r
+# Item # 107 -- progress --\r
+./progress.o : progress.cpp\r
+       $(CC) $(CC_OPTIONS) progress.cpp -c $(INCLUDE) -o ./progress.o\r
+\r
+\r
+# Item # 108 -- quitcommand --\r
+./quitcommand.o : quitcommand.cpp\r
+       $(CC) $(CC_OPTIONS) quitcommand.cpp -c $(INCLUDE) -o ./quitcommand.o\r
+\r
+\r
+# Item # 109 -- rabundvector --\r
+./rabundvector.o : rabundvector.cpp\r
+       $(CC) $(CC_OPTIONS) rabundvector.cpp -c $(INCLUDE) -o ./rabundvector.o\r
+\r
+\r
+# Item # 110 -- rarecalc --\r
+./rarecalc.o : rarecalc.cpp\r
+       $(CC) $(CC_OPTIONS) rarecalc.cpp -c $(INCLUDE) -o ./rarecalc.o\r
+\r
+\r
+# Item # 111 -- raredisplay --\r
+./raredisplay.o : raredisplay.cpp\r
+       $(CC) $(CC_OPTIONS) raredisplay.cpp -c $(INCLUDE) -o ./raredisplay.o\r
+\r
+\r
+# Item # 112 -- rarefact --\r
+./rarefact.o : rarefact.cpp\r
+       $(CC) $(CC_OPTIONS) rarefact.cpp -c $(INCLUDE) -o ./rarefact.o\r
+\r
+\r
+# Item # 113 -- rarefactcommand --\r
+./rarefactcommand.o : rarefactcommand.cpp\r
+       $(CC) $(CC_OPTIONS) rarefactcommand.cpp -c $(INCLUDE) -o ./rarefactcommand.o\r
+\r
+\r
+# Item # 114 -- rarefactsharedcommand --\r
+./rarefactsharedcommand.o : rarefactsharedcommand.cpp\r
+       $(CC) $(CC_OPTIONS) rarefactsharedcommand.cpp -c $(INCLUDE) -o ./rarefactsharedcommand.o\r
+\r
+\r
+# Item # 115 -- sabundvector --\r
+./sabundvector.o : sabundvector.cpp\r
+       $(CC) $(CC_OPTIONS) sabundvector.cpp -c $(INCLUDE) -o ./sabundvector.o\r
+\r
+\r
+# Item # 116 -- sequence --\r
+./sequence.o : sequence.cpp\r
+       $(CC) $(CC_OPTIONS) sequence.cpp -c $(INCLUDE) -o ./sequence.o\r
+\r
+\r
+# Item # 117 -- shannon --\r
+./shannon.o : shannon.cpp\r
+       $(CC) $(CC_OPTIONS) shannon.cpp -c $(INCLUDE) -o ./shannon.o\r
+\r
+\r
+# Item # 118 -- sharedace --\r
+./sharedace.o : sharedace.cpp\r
+       $(CC) $(CC_OPTIONS) sharedace.cpp -c $(INCLUDE) -o ./sharedace.o\r
+\r
+\r
+# Item # 119 -- sharedchao1 --\r
+./sharedchao1.o : sharedchao1.cpp\r
+       $(CC) $(CC_OPTIONS) sharedchao1.cpp -c $(INCLUDE) -o ./sharedchao1.o\r
+\r
+\r
+# Item # 120 -- sharedcommand --\r
+./sharedcommand.o : sharedcommand.cpp\r
+       $(CC) $(CC_OPTIONS) sharedcommand.cpp -c $(INCLUDE) -o ./sharedcommand.o\r
+\r
+\r
+# Item # 121 -- sharedjabund --\r
+./sharedjabund.o : sharedjabund.cpp\r
+       $(CC) $(CC_OPTIONS) sharedjabund.cpp -c $(INCLUDE) -o ./sharedjabund.o\r
+\r
+\r
+# Item # 122 -- sharedjclass --\r
+./sharedjclass.o : sharedjclass.cpp\r
+       $(CC) $(CC_OPTIONS) sharedjclass.cpp -c $(INCLUDE) -o ./sharedjclass.o\r
+\r
+\r
+# Item # 123 -- sharedjest --\r
+./sharedjest.o : sharedjest.cpp\r
+       $(CC) $(CC_OPTIONS) sharedjest.cpp -c $(INCLUDE) -o ./sharedjest.o\r
+\r
+\r
+# Item # 124 -- sharedordervector --\r
+./sharedordervector.o : sharedordervector.cpp\r
+       $(CC) $(CC_OPTIONS) sharedordervector.cpp -c $(INCLUDE) -o ./sharedordervector.o\r
+\r
+\r
+# Item # 125 -- sharedrabundvector --\r
+./sharedrabundvector.o : sharedrabundvector.cpp\r
+       $(CC) $(CC_OPTIONS) sharedrabundvector.cpp -c $(INCLUDE) -o ./sharedrabundvector.o\r
+\r
+\r
+# Item # 126 -- sharedsabundvector --\r
+./sharedsabundvector.o : sharedsabundvector.cpp\r
+       $(CC) $(CC_OPTIONS) sharedsabundvector.cpp -c $(INCLUDE) -o ./sharedsabundvector.o\r
+\r
+\r
+# Item # 127 -- sharedsobs --\r
+./sharedsobs.o : sharedsobs.cpp\r
+       $(CC) $(CC_OPTIONS) sharedsobs.cpp -c $(INCLUDE) -o ./sharedsobs.o\r
+\r
+\r
+# Item # 128 -- sharedsorabund --\r
+./sharedsorabund.o : sharedsorabund.cpp\r
+       $(CC) $(CC_OPTIONS) sharedsorabund.cpp -c $(INCLUDE) -o ./sharedsorabund.o\r
+\r
+\r
+# Item # 129 -- sharedsorclass --\r
+./sharedsorclass.o : sharedsorclass.cpp\r
+       $(CC) $(CC_OPTIONS) sharedsorclass.cpp -c $(INCLUDE) -o ./sharedsorclass.o\r
+\r
+\r
+# Item # 130 -- sharedsorest --\r
+./sharedsorest.o : sharedsorest.cpp\r
+       $(CC) $(CC_OPTIONS) sharedsorest.cpp -c $(INCLUDE) -o ./sharedsorest.o\r
+\r
+\r
+# Item # 131 -- sharedthetan --\r
+./sharedthetan.o : sharedthetan.cpp\r
+       $(CC) $(CC_OPTIONS) sharedthetan.cpp -c $(INCLUDE) -o ./sharedthetan.o\r
+\r
+\r
+# Item # 132 -- sharedthetayc --\r
+./sharedthetayc.o : sharedthetayc.cpp\r
+       $(CC) $(CC_OPTIONS) sharedthetayc.cpp -c $(INCLUDE) -o ./sharedthetayc.o\r
+\r
+\r
+# Item # 133 -- simpson --\r
+./simpson.o : simpson.cpp\r
+       $(CC) $(CC_OPTIONS) simpson.cpp -c $(INCLUDE) -o ./simpson.o\r
+\r
+\r
+# Item # 134 -- singlelinkage --\r
+./singlelinkage.o : singlelinkage.cpp\r
+       $(CC) $(CC_OPTIONS) singlelinkage.cpp -c $(INCLUDE) -o ./singlelinkage.o\r
+\r
+\r
+# Item # 135 -- sparsematrix --\r
+./sparsematrix.o : sparsematrix.cpp\r
+       $(CC) $(CC_OPTIONS) sparsematrix.cpp -c $(INCLUDE) -o ./sparsematrix.o\r
+\r
+\r
+# Item # 136 -- summarycommand --\r
+./summarycommand.o : summarycommand.cpp\r
+       $(CC) $(CC_OPTIONS) summarycommand.cpp -c $(INCLUDE) -o ./summarycommand.o\r
+\r
+\r
+# Item # 137 -- summarysharedcommand --\r
+./summarysharedcommand.o : summarysharedcommand.cpp\r
+       $(CC) $(CC_OPTIONS) summarysharedcommand.cpp -c $(INCLUDE) -o ./summarysharedcommand.o\r
+\r
+\r
+# Item # 138 -- uvest --\r
+./uvest.o : uvest.cpp\r
+       $(CC) $(CC_OPTIONS) uvest.cpp -c $(INCLUDE) -o ./uvest.o\r
+\r
+\r
+# Item # 139 -- validcalculator --\r
+./validcalculator.o : validcalculator.cpp\r
+       $(CC) $(CC_OPTIONS) validcalculator.cpp -c $(INCLUDE) -o ./validcalculator.o\r
+\r
+\r
+# Item # 140 -- validparameter --\r
+./validparameter.o : validparameter.cpp\r
+       $(CC) $(CC_OPTIONS) validparameter.cpp -c $(INCLUDE) -o ./validparameter.o\r
+\r
+\r
+# Item # 141 -- treenode --\r
+./treenode.o : treenode.cpp\r
+       $(CC) $(CC_OPTIONS) treenode.cpp -c $(INCLUDE) -o ./treenode.o\r
+\r
+\r
+# Item # 142 -- readtreecommand --\r
+./readtreecommand.o : readtreecommand.cpp\r
+       $(CC) $(CC_OPTIONS) readtreecommand.cpp -c $(INCLUDE) -o ./readtreecommand.o\r
+\r
+\r
+# Item # 143 -- reversecommand --\r
+./reversecommand.o : reversecommand.cpp\r
+       $(CC) $(CC_OPTIONS) reversecommand.cpp -c $(INCLUDE) -o ./reversecommand.o\r
+\r
+\r
+# Item # 144 -- trimseqscommand --\r
+./trimseqscommand.o : trimseqscommand.cpp\r
+       $(CC) $(CC_OPTIONS) trimseqscommand.cpp -c $(INCLUDE) -o ./trimseqscommand.o\r
+\r
+\r
+# Item # 145 -- slibshuff --\r
+./slibshuff.o : slibshuff.cpp\r
+       $(CC) $(CC_OPTIONS) slibshuff.cpp -c $(INCLUDE) -o ./slibshuff.o\r
+\r
+\r
+# Item # 146 -- libshuff --\r
+./libshuff.o : libshuff.cpp\r
+       $(CC) $(CC_OPTIONS) libshuff.cpp -c $(INCLUDE) -o ./libshuff.o\r
+\r
+\r
+# Item # 147 -- dlibshuff --\r
+./dlibshuff.o : dlibshuff.cpp\r
+       $(CC) $(CC_OPTIONS) dlibshuff.cpp -c $(INCLUDE) -o ./dlibshuff.o\r
+\r
+\r
+# Item # 148 -- mergefilecommand --\r
+./mergefilecommand.o : mergefilecommand.cpp\r
+       $(CC) $(CC_OPTIONS) mergefilecommand.cpp -c $(INCLUDE) -o ./mergefilecommand.o\r
+\r
+\r
+# Item # 149 -- coverage --\r
+./coverage.o : coverage.cpp\r
+       $(CC) $(CC_OPTIONS) coverage.cpp -c $(INCLUDE) -o ./coverage.o\r
+\r
+\r
+# Item # 150 -- whittaker --\r
+./whittaker.o : whittaker.cpp\r
+       $(CC) $(CC_OPTIONS) whittaker.cpp -c $(INCLUDE) -o ./whittaker.o\r
+\r
+\r
+# Item # 151 -- preclustercommand --\r
+./preclustercommand.o : preclustercommand.cpp\r
+       $(CC) $(CC_OPTIONS) preclustercommand.cpp -c $(INCLUDE) -o ./preclustercommand.o\r
+\r
+\r
+# Item # 152 -- otuhierarchycommand --\r
+./otuhierarchycommand.o : otuhierarchycommand.cpp\r
+       $(CC) $(CC_OPTIONS) otuhierarchycommand.cpp -c $(INCLUDE) -o ./otuhierarchycommand.o\r
+\r
+\r
+# Item # 153 -- setdircommand --\r
+./setdircommand.o : setdircommand.cpp\r
+       $(CC) $(CC_OPTIONS) setdircommand.cpp -c $(INCLUDE) -o ./setdircommand.o\r
+\r
+\r
+# Item # 154 -- getgroupcommand --\r
+./getgroupcommand.o : getgroupcommand.cpp\r
+       $(CC) $(CC_OPTIONS) getgroupcommand.cpp -c $(INCLUDE) -o ./getgroupcommand.o\r
+\r
+\r
+# Item # 155 -- getlabelcommand --\r
+./getlabelcommand.o : getlabelcommand.cpp\r
+       $(CC) $(CC_OPTIONS) getlabelcommand.cpp -c $(INCLUDE) -o ./getlabelcommand.o\r
+\r
+\r
+# Item # 156 -- secondarystructurecommand --\r
+./secondarystructurecommand.o : secondarystructurecommand.cpp\r
+       $(CC) $(CC_OPTIONS) secondarystructurecommand.cpp -c $(INCLUDE) -o ./secondarystructurecommand.o\r
+\r
+\r
+# Item # 157 -- mothurout --\r
+./mothurout.o : mothurout.cpp\r
+       $(CC) $(CC_OPTIONS) mothurout.cpp -c $(INCLUDE) -o ./mothurout.o\r
+\r
+\r
+# Item # 158 -- parselistscommand --\r
+./parselistscommand.o : parselistscommand.cpp\r
+       $(CC) $(CC_OPTIONS) parselistscommand.cpp -c $(INCLUDE) -o ./parselistscommand.o\r
+\r
+\r
+# Item # 159 -- readblast --\r
+./readblast.o : readblast.cpp\r
+       $(CC) $(CC_OPTIONS) readblast.cpp -c $(INCLUDE) -o ./readblast.o\r
+\r
+\r
+# Item # 160 -- chimeracheckrdp --\r
+./chimeracheckrdp.o : chimeracheckrdp.cpp\r
+       $(CC) $(CC_OPTIONS) chimeracheckrdp.cpp -c $(INCLUDE) -o ./chimeracheckrdp.o\r
+\r
+\r
+# Item # 161 -- hclustercommand --\r
+./hclustercommand.o : hclustercommand.cpp\r
+       $(CC) $(CC_OPTIONS) hclustercommand.cpp -c $(INCLUDE) -o ./hclustercommand.o\r
+\r
+\r
+# Item # 162 -- hcluster --\r
+./hcluster.o : hcluster.cpp\r
+       $(CC) $(CC_OPTIONS) hcluster.cpp -c $(INCLUDE) -o ./hcluster.o\r
+\r
+\r
+# Item # 163 -- getlistcountcommand --\r
+./getlistcountcommand.o : getlistcountcommand.cpp\r
+       $(CC) $(CC_OPTIONS) getlistcountcommand.cpp -c $(INCLUDE) -o ./getlistcountcommand.o\r
+\r
+\r
+# Item # 164 -- readcluster --\r
+./readcluster.o : readcluster.cpp\r
+       $(CC) $(CC_OPTIONS) readcluster.cpp -c $(INCLUDE) -o ./readcluster.o\r
+\r
+\r
+# Item # 165 -- ccode --\r
+./ccode.o : ccode.cpp\r
+       $(CC) $(CC_OPTIONS) ccode.cpp -c $(INCLUDE) -o ./ccode.o\r
+\r
+\r
+# Item # 166 -- taxonomyequalizer --\r
+./taxonomyequalizer.o : taxonomyequalizer.cpp\r
+       $(CC) $(CC_OPTIONS) taxonomyequalizer.cpp -c $(INCLUDE) -o ./taxonomyequalizer.o\r
+\r
+\r
+# Item # 167 -- phylotypecommand --\r
+./phylotypecommand.o : phylotypecommand.cpp\r
+       $(CC) $(CC_OPTIONS) phylotypecommand.cpp -c $(INCLUDE) -o ./phylotypecommand.o\r
+\r
+\r
+# Item # 168 -- classifyseqscommand --\r
+./classifyseqscommand.o : classifyseqscommand.cpp\r
+       $(CC) $(CC_OPTIONS) classifyseqscommand.cpp -c $(INCLUDE) -o ./classifyseqscommand.o\r
+\r
+\r
+# Item # 169 -- classify --\r
+./classify.o : classify.cpp\r
+       $(CC) $(CC_OPTIONS) classify.cpp -c $(INCLUDE) -o ./classify.o\r
+\r
+\r
+# Item # 170 -- phylotree --\r
+./phylotree.o : phylotree.cpp\r
+       $(CC) $(CC_OPTIONS) phylotree.cpp -c $(INCLUDE) -o ./phylotree.o\r
+\r
+\r
+# Item # 171 -- bayesian --\r
+./bayesian.o : bayesian.cpp\r
+       $(CC) $(CC_OPTIONS) bayesian.cpp -c $(INCLUDE) -o ./bayesian.o\r
+\r
+\r
+# Item # 172 -- alignmentdb --\r
+./alignmentdb.o : alignmentdb.cpp\r
+       $(CC) $(CC_OPTIONS) alignmentdb.cpp -c $(INCLUDE) -o ./alignmentdb.o\r
+\r
+\r
+# Item # 173 -- knn --\r
+./knn.o : knn.cpp\r
+       $(CC) $(CC_OPTIONS) knn.cpp -c $(INCLUDE) -o ./knn.o\r
+\r
+\r
+# Item # 174 -- distancedb --\r
+./distancedb.o : distancedb.cpp\r
+       $(CC) $(CC_OPTIONS) distancedb.cpp -c $(INCLUDE) -o ./distancedb.o\r
+\r
+\r
+# Item # 175 -- chimeraslayer --\r
+./chimeraslayer.o : chimeraslayer.cpp\r
+       $(CC) $(CC_OPTIONS) chimeraslayer.cpp -c $(INCLUDE) -o ./chimeraslayer.o\r
+\r
+\r
+# Item # 176 -- slayer --\r
+./slayer.o : slayer.cpp\r
+       $(CC) $(CC_OPTIONS) slayer.cpp -c $(INCLUDE) -o ./slayer.o\r
+\r
+\r
+# Item # 177 -- pcacommand --\r
+./pcacommand.o : pcacommand.cpp\r
+       $(CC) $(CC_OPTIONS) pcacommand.cpp -c $(INCLUDE) -o ./pcacommand.o\r
+\r
+\r
+# Item # 178 -- formatcolumn --\r
+./formatcolumn.o : formatcolumn.cpp\r
+       $(CC) $(CC_OPTIONS) formatcolumn.cpp -c $(INCLUDE) -o ./formatcolumn.o\r
+\r
+\r
+# Item # 179 -- formatphylip --\r
+./formatphylip.o : formatphylip.cpp\r
+       $(CC) $(CC_OPTIONS) formatphylip.cpp -c $(INCLUDE) -o ./formatphylip.o\r
+\r
+\r
+# Item # 180 -- mgclustercommand --\r
+./mgclustercommand.o : mgclustercommand.cpp\r
+       $(CC) $(CC_OPTIONS) mgclustercommand.cpp -c $(INCLUDE) -o ./mgclustercommand.o\r
+\r
+\r
+# Item # 181 -- getsharedotucommand --\r
+./getsharedotucommand.o : getsharedotucommand.cpp\r
+       $(CC) $(CC_OPTIONS) getsharedotucommand.cpp -c $(INCLUDE) -o ./getsharedotucommand.o\r
+\r
+\r
+# Item # 182 -- maligner --\r
+./maligner.o : maligner.cpp\r
+       $(CC) $(CC_OPTIONS) maligner.cpp -c $(INCLUDE) -o ./maligner.o\r
+\r
+\r
+# Item # 183 -- chimerarealigner --\r
+./chimerarealigner.o : chimerarealigner.cpp\r
+       $(CC) $(CC_OPTIONS) chimerarealigner.cpp -c $(INCLUDE) -o ./chimerarealigner.o\r
+\r
+\r
+# Item # 184 -- bergerparker --\r
+./bergerparker.o : bergerparker.cpp\r
+       $(CC) $(CC_OPTIONS) bergerparker.cpp -c $(INCLUDE) -o ./bergerparker.o\r
+\r
+\r
+# Item # 185 -- bstick --\r
+./bstick.o : bstick.cpp\r
+       $(CC) $(CC_OPTIONS) bstick.cpp -c $(INCLUDE) -o ./bstick.o\r
+\r
+\r
+# Item # 186 -- sharedkstest --\r
+./sharedkstest.o : sharedkstest.cpp\r
+       $(CC) $(CC_OPTIONS) sharedkstest.cpp -c $(INCLUDE) -o ./sharedkstest.o\r
+\r
+\r
+# Item # 187 -- qstat --\r
+./qstat.o : qstat.cpp\r
+       $(CC) $(CC_OPTIONS) qstat.cpp -c $(INCLUDE) -o ./qstat.o\r
+\r
+\r
+# Item # 188 -- shen --\r
+./shen.o : shen.cpp\r
+       $(CC) $(CC_OPTIONS) shen.cpp -c $(INCLUDE) -o ./shen.o\r
+\r
+\r
+# Item # 189 -- logsd --\r
+./logsd.o : logsd.cpp\r
+       $(CC) $(CC_OPTIONS) logsd.cpp -c $(INCLUDE) -o ./logsd.o\r
+\r
+\r
+# Item # 190 -- geom --\r
+./geom.o : geom.cpp\r
+       $(CC) $(CC_OPTIONS) geom.cpp -c $(INCLUDE) -o ./geom.o\r
+\r
+# Item # 191 -- parsesffcommand --\r
+./parsesffcommand.o : parsesffcommand.cpp\r
+       $(CC) $(CC_OPTIONS) parsesffcommand.cpp -c $(INCLUDE) -o ./parsesffcommand.o\r
+\r
+# Item # 192 -- chimeraccodecommand --\r
+./chimeraccodecommand.o : chimeraccodecommand.cpp\r
+       $(CC) $(CC_OPTIONS) chimeraccodecommand.cpp -c $(INCLUDE) -o ./chimeraccodecommand.o\r
+\r
+# Item # 193 -- chimeracheckcommand --\r
+./chimeracheckcommand.o : chimeracheckcommand.cpp\r
+       $(CC) $(CC_OPTIONS) chimeracheckcommand.cpp -c $(INCLUDE) -o ./chimeracheckcommand.o\r
+\r
+\r
+# Item # 194 -- chimeraslayercommand --\r
+./chimeraslayercommand.o : chimeraslayercommand.cpp\r
+       $(CC) $(CC_OPTIONS) chimeraslayercommand.cpp -c $(INCLUDE) -o ./chimeraslayercommand.o\r
+\r
+# Item # 195 -- chimerapintailcommand --\r
+./chimerapintailcommand.o : chimerapintailcommand.cpp\r
+       $(CC) $(CC_OPTIONS) chimerapintailcommand.cpp -c $(INCLUDE) -o ./chimerapintailcommand.o\r
+\r
+# Item # 196 -- chimerabellerophoncommand --\r
+./chimerabellerophoncommand.o : chimerabellerophoncommand.cpp\r
+       $(CC) $(CC_OPTIONS) chimerabellerophoncommand.cpp -c $(INCLUDE) -o ./chimerabellerophoncommand.o\r
+\r
+\r
+##### END RUN ####\r
index 6d5acb2386ad0ccd836ee41d2d8f5b24c5e4048e..6eb9c7d72f99590ec22b2f4b8aa758057a7f24f2 100644 (file)
@@ -538,12 +538,12 @@ ListVector* MGClusterCommand::mergeOPFs(map<string, int> binInfo, float dist){
 void MGClusterCommand::sortHclusterFiles(string unsortedDist, string unsortedOverlap) {
        try {
                //sort distFile
-               string sortedDistFile = sortFile(unsortedDist);
+               string sortedDistFile = sortFile(unsortedDist, outputDir);
                remove(unsortedDist.c_str());  //delete unsorted file
                distFile = sortedDistFile;
                
                //sort overlap file
-               string sortedOverlapFile = sortFile(unsortedOverlap);
+               string sortedOverlapFile = sortFile(unsortedOverlap, outputDir);
                remove(unsortedOverlap.c_str());  //delete unsorted file
                overlapFile = sortedOverlapFile;
        }
index 623601207afe90ae92a691646110eac2e9a18f79..cb72ac635299285b9fe0775833e6fed18ae1369d 100644 (file)
-/*
- *  interface.cpp
- *  
- *
- *  Created by Pat Schloss on 8/14/08.
- *  Copyright 2008 Patrick D. Schloss. All rights reserved.
- *
- */
-#include "mothur.h"
-#include "engine.hpp"
-#include "globaldata.hpp"
-#include "mothurout.h"
-
-
-/**************************************************************************************************/
-
-GlobalData* GlobalData::_uniqueInstance = 0;
-CommandFactory* CommandFactory::_uniqueInstance = 0;
-MothurOut* MothurOut::_uniqueInstance = 0;
-
-/***********************************************************************/
-volatile int ctrlc_pressed = 0;
-void ctrlc_handler ( int sig ) {
-       MothurOut* m = MothurOut::getInstance();
-    ctrlc_pressed = 1;
-       m->control_pressed = ctrlc_pressed;
-       
-       if (m->executing) { //if mid command quit execution, else quit mothur
-               m->mothurOutEndLine(); m->mothurOut("quitting command...");  m->mothurOutEndLine();
-       }else{
-               m->mothurOut("quitting mothur");  m->mothurOutEndLine();
-               exit(1);
-       }
-}
-/***********************************************************************/
-int main(int argc, char *argv[]){
-       MothurOut* m = MothurOut::getInstance();
-       try {
-               
-               signal(SIGINT, ctrlc_handler );
-                               
-               time_t ltime = time(NULL); /* calendar time */  
-               string logFileName = "mothur." + toString(ltime) + ".logfile";
-               
-               #ifdef USE_MPI
-                       MPI_Init(&argc, &argv); 
-               #endif
-
-               m->setFileName(logFileName);
-               
-                               
-               //version
-               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
-                       system("clear");
-                       #if defined (__APPLE__) || (__MACH__)
-                               m->mothurOutJustToLog("Mac version");
-                               m->mothurOutEndLine(); m->mothurOutEndLine();
-                       #else
-                               m->mothurOutJustToLog("Linux version");
-                               >m->mothurOutEndLine(); m->mothurOutEndLine();
-                       #endif
-
-               #else
-                       system("CLS");
-                       m->mothurOutJustToLog("Windows version");
-                       m->mothurOutEndLine(); m->mothurOutEndLine();
-               #endif          
-               
-               #ifdef USE_READLINE
-                       m->mothurOutJustToLog("Using ReadLine");
-                       m->mothurOutEndLine(); m->mothurOutEndLine();
-               #endif
-               
-               //header
-               m->mothurOut("mothur v.1.8");
-               m->mothurOutEndLine();          
-               m->mothurOut("Last updated: 2/02/2010");
-               m->mothurOutEndLine();  
-               m->mothurOutEndLine();          
-               m->mothurOut("by");
-               m->mothurOutEndLine();          
-               m->mothurOut("Patrick D. Schloss");
-               m->mothurOutEndLine();
-               m->mothurOutEndLine();                  
-               m->mothurOut("Department of Microbiology & Immunology");
-               m->mothurOutEndLine();  
-               m->mothurOut("University of Michigan");
-               m->mothurOutEndLine();                  
-               m->mothurOut("pschloss@umich.edu");
-               m->mothurOutEndLine();          
-               m->mothurOut("http://www.mothur.org");
-               m->mothurOutEndLine();
-               m->mothurOutEndLine();
-               m->mothurOut("When using, please cite:");
-               m->mothurOutEndLine();
-               m->mothurOut("Schloss, P.D., et al., Introducing mothur: Open-source, platform-independent, community-supported software for describing and comparing microbial communities. Appl Environ Microbiol, 2009. 75(23):7537-41.");
-               m->mothurOutEndLine();  
-               m->mothurOutEndLine();          
-               m->mothurOut("Distributed under the GNU General Public License");
-               m->mothurOutEndLine();
-               m->mothurOutEndLine();                  
-               m->mothurOut("Type 'help()' for information on the commands that are available");
-               m->mothurOutEndLine();
-               m->mothurOutEndLine();                  
-               m->mothurOut("Type 'quit()' to exit program");
-               m->mothurOutEndLine();  
-               
-               #ifdef USE_MPI
-                       m->mothurOutJustToLog("Using MPI\tversion ");
-                       int version, subversion;
-                       MPI_Get_version(&version, &subversion);
-                       m->mothurOutJustToLog(toString(version) + "." + toString(subversion) + "\n");
-               #endif
-               
-               //srand(54321);
-               srand( (unsigned)time( NULL ) );
-               
-               Engine* mothur;
-               bool bail = 0;
-               string input;
-
-               if(argc>1){
-                       input = argv[1];
-
-                       if (input[0] == '#') {
-                               m->mothurOutJustToLog("Script Mode");
-                               m->mothurOutEndLine(); m->mothurOutEndLine();
-
-                               mothur = new ScriptEngine(argv[0], argv[1]);
-                       }else{
-                               m->mothurOutJustToLog("Batch Mode");
-                               m->mothurOutEndLine(); m->mothurOutEndLine();
-                               
-                               mothur = new BatchEngine(argv[0], argv[1]);
-                       }
-               }
-               else{
-                       m->mothurOutJustToLog("Interactive Mode");
-                       m->mothurOutEndLine(); m->mothurOutEndLine();
-                       
-                       mothur = new InteractEngine(argv[0]);   
-               }
-               
-               while(bail == 0)        {       bail = mothur->getInput();      }
-               
-               string outputDir = mothur->getOutputDir();
-               string newlogFileName = outputDir + logFileName;
-       
-               //need this because m->mothurOut makes the logfile, but doesn't know where to put it
-               rename(logFileName.c_str(), newlogFileName.c_str()); //logfile with timestamp
-               
-               delete mothur;
-               
-               #ifdef USE_MPI
-                       MPI_Finalize();
-               #endif
-               
-               return 0;
-       }
-       catch(exception& e) {
-               m->errorOut(e, "mothur", "main");
-               exit(1);
-       }
-}
-
-/**************************************************************************************************/
-
+/*\r
+ *  interface.cpp\r
+ *  \r
+ *\r
+ *  Created by Pat Schloss on 8/14/08.\r
+ *  Copyright 2008 Patrick D. Schloss. All rights reserved.\r
+ *\r
+ */\r
\r
+#include "mothur.h"\r
+#include "engine.hpp"\r
+#include "globaldata.hpp"\r
+#include "mothurout.h"\r
+\r
+\r
+/**************************************************************************************************/\r
+\r
+GlobalData* GlobalData::_uniqueInstance = 0;\r
+CommandFactory* CommandFactory::_uniqueInstance = 0;\r
+MothurOut* MothurOut::_uniqueInstance = 0;\r
+\r
+/***********************************************************************/\r
+volatile int ctrlc_pressed = 0;\r
+void ctrlc_handler ( int sig ) {\r
+       MothurOut* m = MothurOut::getInstance();\r
+    ctrlc_pressed = 1;\r
+       m->control_pressed = ctrlc_pressed;\r
+       \r
+       if (m->executing) { //if mid command quit execution, else quit mothur\r
+               m->mothurOutEndLine(); m->mothurOut("quitting command...");  m->mothurOutEndLine();\r
+       }else{\r
+               m->mothurOut("quitting mothur");  m->mothurOutEndLine();\r
+               exit(1);\r
+       }\r
+}\r
+/***********************************************************************/\r
+int main(int argc, char *argv[]){\r
+       MothurOut* m = MothurOut::getInstance();\r
+       try {\r
+               \r
+               signal(SIGINT, ctrlc_handler );\r
+                               \r
+               time_t ltime = time(NULL); /* calendar time */  \r
+               string logFileName = "mothur." + toString(ltime) + ".logfile";\r
+               \r
+               #ifdef USE_MPI\r
+                       MPI_Init(&argc, &argv); \r
+               #endif\r
+\r
+               m->setFileName(logFileName);\r
+               \r
+                               \r
+               //version\r
+               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)\r
+                       system("clear");\r
+                       #if defined (__APPLE__) || (__MACH__)\r
+                               m->mothurOutJustToLog("Mac version");\r
+                               m->mothurOutEndLine(); m->mothurOutEndLine();\r
+                       #else\r
+                               m->mothurOutJustToLog("Linux version");\r
+                               >m->mothurOutEndLine(); m->mothurOutEndLine();\r
+                       #endif\r
+\r
+               #else\r
+                       system("CLS");\r
+                       m->mothurOutJustToLog("Windows version");\r
+                       m->mothurOutEndLine(); m->mothurOutEndLine();\r
+               #endif          \r
+               \r
+               #ifdef USE_READLINE\r
+                       m->mothurOutJustToLog("Using ReadLine");\r
+                       m->mothurOutEndLine(); m->mothurOutEndLine();\r
+               #endif\r
+               \r
+               //header\r
+               m->mothurOut("mothur v.1.9");\r
+               m->mothurOutEndLine();          \r
+               m->mothurOut("Last updated: 4/09/2010");\r
+               m->mothurOutEndLine();  \r
+               m->mothurOutEndLine();          \r
+               m->mothurOut("by");\r
+               m->mothurOutEndLine();          \r
+               m->mothurOut("Patrick D. Schloss");\r
+               m->mothurOutEndLine();\r
+               m->mothurOutEndLine();                  \r
+               m->mothurOut("Department of Microbiology & Immunology");\r
+               m->mothurOutEndLine();  \r
+               m->mothurOut("University of Michigan");\r
+               m->mothurOutEndLine();                  \r
+               m->mothurOut("pschloss@umich.edu");\r
+               m->mothurOutEndLine();          \r
+               m->mothurOut("http://www.mothur.org");\r
+               m->mothurOutEndLine();\r
+               m->mothurOutEndLine();\r
+               m->mothurOut("When using, please cite:");\r
+               m->mothurOutEndLine();\r
+               m->mothurOut("Schloss, P.D., et al., Introducing mothur: Open-source, platform-independent, community-supported software for describing and comparing microbial communities. Appl Environ Microbiol, 2009. 75(23):7537-41.");\r
+               m->mothurOutEndLine();  \r
+               m->mothurOutEndLine();          \r
+               m->mothurOut("Distributed under the GNU General Public License");\r
+               m->mothurOutEndLine();\r
+               m->mothurOutEndLine();                  \r
+               m->mothurOut("Type 'help()' for information on the commands that are available");\r
+               m->mothurOutEndLine();\r
+               m->mothurOutEndLine();                  \r
+               m->mothurOut("Type 'quit()' to exit program");\r
+               m->mothurOutEndLine();  \r
+               \r
+               #ifdef USE_MPI\r
+                       m->mothurOutJustToLog("Using MPI\tversion ");\r
+                       int version, subversion;\r
+                       MPI_Get_version(&version, &subversion);\r
+                       m->mothurOutJustToLog(toString(version) + "." + toString(subversion) + "\n");\r
+               #endif\r
+               \r
+               //srand(54321);\r
+               srand( (unsigned)time( NULL ) );\r
+               \r
+               Engine* mothur;\r
+               bool bail = 0;\r
+               string input;\r
+\r
+               if(argc>1){\r
+                       input = argv[1];\r
+\r
+                       if (input[0] == '#') {\r
+                               m->mothurOutJustToLog("Script Mode");\r
+                               m->mothurOutEndLine(); m->mothurOutEndLine();\r
+\r
+                               mothur = new ScriptEngine(argv[0], argv[1]);\r
+                       }else{\r
+                               m->mothurOutJustToLog("Batch Mode");\r
+                               m->mothurOutEndLine(); m->mothurOutEndLine();\r
+                               \r
+                               mothur = new BatchEngine(argv[0], argv[1]);\r
+                       }\r
+               }\r
+               else{\r
+                       m->mothurOutJustToLog("Interactive Mode");\r
+                       m->mothurOutEndLine(); m->mothurOutEndLine();\r
+                       \r
+                       mothur = new InteractEngine(argv[0]);   \r
+               }\r
+               \r
+               while(bail == 0)        {       bail = mothur->getInput();      }\r
+               \r
+               string outputDir = mothur->getOutputDir();\r
+               string newlogFileName = outputDir + logFileName;\r
+               \r
+               //closes logfile so we can rename\r
+               m->closeLog();\r
+       \r
+               //need this because m->mothurOut makes the logfile, but doesn't know where to put it\r
+               rename(logFileName.c_str(), newlogFileName.c_str()); //logfile with timestamp\r
+               \r
+               delete mothur;\r
+               \r
+               #ifdef USE_MPI\r
+                       MPI_Finalize();\r
+               #endif\r
+               \r
+               return 0;\r
+       }\r
+       catch(exception& e) {\r
+               m->errorOut(e, "mothur", "main");\r
+               exit(1);\r
+       }\r
+}\r
+\r
+/**************************************************************************************************/\r
+\r
index dcb026c310ef7052116bb61f5b3517e24ae1e39e..062c4814dfa4addeeb923f586c601717daca7c66 100644 (file)
--- a/mothur.h
+++ b/mothur.h
@@ -459,15 +459,16 @@ inline string getFullPathName(string fileName){
                        
                
                        int index = dirs.size()-1;
-               
+       
                        while((pos = path.rfind("./")) != -1) { //while you don't have a complete path
-                               if (path[(pos-1)] == '.') { //you want your parent directory ../
+                               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; 
+                               }else if (pos == 1) { break;  //you are at the end
                                }else { cout << "cannot resolve path for " <<  fileName << endl; return fileName; }
                        }
                
@@ -501,14 +502,15 @@ inline string getFullPathName(string fileName){
                        int index = dirs.size()-1;
                                
                        while((pos = path.rfind(".\\")) != -1) { //while you don't have a complete path
-                               if (path[(pos-1)] == '.') { //you want your parent directory ../
+                               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; 
-                               }else {  cout << "cannot resolve path for " <<  fileName << endl;  return fileName; }
+                               }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--) {
@@ -880,9 +882,12 @@ inline void appendFiles(string temp, string filename) {
 }
 
 /**************************************************************************************************/
-inline string sortFile(string distFile){
+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)
index fe6fd26b09765e43b1032632564401ae86f36c6c..ca1a40b32ddbd86e185ddee6e59366e4b3aace94 100644 (file)
-/*
- *  m->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);
-       }
-}
-/*********************************************************************************************/
-MothurOut::~MothurOut() {
-       try {
-               _uniqueInstance = 0;
-               
-               #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", "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) {
-       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();
-}
-/*********************************************************************************************/
-
-
-
-
-
+/*\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::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
+       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
+\r
+\r
+\r
+\r
+\r
index 7b4732b45108b05cca9b17be98e9205b50e1a2ab..d2ba6b94f0b12a6bd31df7763e0d4b32d705d3ea 100644 (file)
@@ -1,44 +1,46 @@
-#ifndef MOTHUROUT_H
-#define MOTHUROUT_H
-
-/*
- *  m->mothurOut.h
- *  Mothur
- *
- *  Created by westcott on 2/25/10.
- *  Copyright 2010 Schloss Lab. All rights reserved.
- *
- */
-
-#include "mothur.h"
-
-/***********************************************/
-
-class MothurOut {
-       
-       public:
-               static MothurOut* getInstance();
-               void setFileName(string);
-               
-               void mothurOut(string);
-               void mothurOutEndLine();
-               void mothurOutJustToLog(string);
-               void errorOut(exception&, string, string);
-               int control_pressed;
-               bool executing;
-
-       private:
-               static MothurOut* _uniqueInstance;
-               MothurOut( const MothurOut& ); // Disable copy constructor
-               void operator=( const MothurOut& ); // Disable assignment operator
-               MothurOut() {};
-               ~MothurOut();
-
-               string logFileName;
-               ofstream out;
-
-};
-/***********************************************/
-
-#endif
-
+#ifndef MOTHUROUT_H\r
+#define MOTHUROUT_H\r
+\r
+/*\r
+ *  mothurOut.h\r
+ *  Mothur\r
+ *\r
+ *  Created by westcott on 2/25/10.\r
+ *  Copyright 2010 Schloss Lab. All rights reserved.\r
+ *\r
+ */\r
+\r
+#include "mothur.h"\r
+\r
+/***********************************************/\r
+\r
+class MothurOut {\r
+       \r
+       public:\r
+               static MothurOut* getInstance();\r
+               void setFileName(string);\r
+               \r
+               void mothurOut(string);\r
+               void mothurOutEndLine();\r
+               void mothurOutJustToLog(string);\r
+               void errorOut(exception&, string, string);\r
+               void closeLog();\r
+\r
+               int control_pressed;\r
+               bool executing;\r
+\r
+       private:\r
+               static MothurOut* _uniqueInstance;\r
+               MothurOut( const MothurOut& ); // Disable copy constructor\r
+               void operator=( const MothurOut& ); // Disable assignment operator\r
+               MothurOut() { control_pressed = false; };\r
+               ~MothurOut();\r
+\r
+               string logFileName;\r
+               ofstream out;\r
+\r
+};\r
+/***********************************************/\r
+\r
+#endif\r
+\r
index 42d374d0b9e74842e4d3f289c75ae61645556ebd..0c30898dd4085f5000a68c005ccbeee1bcd3650c 100644 (file)
@@ -17,19 +17,23 @@ void NameAssignment::readMap(){
                string firstCol, secondCol, skip;
        //      int index = 0;
        
-       
-//             map<string, string> data;
+               
+               map<string, int>::iterator itData;
                int rowIndex = 0;
-
+               
                while(fileHandle){
                        fileHandle >> firstCol;                         //read from first column
                        fileHandle >> secondCol;                        //read from second column
+                                               
+                       itData = (*this).find(firstCol);
+                       if (itData == (*this).end()) {
+                       
+                               (*this)[firstCol] = rowIndex++;
+                               list.push_back(secondCol);              //adds data's value to list
+                               reverse[rowIndex] = firstCol;
+                               
+                       }else{  m->mothurOut(firstCol + " is already in namesfile. I will use first definition."); m->mothurOutEndLine();  }
                        
-//                     data[firstCol] = secondCol;                     //store data in map
-
-                       list.push_back(secondCol);              //adds data's value to list
-                       reverse[rowIndex] = firstCol;
-                       (*this)[firstCol] = rowIndex++;
                        gobble(fileHandle);
                }
                fileHandle.close();
index 9955a19f677dd96cccf7b9f4171e0f7d28b9deac..d09910b48de9003865f06fd21d165a71e989dde9 100644 (file)
@@ -97,7 +97,7 @@ ParseListCommand::ParseListCommand(string option)  {
 //**********************************************************************************************************************
 void ParseListCommand::help(){
        try {
-               m->mothurOut("The parse.list command reads a list and group file and generates a list file for each group in the groupfile \n");
+               m->mothurOut("The parse.list command reads a list and group file and generates a list file for each group in the groupfile. \n");
                m->mothurOut("The parse.list command parameters are list, group and label.\n");
                m->mothurOut("The list and group parameters are required.\n");
                m->mothurOut("The label parameter is used to read specific labels in your input you want to use.\n");
index ed26be014d3b826bef6ec6eabaee2c035e1d967a..d210ce811a78c61b77fd8728a8d9fca650f3a7dc 100644 (file)
@@ -453,7 +453,6 @@ bool ParseSFFCommand::screenSeq(string& sequence, int& group){
                }
        }
        
-       
        int fPrimer = 1;
        for(int i=0;i<numFPrimers;i++){
                if(compareDNASeq(forPrimer[i], sequence.substr(barcodeLength,forPrimer[i].length()))){
@@ -464,7 +463,7 @@ bool ParseSFFCommand::screenSeq(string& sequence, int& group){
                        fPrimer = 0;
                }
        }
-       
+
        int rPrimer = 1;
        for(int i=0;i<numRPrimers;i++){
                if(compareDNASeq(revPrimer[i], sequence.substr(sequence.length()-revPrimer[i].length(),revPrimer[i].length()))){
index 1001542ea36548742a2c92b809875fd4e7ec4f89..3cdd6acb2a33c38daf4af882253ad2c34acc39a6 100644 (file)
@@ -29,6 +29,7 @@ PhyloTree::PhyloTree(){
 
 PhyloTree::PhyloTree(string tfile){
        try {
+               m = MothurOut::getInstance();
                numNodes = 1;
                numSeqs = 0;
                tree.push_back(TaxNode("Root"));
@@ -61,8 +62,10 @@ string PhyloTree::getNextTaxon(string& heirarchy){
        try {
                string currentLevel = "";
                if(heirarchy != ""){
-                       currentLevel=heirarchy.substr(0,heirarchy.find_first_of(';'));
-                       heirarchy=heirarchy.substr(heirarchy.find_first_of(';')+1);
+                       int pos = heirarchy.find_first_of(';');
+                       currentLevel=heirarchy.substr(0,pos);
+                       if (pos != (heirarchy.length()-1)) {  heirarchy=heirarchy.substr(pos+1);  }
+                       else { heirarchy = ""; }
                }
                return currentLevel;
        }
@@ -74,7 +77,7 @@ string PhyloTree::getNextTaxon(string& heirarchy){
 
 /**************************************************************************************************/
 
-void PhyloTree::addSeqToTree(string seqName, string seqTaxonomy){
+int PhyloTree::addSeqToTree(string seqName, string seqTaxonomy){
        try {
                numSeqs++;
                
@@ -90,6 +93,8 @@ void PhyloTree::addSeqToTree(string seqName, string seqTaxonomy){
                        
                        level++;
                        
+                       if (m->control_pressed) { return 0; }
+                       
                        //somehow the parent is getting one too many accnos
                        //use print to reassign the taxa id
                        taxon = getNextTaxon(seqTaxonomy);
@@ -154,7 +159,7 @@ void PhyloTree::assignHeirarchyIDs(int index){
                        tree[it->second].heirarchyID = tree[index].heirarchyID + '.' + toString(counter);
                        counter++;
                        tree[it->second].level = tree[index].level + 1;
-                       
+                                               
                        //save maxLevel for binning the unclassified seqs
                        if (tree[it->second].level > maxLevel) { maxLevel = tree[it->second].level; } 
                        
index 345e2e72228d711942e2f0d036eed0bda8c8fa67..75abffcf8879898910745343d045b56c619569b9 100644 (file)
@@ -33,7 +33,7 @@ public:
        PhyloTree();
        PhyloTree(string);  //pass it a taxonomy file and it makes the tree
        ~PhyloTree() {};
-       void addSeqToTree(string, string);
+       int addSeqToTree(string, string);
        void assignHeirarchyIDs(int);
        void print(ofstream&);
        vector<int> getGenusNodes();
index 410ada9e4ec921fd8f0ba3ddb5aa362fd0390995..1828eb193c0a6e0dcc625df9cc36ef7fb78f931c 100644 (file)
@@ -119,7 +119,7 @@ int PhylotypeCommand::execute(){
                //reads in taxonomy file and makes all the taxonomies the same length 
                //by appending the last taxon to a given taxonomy as many times as needed to 
                //make it as long as the longest taxonomy in the file 
-               TaxEqualizer* taxEqual = new TaxEqualizer(taxonomyFileName, cutoff);
+               TaxEqualizer* taxEqual = new TaxEqualizer(taxonomyFileName, cutoff, outputDir);
                
                if (m->control_pressed) { delete taxEqual; return 0; }
                
index acbebaeece94faf995cd9d1a26112e40185314b8..c8a8bc7b5074bf91ea46e2c30f2364a509d2c5ff 100644 (file)
 
 /***********************************************************************/
 
-ReadCluster::ReadCluster(string distfile, float c){
+ReadCluster::ReadCluster(string distfile, float c, string o){
                globaldata = GlobalData::getInstance();
                m = MothurOut::getInstance();
         distFile = distfile;
                cutoff = c;
+               outputDir = o;
 }
 
 /***********************************************************************/
@@ -28,7 +29,7 @@ int ReadCluster::read(NameAssignment* nameMap){
                
                if (m->control_pressed) { return 0; }
                
-               OutPutFile = sortFile(distFile);
+               OutPutFile = sortFile(distFile, outputDir);
                
                return 0;
                        
index 4574c8071616b47f389527f2fd90a5236326f4cd..fae7c2653890c01bdaed816a61202b80fda7da80 100644 (file)
@@ -21,7 +21,7 @@
 class ReadCluster {
        
 public:
-       ReadCluster(string, float);
+       ReadCluster(string, float, string);
        ~ReadCluster();
        int read(NameAssignment*);
        string getOutputFile() { return OutPutFile; }
@@ -30,7 +30,7 @@ public:
        
 private:
        GlobalData* globaldata;
-       string distFile;
+       string distFile, outputDir;
        string OutPutFile, format;
        ListVector* list;
        float cutoff;
index f61a40c483b69f7418ca4d2702ca995f4180f3e2..f29f70b11fd66d8b8d9a87fdb5502ed289c7d657 100644 (file)
@@ -53,6 +53,7 @@ int ReadColumnMatrix::read(NameAssignment* nameMap){
                        if(itB == nameMap->end()){
                                cerr << "ABError: Sequence '" << secondName << "' was not found in the names file, please correct\n"; exit(1);
                        }
+//if (((itA->second == 8) && (itB->second == 1588)) || ((itA->second == 1588) && (itB->second == 8))) { cout << "found it" << endl; }
 
                        if (distance == -1) { distance = 1000000; }
                        else if (globaldata->sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.
index 4ad63da5655b4bb6118d09b339f3be0f3651dd04..30dc55343d46e0656c7123aba7afddea7f4b3a77 100644 (file)
@@ -34,7 +34,7 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                        for (it = parameters.begin(); it != parameters.end(); it++) { 
                                if (validParameter.isValidParameter(it->first, myArray, it->second) != true) {  abort = true;  }
                        }
-                       
+       
                        globaldata->newRead();
                        
                        //if the user changes the input directory command factory will send this info to us in the output parameter 
@@ -156,18 +156,17 @@ ReadOtuCommand::ReadOtuCommand(string option)  {
                        }
                        
                        globaldata->allLines = allLines;
-                       
+               
                        orderfile = validParameter.validFile(parameters, "order", true);
                        if (orderfile == "not open") { abort = true; }  
                        else if (orderfile == "not found") { orderfile = ""; }
                        else {  globaldata->setOrderFile(orderfile);    }
                        
-                       
+                               
                        if (abort == false) {
                                //gets whichever one of the above is set
                                filename = globaldata->inputFileName;
                        }
-
                }
 
        }
@@ -204,17 +203,14 @@ void ReadOtuCommand::help(){
 
 
 //**********************************************************************************************************************
-
-ReadOtuCommand::~ReadOtuCommand(){
-       }
-
+ReadOtuCommand::~ReadOtuCommand(){}
 //**********************************************************************************************************************
 
 int ReadOtuCommand::execute(){
        try {
        
                if (abort == true) {    return 0;       }
-               
+       
                if (globaldata->getFormat() == "shared") {
                        
                        shared = new SharedCommand(outputDir);
@@ -225,11 +221,11 @@ int ReadOtuCommand::execute(){
                                globaldata->setListFile("");
                                globaldata->setGroupFile("");
                                globaldata->setSharedFile("");
-                       }else {
-                               m->mothurOutEndLine();
-                               m->mothurOut("Output File Name: "); m->mothurOutEndLine();
-                               m->mothurOut(globaldata->getSharedFile()); m->mothurOutEndLine();       
-                               m->mothurOutEndLine();
+                       }else { //shared command outputs the filenames
+                               //m->mothurOutEndLine();
+                               //m->mothurOut("Output File Name: "); m->mothurOutEndLine();
+                               //m->mothurOut(globaldata->getSharedFile()); m->mothurOutEndLine();     
+                               //m->mothurOutEndLine();
                        }
                        
                        delete shared;
index 07e946b78eb8d7d56c7d09a91fd2fb90fc8564a5..43ec945ad49e45ba933b866ac55995ed3e11e62d 100644 (file)
@@ -199,7 +199,7 @@ int RemoveSeqsCommand::execute(){
 int RemoveSeqsCommand::readFasta(){
        try {
                if (outputDir == "") {  outputDir += hasPath(fastafile);  }
-               string outputFileName = getRootName(fastafile) + "pick" + getExtension(fastafile);
+               string outputFileName = outputDir + getRootName(getSimpleName(fastafile)) + "pick" + getExtension(fastafile);
                ofstream out;
                openOutputFile(outputFileName, out);
                
@@ -245,7 +245,7 @@ int RemoveSeqsCommand::readFasta(){
 int RemoveSeqsCommand::readList(){
        try {
                if (outputDir == "") {  outputDir += hasPath(listfile);  }
-               string outputFileName = getRootName(listfile) + "pick" +  getExtension(listfile);
+               string outputFileName = outputDir + getRootName(getSimpleName(listfile)) + "pick" +  getExtension(listfile);
                ofstream out;
                openOutputFile(outputFileName, out);
                
@@ -316,8 +316,8 @@ int RemoveSeqsCommand::readList(){
 int RemoveSeqsCommand::readName(){
        try {
                if (outputDir == "") {  outputDir += hasPath(namefile);  }
-               string outputFileName = getRootName(namefile) + "pick" + getExtension(namefile);
-               string outputFileName2 = getRootName(namefile) + "dups.accnos";
+               string outputFileName = outputDir + getRootName(getSimpleName(namefile)) + "pick" + getExtension(namefile);
+               string outputFileName2 = outputDir + getRootName(getSimpleName(namefile)) + "dups.accnos";
 
                ofstream out2;
                if (dups) {      openOutputFile(outputFileName2, out2); }
@@ -415,7 +415,7 @@ int RemoveSeqsCommand::readName(){
 int RemoveSeqsCommand::readGroup(){
        try {
                if (outputDir == "") {  outputDir += hasPath(groupfile);  }
-               string outputFileName = getRootName(groupfile) + "pick" + getExtension(groupfile);
+               string outputFileName = outputDir + getRootName(getSimpleName(groupfile)) + "pick" + getExtension(groupfile);
                ofstream out;
                openOutputFile(outputFileName, out);
 
@@ -460,7 +460,7 @@ int RemoveSeqsCommand::readGroup(){
 int RemoveSeqsCommand::readAlign(){
        try {
                if (outputDir == "") {  outputDir += hasPath(alignfile);  }
-               string outputFileName = getRootName(getRootName(alignfile)) + "pick.align.report";
+               string outputFileName = outputDir + getRootName(getSimpleName(alignfile)) + "pick.align.report";
                ofstream out;
                openOutputFile(outputFileName, out);
 
index 407e57bfcaca82628aa60923e9bcb687a6a25416..b6626b872d31030d791362ec8ebf68f3f3aaa3e6 100644 (file)
@@ -79,7 +79,6 @@ int SetDirectoryCommand::execute(){
                
                commandFactory = CommandFactory::getInstance();
                
-               
                //redirect output
                if ((output == "clear") || (output == "")) {  output = "";  commandFactory->setOutputDirectory(output);  }
                else {
index 114de90e7b9ee2490f3f47379487a02ba62d5bb1..d135091c3301ed428a8e8e0391a2120643a21520 100644 (file)
@@ -70,7 +70,7 @@ SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(0),
                string holdLabel, nextLabel, groupN;
                individual newguy;
                
-               for (int i = 0; i < lookup.size(); i++) {  delete lookup[i];  }
+               for (int i = 0; i < lookup.size(); i++) {  delete lookup[i]; lookup[i] = NULL; }
                lookup.clear();
                
                //read in first row since you know there is at least 1 group.
@@ -95,8 +95,8 @@ SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(0),
                        
                        lookup[0]->push_back(inputData, groupN); //abundance, bin, group
                        push_back(inputData, groupN);
-                       numSeqs += inputData;
-                       numBins++;
+                       //numSeqs += inputData;
+                       //numBins++;
                        if (inputData > maxRank) { maxRank = inputData; }
                        
                }
@@ -363,7 +363,7 @@ vector<SharedRAbundVector*> SharedRAbundVector::getSharedRAbundVectors(){
                for (int i = 0; i < lookup.size(); i++) {
                        //if this sharedrabund is not from a group the user wants then delete it.
                        if (util->isValidGroup(lookup[i]->getGroup(), globaldata->Groups) == false) { 
-                               delete lookup[i]; 
+                               delete lookup[i]; lookup[i] = NULL;
                                lookup.erase(lookup.begin()+i); 
                                i--; 
                        }
index bd54433458982de8689d48a483bfe44e806bd66e..3a0ec6521720c1f89eb7c54ce47f60a2f81d364a 100644 (file)
@@ -136,7 +136,7 @@ PCell* SparseMatrix::getSmallestCell(){
        //      if the mins vector is empty go here...
                if(mins.empty()){               
                        mins.clear();
-               
+       
                        smallDist = begin()->dist;  //set the first candidate small distance
                
                        for(MatData currentCell=begin();currentCell!=end();currentCell++){
index fc36eb643c30c549810ff462671c38ba36e118b8..c7e8cb9e4add8388602dc2bfc12cff28673f7db3 100644 (file)
@@ -10,7 +10,7 @@
 #include "taxonomyequalizer.h"
 
 /**************************************************************************************************/
-TaxEqualizer::TaxEqualizer(string tfile, int c) : cutoff(c) {
+TaxEqualizer::TaxEqualizer(string tfile, int c, string o) : cutoff(c), outputDir(o) {
        try {
                m = MothurOut::getInstance();
                containsConfidence = false;
@@ -35,7 +35,7 @@ TaxEqualizer::TaxEqualizer(string tfile, int c) : cutoff(c) {
                        openInputFile(tfile, in);
                        
                        ofstream out;
-                       equalizedFile = getRootName(tfile) + "equalized.taxonomy";
+                       equalizedFile = outputDir + getRootName(getSimpleName(tfile)) + "equalized.taxonomy";
                        openOutputFile(equalizedFile, out);
                        
        
index e060c9e8e1f58e28b1eb083287e697a364c05268..c1e43f446f4700bd52fd1a17641759b2adbf7f27 100644 (file)
@@ -23,7 +23,7 @@
 class TaxEqualizer  {
        
 public:
-       TaxEqualizer(string, int);
+       TaxEqualizer(string, int, string);
        ~TaxEqualizer() {};
        
        string getEqualizedTaxFile()    {       return equalizedFile;   }
@@ -31,7 +31,7 @@ public:
        
        
 private:
-       string equalizedFile, testTax;
+       string equalizedFile, testTax, outputDir;
        bool containsConfidence;
        int cutoff, highestLevel;
        map<string, int> seqLevels;  //maps name to level of taxonomy
index 2d29ee3f668ee1817cb71c82189c2a8c6f61cf00..d693bcb721184c251896c917328f9d9d07b3fc18 100644 (file)
@@ -216,14 +216,16 @@ string ValidParameters::validFile(map<string, string> container, string paramete
                        #endif
 
                                ableToOpen = openInputFile(it->second, in);
-
-                               if (ableToOpen == 1) { return "not open"; }
                                in.close();
-                               
+
                        #ifdef USE_MPI  
+                                       MPI_Bcast(&ableToOpen, 1, MPI_INT, 0, MPI_COMM_WORLD);  //send ableToOPen
+                               }else {
+                                       MPI_Bcast(&ableToOpen, 1, MPI_INT, 0, MPI_COMM_WORLD); //get ableToOPen
                                }
                        #endif
-
+                       
+                               if (ableToOpen == 1) { return "not open"; }
                        }
                }else { return "not found"; }