]> git.donarmstrong.com Git - mothur.git/commitdiff
added split.abund comand
authorwestcott <westcott>
Tue, 18 May 2010 12:31:11 +0000 (12:31 +0000)
committerwestcott <westcott>
Tue, 18 May 2010 12:31:11 +0000 (12:31 +0000)
Mothur.xcodeproj/project.pbxproj
clearcutcommand.cpp
clearcutcommand.h
commandfactory.cpp
makefile
splitabundcommand.cpp [new file with mode: 0644]
splitabundcommand.h [new file with mode: 0644]

index 5b5981b1608c62ffbc486921d3c1f3e5cdc8dcb8..2b7d8787c72c15eff10a16e7df12031de5a915c5 100644 (file)
@@ -15,6 +15,8 @@
                A72B3A7C118B4D1B004B9F8D /* phylodiversity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = phylodiversity.cpp; sourceTree = "<group>"; };
                A73953DA11987ED100B0B160 /* chopseqscommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chopseqscommand.h; sourceTree = "<group>"; };
                A73953DB11987ED100B0B160 /* chopseqscommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = chopseqscommand.cpp; sourceTree = "<group>"; };
+               A73F163411A1951D0087CA57 /* splitabundcommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = splitabundcommand.h; sourceTree = "<group>"; };
+               A73F163511A1951D0087CA57 /* splitabundcommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = splitabundcommand.cpp; sourceTree = "<group>"; };
                A747E79B1163442A00FB9042 /* chimeracheckcommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chimeracheckcommand.h; sourceTree = "<group>"; };
                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>"; };
                                A76C4A1111876BAF0009460B /* setlogfilecommand.cpp */,
                                A7DA2110113FECD400BF472F /* sharedcommand.h */,
                                A7DA210F113FECD400BF472F /* sharedcommand.cpp */,
+                               A73F163411A1951D0087CA57 /* splitabundcommand.h */,
+                               A73F163511A1951D0087CA57 /* splitabundcommand.cpp */,
                                A7DA2155113FECD400BF472F /* summarycommand.h */,
                                A7DA2154113FECD400BF472F /* summarycommand.cpp */,
                                A7DA2159113FECD400BF472F /* summarysharedcommand.h */,
index 34341c003b8725153659752016f114a65b4ca3fd..2ffb65598a8fc75041190f764742342202e4ed52 100644 (file)
-/*\r
- *  clearcutcommand.cpp\r
- *  Mothur\r
- *\r
- *  Created by westcott on 5/11/10.\r
- *  Copyright 2010 Schloss Lab. All rights reserved.\r
- *\r
- */\r
-\r
-#include "clearcutcommand.h"\r
-\r
-/**************************************************************************************/\r
-ClearcutCommand::ClearcutCommand(string option)  {     \r
-       try {\r
-               abort = false;\r
-               \r
-               //allow user to run help\r
-               if(option == "help") { help(); abort = true; }\r
-               \r
-               else {\r
-                       //valid paramters for this command\r
-                       string Array[] =  {"fasta","phylip","version","verbose","quiet","seed","norandom","shuffle","neighbor","expblen",\r
-                                                               "expdist","ntrees","matrixout","stdout","kimura","jukes","protein","DNA","stdin","outputdir","inputdir"};\r
-                       vector<string> myArray (Array, Array+(sizeof(Array)/sizeof(string)));\r
-                       \r
-                       OptionParser parser(option);\r
-                       map<string,string> parameters = parser.getParameters();\r
-                       \r
-                       ValidParameters validParameter;\r
-                       map<string, string>::iterator it;\r
-               \r
-                       //check to make sure all parameters are valid for command\r
-                       for (it = parameters.begin(); it != parameters.end(); it++) { \r
-                               if (validParameter.isValidParameter(it->first, myArray, it->second) != true) {  abort = true;  }\r
-                       }\r
-                       \r
-                       //if the user changes the input directory command factory will send this info to us in the output parameter \r
-                       string inputDir = validParameter.validFile(parameters, "inputdir", false);              \r
-                       if (inputDir == "not found"){   inputDir = "";          }\r
-                       else {\r
-                               string path;\r
-                               it = parameters.find("fasta");\r
-                               //user has given a template file\r
-                               if(it != parameters.end()){ \r
-                                       path = hasPath(it->second);\r
-                                       //if the user has not given a path then, add inputdir. else leave path alone.\r
-                                       if (path == "") {       parameters["fasta"] = inputDir + it->second;            }\r
-                               }\r
-                               \r
-                               it = parameters.find("phylip");\r
-                               //user has given a template file\r
-                               if(it != parameters.end()){ \r
-                                       path = hasPath(it->second);\r
-                                       //if the user has not given a path then, add inputdir. else leave path alone.\r
-                                       if (path == "") {       parameters["phylip"] = inputDir + it->second;           }\r
-                               }\r
-                       }\r
-\r
-                       //check for required parameters\r
-                       fastafile = validParameter.validFile(parameters, "fasta", true);\r
-                       if (fastafile == "not open") { fastafile = ""; abort = true; }\r
-                       else if (fastafile == "not found") { fastafile = ""; }  \r
-                       else { inputFile = fastafile;  }\r
-                       \r
-                       phylipfile = validParameter.validFile(parameters, "phylip", true);\r
-                       if (phylipfile == "not open") { phylipfile = ""; abort = true; }\r
-                       else if (phylipfile == "not found") { phylipfile = ""; }\r
-                       else { inputFile = phylipfile;  }\r
-                               \r
-                       if ((phylipfile == "") && (fastafile == "")) {  m->mothurOut("You must provide either a phylip formatted distance matrix or an aligned fasta file."); m->mothurOutEndLine(); abort=true; }\r
-                       if ((phylipfile != "") && (fastafile != "")) {  m->mothurOut("You must provide either a phylip formatted distance matrix or an aligned fasta file, not BOTH."); m->mothurOutEndLine(); abort=true; }\r
-\r
-                       \r
-                       //if the user changes the output directory command factory will send this info to us in the output parameter \r
-                       outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  outputDir = ""; }\r
-                       \r
-                       string temp;\r
-                       temp = validParameter.validFile(parameters, "version", false);          if (temp == "not found"){       temp = "F";                     }\r
-                       version = isTrue(temp);\r
-                       \r
-                       temp = validParameter.validFile(parameters, "verbose", false);          if (temp == "not found"){       temp = "F";                     }\r
-                       verbose = isTrue(temp); \r
-                       \r
-                       temp = validParameter.validFile(parameters, "quiet", false);            if (temp == "not found"){       temp = "F";                     }\r
-                       quiet = isTrue(temp); \r
-                       \r
-                       seed = validParameter.validFile(parameters, "seed", false);                     if (seed == "not found"){       seed = "*";                     }\r
-                       \r
-                       temp = validParameter.validFile(parameters, "norandom", false);         if (temp == "not found"){       temp = "F";                     }\r
-                       norandom = isTrue(temp); \r
-                       \r
-                       temp = validParameter.validFile(parameters, "shuffle", false);          if (temp == "not found"){       temp = "F";                     }\r
-                       shuffle = isTrue(temp); \r
-                       \r
-                       temp = validParameter.validFile(parameters, "neighbor", false);         if (temp == "not found"){       temp = "F";                     }\r
-                       neighbor = isTrue(temp); \r
-                       \r
-                       temp = validParameter.validFile(parameters, "stdin", false);            if (temp == "not found"){       temp = "F";                     }\r
-                       stdinWanted = isTrue(temp); \r
-                       \r
-                       temp = validParameter.validFile(parameters, "DNA", false);                      if (temp == "not found"){       temp = "F";                     }\r
-                       DNA = isTrue(temp);\r
-                       \r
-                       temp = validParameter.validFile(parameters, "protein", false);          if (temp == "not found"){       temp = "F";                     }\r
-                       protein = isTrue(temp);\r
-                       \r
-                       temp = validParameter.validFile(parameters, "jukes", false);            if (temp == "not found"){       temp = "F";                     }\r
-                       jukes = isTrue(temp);\r
-                       \r
-                       temp = validParameter.validFile(parameters, "kimura", false);           if (temp == "not found"){       temp = "F";                     }\r
-                       kimura = isTrue(temp);\r
-                       \r
-                       temp = validParameter.validFile(parameters, "stdout", false);           if (temp == "not found"){       temp = "F";                     }\r
-                       stdoutWanted = isTrue(temp); \r
-                       \r
-                       matrixout = validParameter.validFile(parameters, "matrixout", false);   if (matrixout == "not found"){  matrixout = "";         }\r
-                       \r
-                       ntrees = validParameter.validFile(parameters, "ntrees", false);         if (ntrees == "not found"){     ntrees = "1";           }\r
-                       \r
-                       temp = validParameter.validFile(parameters, "expblen", false);          if (temp == "not found"){       temp = "F";                     }\r
-                       expblen = isTrue(temp);\r
-                       \r
-                       temp = validParameter.validFile(parameters, "expdist", false);          if (temp == "not found"){       temp = "F";                     }\r
-                       expdist = isTrue(temp);\r
-                       \r
-                       if ((fastafile != "") && ((!DNA) && (!protein))) { m->mothurOut("You must specify the type of sequences you are using: DNA or protein"); m->mothurOutEndLine(); abort=true; }\r
-               }\r
-\r
-       }\r
-       catch(exception& e) {\r
-               m->errorOut(e, "ClearcutCommand", "ClearcutCommand");\r
-               exit(1);\r
-       }\r
-}\r
-//**********************************************************************************************************************\r
-\r
-void ClearcutCommand::help(){\r
-       try {\r
-               m->mothurOut("The clearcut command interfaces mothur with the clearcut program written by Initiative for Bioinformatics and Evolutionary Studies (IBEST) at the University of Idaho.\n");\r
-               m->mothurOut("For more information about clearcut refer to http://bioinformatics.hungry.com/clearcut/ \n");\r
-               m->mothurOut("The clearcut executable must be in a folder called clearcut in the same folder as your mothur executable, similar to mothur's requirements for using blast. \n");\r
-               m->mothurOut("The clearcut command parameters are phylip, fasta, version, verbose, quiet, seed, norandom, shuffle, neighbor, expblen, expdist, ntrees, matrixout, stdoutWanted, kimura, jukes, protein, DNA, stdinWanted. \n");\r
-               m->mothurOut("The phylip parameter allows you to enter your phylip formatted distance matrix. \n");\r
-               m->mothurOut("The fasta parameter allows you to enter your aligned fasta file, if you enter a fastafile you specify if the sequences are DNA or protein using the DNA or protein parameters. \n");\r
-               \r
-               m->mothurOut("The version parameter prints out the version of clearcut you are using, default=F. \n");\r
-               m->mothurOut("The verbose parameter prints out more output from clearcut, default=F. \n");\r
-               m->mothurOut("The quiet parameter turns on silent operation mode, default=F. \n");\r
-               m->mothurOut("The seed parameter allows you to explicitly set the PRNG seed to a specific value. \n");\r
-               m->mothurOut("The norandom parameter allows you to attempt joins deterministically, default=F. \n");\r
-               m->mothurOut("The shuffle parameter allows you to randomly shuffle the distance matrix, default=F. \n");\r
-               m->mothurOut("The neighbor parameter allows you to use traditional Neighbor-Joining algorithm, default=F. \n");\r
-               \r
-               m->mothurOut("The stdinWanted parameter reads input from STDIN, default=F. \n");\r
-               m->mothurOut("The DNA parameter allows you to indicate your fasta file contains DNA sequences, default=F. \n");\r
-               m->mothurOut("The protein parameter allows you to indicate your fasta file contains protein sequences, default=F. \n");\r
-               \r
-               m->mothurOut("The stdoutWanted parameter outputs your tree to STDOUT, default=F. \n");\r
-               m->mothurOut("The matrixout parameter allows you to specify a filename to output a distance matrix to. \n");\r
-               m->mothurOut("The ntrees parameter allows you to specify the number of output trees, default=1. \n");\r
-               m->mothurOut("The expblen parameter allows you to use exponential notation for branch lengths, default=F. \n");\r
-               m->mothurOut("The expdist parameter allows you to use exponential notation for distance outputs, default=F. \n");\r
-\r
-               m->mothurOut("The clearcut command should be in the following format: \n");\r
-               m->mothurOut("clearcut(phylip=yourDistanceFile) \n");\r
-               m->mothurOut("Example: clearcut(phylip=abrecovery.phylip.dist) \n");    \r
-               \r
-       }\r
-       catch(exception& e) {\r
-               m->errorOut(e, "ClearcutCommand", "help");\r
-               exit(1);\r
-       }\r
-}\r
-\r
-/**************************************************************************************/\r
-int ClearcutCommand::execute() {       \r
-       try {\r
-               \r
-               if (abort == true) { return 0; }\r
-                               \r
-               //prepare filename\r
-               string outputName = outputDir + getRootName(getSimpleName(inputFile)) + "tre";\r
-               \r
-               //get location of clearcut\r
-               GlobalData* globaldata = GlobalData::getInstance();\r
-               string path = globaldata->argv;\r
-               path = path.substr(0, (path.find_last_of('m')));\r
-               \r
-               string clearcutCommand = "";\r
-               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)\r
-                       clearcutCommand = path + "clearcut/clearcut ";\r
-               #else\r
-                       clearcutCommand = path + "clearcut\\clearcut ";\r
-               #endif\r
-               \r
-               //you gave us a distance matrix\r
-               if (phylipfile != "") { clearcutCommand += "--distance ";       }\r
-               \r
-               //you gave us a fastafile\r
-               if (fastafile != "") { clearcutCommand += "--alignment ";       }\r
-               \r
-               if (version)                    {  clearcutCommand += "--version ";             }\r
-               if (verbose)                    {  clearcutCommand += "--verbose ";             }\r
-               if (quiet)                              {  clearcutCommand += "--quiet ";               }\r
-               if (seed != "*")                {  clearcutCommand += "--seed=" + seed + " "; }\r
-               if (norandom)                   {  clearcutCommand += "--norandom ";    }\r
-               if (shuffle)                    {  clearcutCommand += "--shuffle ";             }\r
-               if (neighbor)                   {  clearcutCommand += "--neighbor ";    }\r
-               \r
-               if (stdinWanted)                {  clearcutCommand += "--stdin ";               }\r
-               else{  \r
-                       #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)\r
-                               clearcutCommand += "--in=" + inputFile + " "; }\r
-                       #else\r
-                               clearcutCommand += "--in=\"" + inputFile + "\" "; }\r
-                       #endif\r
-               if (stdoutWanted)               {  clearcutCommand += "--stdout ";              }\r
-               else{  \r
-                       #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)\r
-                               clearcutCommand += "--out=" + outputName + " "; }\r
-                       #else\r
-                               clearcutCommand += "--out=\"" + outputName + "\" "; }\r
-                       #endif\r
-               \r
-               if (DNA)                                {  clearcutCommand += "--DNA ";                 }\r
-               if (protein)                    {  clearcutCommand += "--protein ";             }\r
-               if (jukes)                              {  clearcutCommand += "--jukes ";               }\r
-               if (kimura)                             {  clearcutCommand += "--kimura ";              }\r
-               if (matrixout != "")    {  clearcutCommand += "--matrixout=" + matrixout + " "; }\r
-               if (ntrees != "1")              {  clearcutCommand += "--ntrees=" + ntrees + " "; }\r
-               if (expblen)                    {  clearcutCommand += "--expblen ";             }\r
-               if (expdist)                    {  clearcutCommand += "--expdist ";             }\r
-       \r
-               //run clearcut\r
-               system(clearcutCommand.c_str());\r
-               \r
-               if (!stdoutWanted) {    \r
-                       m->mothurOutEndLine();\r
-                       m->mothurOut("Output File Names: "); m->mothurOutEndLine();\r
-                       m->mothurOut(outputName); m->mothurOutEndLine();        \r
-                       m->mothurOutEndLine();\r
-               }\r
-\r
-               return 0;\r
-       }\r
-       catch(exception& e) {\r
-               m->errorOut(e, "ClearcutCommand", "execute");\r
-               exit(1);\r
-       }\r
-}\r
-/**************************************************************************************/\r
-\r
-\r
-\r
-\r
+/*
+ *  clearcutcommand.cpp
+ *  Mothur
+ *
+ *  Created by westcott on 5/11/10.
+ *  Copyright 2010 Schloss Lab. All rights reserved.
+ *
+ */
+
+#include "clearcutcommand.h"
+
+/**************************************************************************************/
+ClearcutCommand::ClearcutCommand(string option)  {     
+       try {
+               abort = false;
+               
+               //allow user to run help
+               if(option == "help") { help(); abort = true; }
+               
+               else {
+                       //valid paramters for this command
+                       string Array[] =  {"fasta","phylip","version","verbose","quiet","seed","norandom","shuffle","neighbor","expblen",
+                                                               "expdist","ntrees","matrixout","stdout","kimura","jukes","protein","DNA","outputdir","inputdir"};
+                       vector<string> myArray (Array, Array+(sizeof(Array)/sizeof(string)));
+                       
+                       OptionParser parser(option);
+                       map<string,string> parameters = parser.getParameters();
+                       
+                       ValidParameters validParameter;
+                       map<string, string>::iterator it;
+               
+                       //check to make sure all parameters are valid for command
+                       for (it = parameters.begin(); it != parameters.end(); it++) { 
+                               if (validParameter.isValidParameter(it->first, myArray, it->second) != true) {  abort = true;  }
+                       }
+                       
+                       //if the user changes the input directory command factory will send this info to us in the output parameter 
+                       string inputDir = validParameter.validFile(parameters, "inputdir", false);              
+                       if (inputDir == "not found"){   inputDir = "";          }
+                       else {
+                               string path;
+                               it = parameters.find("fasta");
+                               //user has given a template file
+                               if(it != parameters.end()){ 
+                                       path = hasPath(it->second);
+                                       //if the user has not given a path then, add inputdir. else leave path alone.
+                                       if (path == "") {       parameters["fasta"] = inputDir + it->second;            }
+                               }
+                               
+                               it = parameters.find("phylip");
+                               //user has given a template file
+                               if(it != parameters.end()){ 
+                                       path = hasPath(it->second);
+                                       //if the user has not given a path then, add inputdir. else leave path alone.
+                                       if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
+                               }
+                       }
+
+                       //check for required parameters
+                       fastafile = validParameter.validFile(parameters, "fasta", true);
+                       if (fastafile == "not open") { fastafile = ""; abort = true; }
+                       else if (fastafile == "not found") { fastafile = ""; }  
+                       else { inputFile = fastafile;  }
+                       
+                       phylipfile = validParameter.validFile(parameters, "phylip", true);
+                       if (phylipfile == "not open") { phylipfile = ""; abort = true; }
+                       else if (phylipfile == "not found") { phylipfile = ""; }
+                       else { inputFile = phylipfile;  }
+                               
+                       if ((phylipfile == "") && (fastafile == "")) {  m->mothurOut("You must provide either a phylip formatted distance matrix or an aligned fasta file."); m->mothurOutEndLine(); abort=true; }
+                       if ((phylipfile != "") && (fastafile != "")) {  m->mothurOut("You must provide either a phylip formatted distance matrix or an aligned fasta file, not BOTH."); m->mothurOutEndLine(); abort=true; }
+
+                       
+                       //if the user changes the output directory command factory will send this info to us in the output parameter 
+                       outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  outputDir = ""; }
+                       
+                       string temp;
+                       temp = validParameter.validFile(parameters, "version", false);          if (temp == "not found"){       temp = "F";                     }
+                       version = isTrue(temp);
+                       
+                       temp = validParameter.validFile(parameters, "verbose", false);          if (temp == "not found"){       temp = "F";                     }
+                       verbose = isTrue(temp); 
+                       
+                       temp = validParameter.validFile(parameters, "quiet", false);            if (temp == "not found"){       temp = "F";                     }
+                       quiet = isTrue(temp); 
+                       
+                       seed = validParameter.validFile(parameters, "seed", false);                     if (seed == "not found"){       seed = "*";                     }
+                       
+                       temp = validParameter.validFile(parameters, "norandom", false);         if (temp == "not found"){       temp = "F";                     }
+                       norandom = isTrue(temp); 
+                       
+                       temp = validParameter.validFile(parameters, "shuffle", false);          if (temp == "not found"){       temp = "F";                     }
+                       shuffle = isTrue(temp); 
+                       
+                       temp = validParameter.validFile(parameters, "neighbor", false);         if (temp == "not found"){       temp = "F";                     }
+                       neighbor = isTrue(temp); 
+                       
+                       temp = validParameter.validFile(parameters, "DNA", false);                      if (temp == "not found"){       temp = "F";                     }
+                       DNA = isTrue(temp);
+                       
+                       temp = validParameter.validFile(parameters, "protein", false);          if (temp == "not found"){       temp = "F";                     }
+                       protein = isTrue(temp);
+                       
+                       temp = validParameter.validFile(parameters, "jukes", false);            if (temp == "not found"){       temp = "F";                     }
+                       jukes = isTrue(temp);
+                       
+                       temp = validParameter.validFile(parameters, "kimura", false);           if (temp == "not found"){       temp = "F";                     }
+                       kimura = isTrue(temp);
+                       
+                       temp = validParameter.validFile(parameters, "stdout", false);           if (temp == "not found"){       temp = "F";                     }
+                       stdoutWanted = isTrue(temp); 
+                       
+                       matrixout = validParameter.validFile(parameters, "matrixout", false);   if (matrixout == "not found"){  matrixout = "";         }
+                       
+                       ntrees = validParameter.validFile(parameters, "ntrees", false);         if (ntrees == "not found"){     ntrees = "1";           }
+                       
+                       temp = validParameter.validFile(parameters, "expblen", false);          if (temp == "not found"){       temp = "F";                     }
+                       expblen = isTrue(temp);
+                       
+                       temp = validParameter.validFile(parameters, "expdist", false);          if (temp == "not found"){       temp = "F";                     }
+                       expdist = isTrue(temp);
+                       
+                       if ((fastafile != "") && ((!DNA) && (!protein))) { m->mothurOut("You must specify the type of sequences you are using: DNA or protein"); m->mothurOutEndLine(); abort=true; }
+               }
+
+       }
+       catch(exception& e) {
+               m->errorOut(e, "ClearcutCommand", "ClearcutCommand");
+               exit(1);
+       }
+}
+//**********************************************************************************************************************
+
+void ClearcutCommand::help(){
+       try {
+               m->mothurOut("The clearcut command interfaces mothur with the clearcut program written by Initiative for Bioinformatics and Evolutionary Studies (IBEST) at the University of Idaho.\n");
+               m->mothurOut("For more information about clearcut refer to http://bioinformatics.hungry.com/clearcut/ \n");
+               m->mothurOut("The clearcut executable must be in a folder called clearcut in the same folder as your mothur executable, similar to mothur's requirements for using blast. \n");
+               m->mothurOut("The clearcut command parameters are phylip, fasta, version, verbose, quiet, seed, norandom, shuffle, neighbor, expblen, expdist, ntrees, matrixout, stdout, kimura, jukes, protein, DNA. \n");
+               m->mothurOut("The phylip parameter allows you to enter your phylip formatted distance matrix. \n");
+               m->mothurOut("The fasta parameter allows you to enter your aligned fasta file, if you enter a fastafile you specify if the sequences are DNA or protein using the DNA or protein parameters. \n");
+               
+               m->mothurOut("The version parameter prints out the version of clearcut you are using, default=F. \n");
+               m->mothurOut("The verbose parameter prints out more output from clearcut, default=F. \n");
+               m->mothurOut("The quiet parameter turns on silent operation mode, default=F. \n");
+               m->mothurOut("The seed parameter allows you to explicitly set the PRNG seed to a specific value. \n");
+               m->mothurOut("The norandom parameter allows you to attempt joins deterministically, default=F. \n");
+               m->mothurOut("The shuffle parameter allows you to randomly shuffle the distance matrix, default=F. \n");
+               m->mothurOut("The neighbor parameter allows you to use traditional Neighbor-Joining algorithm, default=F. \n");
+               
+               m->mothurOut("The DNA parameter allows you to indicate your fasta file contains DNA sequences, default=F. \n");
+               m->mothurOut("The protein parameter allows you to indicate your fasta file contains protein sequences, default=F. \n");
+               
+               m->mothurOut("The stdout parameter outputs your tree to STDOUT, default=F. \n");
+               m->mothurOut("The matrixout parameter allows you to specify a filename to output a distance matrix to. \n");
+               m->mothurOut("The ntrees parameter allows you to specify the number of output trees, default=1. \n");
+               m->mothurOut("The expblen parameter allows you to use exponential notation for branch lengths, default=F. \n");
+               m->mothurOut("The expdist parameter allows you to use exponential notation for distance outputs, default=F. \n");
+
+               m->mothurOut("The clearcut command should be in the following format: \n");
+               m->mothurOut("clearcut(phylip=yourDistanceFile) \n");
+               m->mothurOut("Example: clearcut(phylip=abrecovery.phylip.dist) \n");    
+               
+       }
+       catch(exception& e) {
+               m->errorOut(e, "ClearcutCommand", "help");
+               exit(1);
+       }
+}
+
+/**************************************************************************************/
+int ClearcutCommand::execute() {       
+       try {
+               
+               if (abort == true) { return 0; }
+                               
+               //prepare filename
+               string outputName = outputDir + getRootName(getSimpleName(inputFile)) + "tre";
+               
+               //get location of clearcut
+               GlobalData* globaldata = GlobalData::getInstance();
+               string path = globaldata->argv;
+               path = path.substr(0, (path.find_last_of('m')));
+               
+               string clearcutCommand = "";
+               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+                       clearcutCommand = path + "clearcut/clearcut ";
+               #else
+                       clearcutCommand = path + "clearcut\\clearcut ";
+               #endif
+               
+               //you gave us a distance matrix
+               if (phylipfile != "") { clearcutCommand += "--distance ";       }
+               
+               //you gave us a fastafile
+               if (fastafile != "") { clearcutCommand += "--alignment ";       }
+               
+               if (version)                    {  clearcutCommand += "--version ";             }
+               if (verbose)                    {  clearcutCommand += "--verbose ";             }
+               if (quiet)                              {  clearcutCommand += "--quiet ";               }
+               if (seed != "*")                {  clearcutCommand += "--seed=" + seed + " "; }
+               if (norandom)                   {  clearcutCommand += "--norandom ";    }
+               if (shuffle)                    {  clearcutCommand += "--shuffle ";             }
+               if (neighbor)                   {  clearcutCommand += "--neighbor ";    }
+               
+               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+                       clearcutCommand += "--in=" + inputFile + " "; 
+               #else
+                       clearcutCommand += "--in=\"" + inputFile + "\" "; 
+               #endif
+               
+               if (stdoutWanted)               {  clearcutCommand += "--stdout ";              }
+               else{  
+                       #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+                               clearcutCommand += "--out=" + outputName + " "; }
+                       #else
+                               clearcutCommand += "--out=\"" + outputName + "\" "; }
+                       #endif
+               
+               if (DNA)                                {  clearcutCommand += "--DNA ";                 }
+               if (protein)                    {  clearcutCommand += "--protein ";             }
+               if (jukes)                              {  clearcutCommand += "--jukes ";               }
+               if (kimura)                             {  clearcutCommand += "--kimura ";              }
+               if (matrixout != "")    {  clearcutCommand += "--matrixout=" + matrixout + " ";  }
+               if (ntrees != "1")              {  clearcutCommand += "--ntrees=" + ntrees + " "; }
+               if (expblen)                    {  clearcutCommand += "--expblen ";             }
+               if (expdist)                    {  clearcutCommand += "--expdist ";             }
+       
+               //run clearcut
+               system(clearcutCommand.c_str());
+               
+               if (!stdoutWanted) {    
+                       m->mothurOutEndLine();
+                       m->mothurOut("Output File Names: "); m->mothurOutEndLine();
+                       m->mothurOut(outputName); m->mothurOutEndLine();
+                       if (matrixout != "")    {  m->mothurOut(matrixout); m->mothurOutEndLine();  }
+                       m->mothurOutEndLine();
+               }
+
+               return 0;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "ClearcutCommand", "execute");
+               exit(1);
+       }
+}
+/**************************************************************************************/
+
+
+
+
index d6c0a57d9628a124c3bc900d6865f0ed4e7cc606..980431b216ec67c67c3a8bd221055b24f1c98624 100644 (file)
@@ -31,7 +31,7 @@ public:
        
 private:
        string outputDir, phylipfile, fastafile, matrixout, inputFile, seed, ntrees;
-       bool version, verbose, quiet, norandom, shuffle, neighbor, expblen, expdist, stdoutWanted, kimura, jukes, protein, DNA, stdinWanted;
+       bool version, verbose, quiet, norandom, shuffle, neighbor, expblen, expdist, stdoutWanted, kimura, jukes, protein, DNA;
        bool abort;
 };
 
index be85727f3cf5e9492041054e1f3296aad9aee660..f358797f7d94bf557c8bf986dd16faaed03743f3 100644 (file)
@@ -77,6 +77,7 @@
 #include "chopseqscommand.h"
 #include "clearcutcommand.h"
 #include "catchallcommand.h"
+#include "splitabundcommand.h"
 
 /*******************************************************/
 
@@ -161,6 +162,7 @@ CommandFactory::CommandFactory(){
        commands["chop.seqs"]                   = "chop.seqs";
        commands["clearcut"]                    = "clearcut";
        commands["catchall"]                    = "catchall";
+       commands["split.abund"]                 = "split.abund";
        commands["classify.seqs"]               = "MPIEnabled"; 
        commands["dist.seqs"]                   = "MPIEnabled";
        commands["filter.seqs"]                 = "MPIEnabled";
@@ -282,6 +284,7 @@ Command* CommandFactory::getCommand(string commandName, string optionString){
                else if(commandName == "chop.seqs")                             {       command = new ChopSeqsCommand(optionString);                            }
                else if(commandName == "clearcut")                              {       command = new ClearcutCommand(optionString);                            }
                else if(commandName == "catchall")                              {       command = new CatchAllCommand(optionString);                            }
+               else if(commandName == "split.abund")                   {       command = new SplitAbundCommand(optionString);                          }
                else                                                                                    {       command = new NoCommand(optionString);                                          }
 
                return command;
index de1b77cd47e2134804f1bffc79f4994251f1c863..6b10078955f99b73fe5680d34a6bc0234d7bc046 100644 (file)
--- a/makefile
+++ b/makefile
-###################################################\r
-#\r
-# Makefile for mothur\r
-# Creator [Xcode -> Makefile Ver: Feb 14 2007 09:18:41]\r
-# Created: April 16, 2010\r
-#\r
-###################################################\r
-\r
-#\r
-# Macros\r
-#\r
-\r
-CC = g++\r
-CC_OPTIONS = -O3\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
+###################################################
+#
+# Makefile for mothur
+# Creator [Xcode -> Makefile Ver: Feb 14 2007 09:18:41]
+# Created: April 16, 2010
+#
+###################################################
+
+#
+# Macros
+#
+
+CC = g++
+CC_OPTIONS = -O3
+
+# if you do not want to use the readline library set to no, default yes.
+# make sure you have the library installed
+
+USEREADLINE ?= yes
+
+ifeq  ($(strip $(USEREADLINE)),yes)
+    CC_OPTIONS += -DUSE_READLINE
+       LNK_OPTIONS += \
+      -lreadline\
+      -lncurses\
+      -L../readline-6.0
+endif
+
 USEMPI ?= no
-\r
-\r
-ifeq  ($(strip $(USEMPI)),yes)\r
-    CC_OPTIONS += -DUSE_MPI\r
-endif\r
-\r
-#\r
-# INCLUDE directories for mothur\r
-#\r
+
+
+ifeq  ($(strip $(USEMPI)),yes)
+    CC_OPTIONS += -DUSE_MPI
+endif
+
+#
+# INCLUDE directories for mothur
+#
 
      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
+
+#
+# Build mothur
+#
+
+mothur : \
+               ./sharedutilities.o\
+               ./treegroupscommand.o\
+               ./bootstrapsharedcommand.o\
+               ./matrixoutputcommand.o\
+               ./getoturepcommand.o\
+               ./screenseqscommand.o\
+               ./chimera.o\
+               ./decalc.o\
+               ./readotucommand.o\
+               ./readdistcommand.o\
+               ./commandfactory.o\
+               ./alignment.o\
+               ./alignmentcell.o\
+               ./gotohoverlap.o\
+               ./overlap.o\
+               ./needlemanoverlap.o\
+               ./blastalign.o\
+               ./noalign.o\
+               ./suffixdb.o\
+               ./suffixnodes.o\
+               ./suffixtree.o\
+               ./blastdb.o\
+               ./nast.o\
+               ./nastreport.o\
+               ./boneh.o\
+               ./efron.o\
+               ./solow.o\
+               ./unifracweightedcommand.o\
+               ./weighted.o\
+               ./unweighted.o\
+               ./unifracunweightedcommand.o\
+               ./getsabundcommand.o\
+               ./getrabundcommand.o\
+               ./bellerophon.o\
+               ./pintail.o\
+               ./sharedanderbergs.o\
+               ./venncommand.o\
+               ./venn.o\
+               ./fullmatrix.o\
+               ./heatmap.o\
+               ./heatmapcommand.o\
+               ./libshuffcommand.o\
+               ./nocommands.o\
+               ./sharedbraycurtis.o\
+               ./sharedkulczynski.o\
+               ./sharedlennon.o\
+               ./sharedkulczynskicody.o\
+               ./sharedmorisitahorn.o\
+               ./sharedochiai.o\
+               ./readcolumn.o\
+               ./readotu.o\
+               ./readphylip.o\
+               ./consensuscommand.o\
+               ./heatmapsimcommand.o\
+               ./heatmapsim.o\
+               ./optionparser.o\
+               ./filterseqscommand.o\
+               ./goodscoverage.o\
+               ./sequencedb.o\
+               ./sharedjackknife.o\
+               ./sharedmarczewski.o\
+               ./aligncommand.o\
+               ./treemap.o\
+               ./parsimonycommand.o\
+               ./parsimony.o\
+               ./seqsummarycommand.o\
+               ./chimeraccodecommand.o\
+               ./chimerabellerophoncommand.o\
+               ./chimeracheckcommand.o\
+               ./chimeraslayercommand.o\
+               ./chimerapintailcommand.o\
+               ./chimeraseqscommand.o\
+               ./sharedlistvector.o\
+               ./tree.o\
+               ./readtree.o\
+               ./sharedsobscollectsummary.o\
+               ./deconvolutecommand.o\
+               ./listseqscommand.o\
+               ./getseqscommand.o\
+               ./removeseqscommand.o\
+               ./systemcommand.o\
+               ./binsequencecommand.o\
+               ./distancecommand.o\
+               ./ace.o\
+               ./averagelinkage.o\
+               ./bootstrap.o\
+               ./calculator.o\
+               ./chao1.o\
+               ./cluster.o\
+               ./clustercommand.o\
+               ./collect.o\
+               ./collectcommand.o\
+               ./collectsharedcommand.o\
+               ./commandoptionparser.o\
+               ./completelinkage.o\
+               ./database.o\
+               ./engine.o\
+               ./fastamap.o\
+               ./fileoutput.o\
+               ./globaldata.o\
+               ./groupmap.o\
                ./helpcommand.o\
                ./makegroupcommand.o\
                ./chopseqscommand.o\
                ./clearcutcommand.o\
-               ./catchallcommand.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
+               ./catchallcommand.o\
+               ./splitabundcommand.o\
+               ./inputdata.o\
+               ./jackknife.o\
+               ./kmer.o\
+               ./kmerdb.o\
+               ./listvector.o\
+               ./mothur.o\
+               ./nameassignment.o\
+               ./npshannon.o\
+               ./ordervector.o\
+               ./progress.o\
+               ./quitcommand.o\
+               ./rabundvector.o\
+               ./rarecalc.o\
+               ./raredisplay.o\
+               ./rarefact.o\
+               ./rarefactcommand.o\
+               ./rarefactsharedcommand.o\
+               ./sabundvector.o\
+               ./sequence.o\
+               ./shannon.o\
+               ./sharedace.o\
+               ./sharedchao1.o\
+               ./sharedcommand.o\
+               ./sharedjabund.o\
+               ./sharedjclass.o\
+               ./sharedjest.o\
+               ./sharedordervector.o\
+               ./sharedrabundvector.o\
+               ./sharedsabundvector.o\
+               ./sharedsobs.o\
+               ./sharedsorabund.o\
+               ./sharedsorclass.o\
+               ./sharedsorest.o\
+               ./sharedthetan.o\
+               ./sharedthetayc.o\
+               ./simpson.o\
+               ./singlelinkage.o\
+               ./sparsematrix.o\
+               ./summarycommand.o\
+               ./summarysharedcommand.o\
+               ./uvest.o\
+               ./validcalculator.o\
+               ./validparameter.o\
+               ./treenode.o\
+               ./readtreecommand.o\
+               ./reversecommand.o\
+               ./trimseqscommand.o\
+               ./slibshuff.o\
+               ./libshuff.o\
+               ./dlibshuff.o\
+               ./mergefilecommand.o\
+               ./coverage.o\
+               ./whittaker.o\
+               ./preclustercommand.o\
+               ./otuhierarchycommand.o\
+               ./setdircommand.o\
+               ./getgroupcommand.o\
+               ./getlabelcommand.o\
+               ./secondarystructurecommand.o\
+               ./mothurout.o\
+               ./parselistscommand.o\
+               ./readblast.o\
+               ./chimeracheckrdp.o\
+               ./hclustercommand.o\
+               ./hcluster.o\
+               ./getlistcountcommand.o\
+               ./readcluster.o\
+               ./ccode.o\
+               ./taxonomyequalizer.o\
+               ./phylotypecommand.o\
+               ./classifyseqscommand.o\
+               ./parsesffcommand.o\
+               ./classify.o\
                ./phylotree.o\
                ./phylodiversity.o\
-               ./phylodiversitycommand.o\\r
+               ./phylodiversitycommand.o\
                ./bayesian.o\
-               ./phylosummary.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
+               ./phylosummary.o\
+               ./alignmentdb.o\
+               ./knn.o\
+               ./distancedb.o\
+               ./chimeraslayer.o\
+               ./slayer.o\
+               ./pcacommand.o\
+               ./formatcolumn.o\
+               ./formatphylip.o\
+               ./mgclustercommand.o\
+               ./getsharedotucommand.o\
+               ./maligner.o\
+               ./chimerarealigner.o\
+               ./bergerparker.o\
+               ./bstick.o\
+               ./sharedkstest.o\
+               ./qstat.o\
+               ./shen.o\
+               ./logsd.o\
                ./geom.o\
-               ./setlogfilecommand.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
+               ./setlogfilecommand.o
+       $(CC) $(LNK_OPTIONS) \
+               ./sharedutilities.o\
+               ./treegroupscommand.o\
+               ./bootstrapsharedcommand.o\
+               ./matrixoutputcommand.o\
+               ./getoturepcommand.o\
+               ./screenseqscommand.o\
+               ./chimera.o\
+               ./decalc.o\
+               ./readotucommand.o\
+               ./readdistcommand.o\
+               ./commandfactory.o\
+               ./alignment.o\
+               ./alignmentcell.o\
+               ./gotohoverlap.o\
+               ./overlap.o\
+               ./needlemanoverlap.o\
+               ./blastalign.o\
+               ./noalign.o\
+               ./suffixdb.o\
+               ./suffixnodes.o\
+               ./suffixtree.o\
+               ./blastdb.o\
+               ./nast.o\
+               ./nastreport.o\
+               ./boneh.o\
+               ./efron.o\
+               ./solow.o\
+               ./unifracweightedcommand.o\
+               ./weighted.o\
+               ./unweighted.o\
+               ./unifracunweightedcommand.o\
+               ./getsabundcommand.o\
+               ./getrabundcommand.o\
+               ./bellerophon.o\
+               ./pintail.o\
+               ./sharedanderbergs.o\
+               ./venncommand.o\
+               ./venn.o\
+               ./fullmatrix.o\
+               ./heatmap.o\
+               ./heatmapcommand.o\
+               ./libshuffcommand.o\
+               ./nocommands.o\
+               ./sharedbraycurtis.o\
+               ./sharedkulczynski.o\
+               ./sharedlennon.o\
+               ./sharedkulczynskicody.o\
+               ./sharedmorisitahorn.o\
+               ./sharedochiai.o\
+               ./readcolumn.o\
+               ./readotu.o\
+               ./readphylip.o\
+               ./consensuscommand.o\
+               ./heatmapsimcommand.o\
+               ./heatmapsim.o\
+               ./optionparser.o\
+               ./filterseqscommand.o\
+               ./goodscoverage.o\
+               ./sequencedb.o\
+               ./sharedjackknife.o\
+               ./sharedmarczewski.o\
+               ./aligncommand.o\
+               ./treemap.o\
+               ./parsimonycommand.o\
+               ./parsimony.o\
+               ./seqsummarycommand.o\
+               ./chimeraccodecommand.o\
+               ./chimerabellerophoncommand.o\
+               ./chimeracheckcommand.o\
+               ./chimeraslayercommand.o\
+               ./chimerapintailcommand.o\
+               ./chimeraseqscommand.o\
+               ./sharedlistvector.o\
+               ./tree.o\
+               ./readtree.o\
+               ./sharedsobscollectsummary.o\
+               ./deconvolutecommand.o\
+               ./listseqscommand.o\
+               ./getseqscommand.o\
+               ./removeseqscommand.o\
+               ./systemcommand.o\
+               ./binsequencecommand.o\
+               ./distancecommand.o\
+               ./ace.o\
+               ./averagelinkage.o\
+               ./bootstrap.o\
+               ./calculator.o\
+               ./chao1.o\
+               ./cluster.o\
+               ./clustercommand.o\
+               ./collect.o\
+               ./collectcommand.o\
+               ./collectsharedcommand.o\
+               ./commandoptionparser.o\
+               ./completelinkage.o\
+               ./database.o\
+               ./engine.o\
+               ./fastamap.o\
+               ./fileoutput.o\
+               ./globaldata.o\
+               ./groupmap.o\
                ./helpcommand.o\
                ./makegroupcommand.o\
                ./chopseqscommand.o\
                ./clearcutcommand.o\
-               ./catchallcommand.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
+               ./catchallcommand.o\
+               ./splitabundcommand.o\
+               ./inputdata.o\
+               ./jackknife.o\
+               ./kmer.o\
+               ./kmerdb.o\
+               ./listvector.o\
+               ./mothur.o\
+               ./nameassignment.o\
+               ./npshannon.o\
+               ./ordervector.o\
+               ./progress.o\
+               ./quitcommand.o\
+               ./rabundvector.o\
+               ./rarecalc.o\
+               ./raredisplay.o\
+               ./rarefact.o\
+               ./rarefactcommand.o\
+               ./rarefactsharedcommand.o\
+               ./sabundvector.o\
+               ./sequence.o\
+               ./shannon.o\
+               ./sharedace.o\
+               ./sharedchao1.o\
+               ./sharedcommand.o\
+               ./sharedjabund.o\
+               ./sharedjclass.o\
+               ./sharedjest.o\
+               ./sharedordervector.o\
+               ./sharedrabundvector.o\
+               ./sharedsabundvector.o\
+               ./sharedsobs.o\
+               ./sharedsorabund.o\
+               ./sharedsorclass.o\
+               ./sharedsorest.o\
+               ./sharedthetan.o\
+               ./sharedthetayc.o\
+               ./simpson.o\
+               ./singlelinkage.o\
+               ./sparsematrix.o\
+               ./summarycommand.o\
+               ./summarysharedcommand.o\
+               ./uvest.o\
+               ./validcalculator.o\
+               ./validparameter.o\
+               ./treenode.o\
+               ./readtreecommand.o\
+               ./reversecommand.o\
+               ./trimseqscommand.o\
+               ./slibshuff.o\
+               ./libshuff.o\
+               ./dlibshuff.o\
+               ./mergefilecommand.o\
+               ./coverage.o\
+               ./whittaker.o\
+               ./preclustercommand.o\
+               ./otuhierarchycommand.o\
+               ./setdircommand.o\
+               ./getgroupcommand.o\
+               ./getlabelcommand.o\
+               ./secondarystructurecommand.o\
+               ./mothurout.o\
+               ./parselistscommand.o\
+               ./readblast.o\
+               ./chimeracheckrdp.o\
+               ./hclustercommand.o\
+               ./hcluster.o\
+               ./getlistcountcommand.o\
+               ./readcluster.o\
+               ./ccode.o\
+               ./taxonomyequalizer.o\
+               ./phylotypecommand.o\
+               ./classifyseqscommand.o\
+               ./parsesffcommand.o\
+               ./classify.o\
                ./phylotree.o\
                ./phylodiversity.o\
-               ./phylodiversitycommand.o\\r
+               ./phylodiversitycommand.o\
                ./bayesian.o\
-               ./phylosummary.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
+               ./phylosummary.o\
+               ./alignmentdb.o\
+               ./knn.o\
+               ./distancedb.o\
+               ./chimeraslayer.o\
+               ./slayer.o\
+               ./pcacommand.o\
+               ./formatcolumn.o\
+               ./formatphylip.o\
+               ./mgclustercommand.o\
+               ./getsharedotucommand.o\
+               ./maligner.o\
+               ./chimerarealigner.o\
+               ./bergerparker.o\
+               ./bstick.o\
+               ./sharedkstest.o\
+               ./qstat.o\
+               ./shen.o\
+               ./logsd.o\
                ./geom.o\
-               ./setlogfilecommand.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
+               ./setlogfilecommand.o\
+               -o ../Release/mothur
+
+clean : 
+               rm \
+               ./sharedutilities.o\
+               ./treegroupscommand.o\
+               ./bootstrapsharedcommand.o\
+               ./matrixoutputcommand.o\
+               ./getoturepcommand.o\
+               ./screenseqscommand.o\
+               ./chimera.o\
+               ./decalc.o\
+               ./readotucommand.o\
+               ./readdistcommand.o\
+               ./commandfactory.o\
+               ./alignment.o\
+               ./alignmentcell.o\
+               ./gotohoverlap.o\
+               ./overlap.o\
+               ./needlemanoverlap.o\
+               ./blastalign.o\
+               ./noalign.o\
+               ./suffixdb.o\
+               ./suffixnodes.o\
+               ./suffixtree.o\
+               ./blastdb.o\
+               ./nast.o\
+               ./nastreport.o\
+               ./boneh.o\
+               ./efron.o\
+               ./solow.o\
+               ./unifracweightedcommand.o\
+               ./weighted.o\
+               ./unweighted.o\
+               ./unifracunweightedcommand.o\
+               ./getsabundcommand.o\
+               ./getrabundcommand.o\
+               ./bellerophon.o\
+               ./pintail.o\
+               ./sharedanderbergs.o\
+               ./venncommand.o\
+               ./venn.o\
+               ./fullmatrix.o\
+               ./heatmap.o\
+               ./heatmapcommand.o\
+               ./libshuffcommand.o\
+               ./nocommands.o\
+               ./sharedbraycurtis.o\
+               ./sharedkulczynski.o\
+               ./sharedlennon.o\
+               ./sharedkulczynskicody.o\
+               ./sharedmorisitahorn.o\
+               ./sharedochiai.o\
+               ./readcolumn.o\
+               ./readotu.o\
+               ./readphylip.o\
+               ./consensuscommand.o\
+               ./heatmapsimcommand.o\
+               ./heatmapsim.o\
+               ./optionparser.o\
+               ./filterseqscommand.o\
+               ./goodscoverage.o\
+               ./sequencedb.o\
+               ./sharedjackknife.o\
+               ./sharedmarczewski.o\
+               ./aligncommand.o\
+               ./treemap.o\
+               ./parsimonycommand.o\
+               ./parsimony.o\
+               ./seqsummarycommand.o\
+               ./chimeraccodecommand.o\
+               ./chimerabellerophoncommand.o\
+               ./chimeracheckcommand.o\
+               ./chimeraslayercommand.o\
+               ./chimerapintailcommand.o\
+               ./chimeraseqscommand.o\
+               ./sharedlistvector.o\
+               ./tree.o\
+               ./readtree.o\
+               ./sharedsobscollectsummary.o\
+               ./deconvolutecommand.o\
+               ./listseqscommand.o\
+               ./getseqscommand.o\
+               ./removeseqscommand.o\
+               ./systemcommand.o\
+               ./binsequencecommand.o\
+               ./distancecommand.o\
+               ./ace.o\
+               ./averagelinkage.o\
+               ./bootstrap.o\
+               ./calculator.o\
+               ./chao1.o\
+               ./cluster.o\
+               ./clustercommand.o\
+               ./collect.o\
+               ./collectcommand.o\
+               ./collectsharedcommand.o\
+               ./commandoptionparser.o\
+               ./completelinkage.o\
+               ./database.o\
+               ./engine.o\
+               ./fastamap.o\
+               ./fileoutput.o\
+               ./globaldata.o\
+               ./groupmap.o\
                ./helpcommand.o\
                ./makegroupcommand.o\
                ./chopseqscommand.o\
                ./clearcutcommand.o\
-               ./catchallcommand.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
+               ./catchallcommand.o\
+               ./splitabundcommand.o\
+               ./inputdata.o\
+               ./jackknife.o\
+               ./kmer.o\
+               ./kmerdb.o\
+               ./listvector.o\
+               ./mothur.o\
+               ./nameassignment.o\
+               ./npshannon.o\
+               ./ordervector.o\
+               ./progress.o\
+               ./quitcommand.o\
+               ./rabundvector.o\
+               ./rarecalc.o\
+               ./raredisplay.o\
+               ./rarefact.o\
+               ./rarefactcommand.o\
+               ./rarefactsharedcommand.o\
+               ./sabundvector.o\
+               ./sequence.o\
+               ./shannon.o\
+               ./sharedace.o\
+               ./sharedchao1.o\
+               ./sharedcommand.o\
+               ./sharedjabund.o\
+               ./sharedjclass.o\
+               ./sharedjest.o\
+               ./sharedordervector.o\
+               ./sharedrabundvector.o\
+               ./sharedsabundvector.o\
+               ./sharedsobs.o\
+               ./sharedsorabund.o\
+               ./sharedsorclass.o\
+               ./sharedsorest.o\
+               ./sharedthetan.o\
+               ./sharedthetayc.o\
+               ./simpson.o\
+               ./singlelinkage.o\
+               ./sparsematrix.o\
+               ./summarycommand.o\
+               ./summarysharedcommand.o\
+               ./uvest.o\
+               ./validcalculator.o\
+               ./validparameter.o\
+               ./treenode.o\
+               ./readtreecommand.o\
+               ./reversecommand.o\
+               ./trimseqscommand.o\
+               ./slibshuff.o\
+               ./libshuff.o\
+               ./dlibshuff.o\
+               ./mergefilecommand.o\
+               ./coverage.o\
+               ./whittaker.o\
+               ./preclustercommand.o\
+               ./otuhierarchycommand.o\
+               ./setdircommand.o\
+               ./getgroupcommand.o\
+               ./getlabelcommand.o\
+               ./secondarystructurecommand.o\
+               ./mothurout.o\
+               ./parselistscommand.o\
+               ./readblast.o\
+               ./chimeracheckrdp.o\
+               ./hclustercommand.o\
+               ./hcluster.o\
+               ./getlistcountcommand.o\
+               ./readcluster.o\
+               ./ccode.o\
+               ./taxonomyequalizer.o\
+               ./phylotypecommand.o\
+               ./classifyseqscommand.o\
+               ./parsesffcommand.o\
+               ./classify.o\
                ./phylotree.o\
                ./phylodiversity.o\
-               ./phylodiversitycommand.o\\r
+               ./phylodiversitycommand.o\
                ./bayesian.o\
-               ./phylosummary.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
+               ./phylosummary.o\
+               ./alignmentdb.o\
+               ./knn.o\
+               ./distancedb.o\
+               ./chimeraslayer.o\
+               ./slayer.o\
+               ./pcacommand.o\
+               ./formatcolumn.o\
+               ./formatphylip.o\
+               ./mgclustercommand.o\
+               ./getsharedotucommand.o\
+               ./maligner.o\
+               ./chimerarealigner.o\
+               ./bergerparker.o\
+               ./bstick.o\
+               ./sharedkstest.o\
+               ./qstat.o\
+               ./shen.o\
+               ./logsd.o\
                ./geom.o\
-               ./setlogfilecommand.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
-
-# Item # 197 -- phylosummary --\r
-./phylosummary.o : phylosummary.cpp\r
-       $(CC) $(CC_OPTIONS) phylosummary.cpp -c $(INCLUDE) -o ./phylosummary.o\r
-
-# Item # 198 -- setlogfilecommand --\r
-./setlogfilecommand.o : setlogfilecommand.cpp\r
-       $(CC) $(CC_OPTIONS) setlogfilecommand.cpp -c $(INCLUDE) -o ./setlogfilecommand.o\r
-\r
-# Item # 199 -- phylodiversity --\r
-./phylodiversity.o : phylodiversity.cpp\r
-       $(CC) $(CC_OPTIONS) phylodiversity.cpp -c $(INCLUDE) -o ./phylodiversity.o\r
-\r
-# Item # 200 -- phylodiversitycommand --\r
-./phylodiversitycommand.o : phylodiversitycommand.cpp\r
-       $(CC) $(CC_OPTIONS) phylodiversitycommand.cpp -c $(INCLUDE) -o ./phylodiversitycommand.o\r
-\r
-# Item # 201 -- makegroupcommand --\r
-./makegroupcommand.o : makegroupcommand.cpp\r
-       $(CC) $(CC_OPTIONS) makegroupcommand.cpp -c $(INCLUDE) -o ./makegroupcommand.o\r
-
-# Item # 202 -- chopseqscommand --\r
-./chopseqscommand.o : chopseqscommand.cpp\r
+               ./setlogfilecommand.o\
+               mothur
+
+install : mothur
+               #cp mothur ../Release/mothur
+
+#
+# Build the parts of mothur
+#
+
+
+# Item # 1 -- sharedutilities --
+./sharedutilities.o : sharedutilities.cpp
+       $(CC) $(CC_OPTIONS) sharedutilities.cpp -c $(INCLUDE) -o ./sharedutilities.o
+
+
+# Item # 2 -- treegroupscommand --
+./treegroupscommand.o : treegroupscommand.cpp
+       $(CC) $(CC_OPTIONS) treegroupscommand.cpp -c $(INCLUDE) -o ./treegroupscommand.o
+
+
+# Item # 3 -- bootstrapsharedcommand --
+./bootstrapsharedcommand.o : bootstrapsharedcommand.cpp
+       $(CC) $(CC_OPTIONS) bootstrapsharedcommand.cpp -c $(INCLUDE) -o ./bootstrapsharedcommand.o
+
+
+# Item # 4 -- matrixoutputcommand --
+./matrixoutputcommand.o : matrixoutputcommand.cpp
+       $(CC) $(CC_OPTIONS) matrixoutputcommand.cpp -c $(INCLUDE) -o ./matrixoutputcommand.o
+
+
+# Item # 5 -- getoturepcommand --
+./getoturepcommand.o : getoturepcommand.cpp
+       $(CC) $(CC_OPTIONS) getoturepcommand.cpp -c $(INCLUDE) -o ./getoturepcommand.o
+
+
+# Item # 6 -- screenseqscommand --
+./screenseqscommand.o : screenseqscommand.cpp
+       $(CC) $(CC_OPTIONS) screenseqscommand.cpp -c $(INCLUDE) -o ./screenseqscommand.o
+
+
+# Item # 7 -- chimera --
+./chimera.o : chimera.cpp
+       $(CC) $(CC_OPTIONS) chimera.cpp -c $(INCLUDE) -o ./chimera.o
+
+
+# Item # 8 -- decalc --
+./decalc.o : decalc.cpp
+       $(CC) $(CC_OPTIONS) decalc.cpp -c $(INCLUDE) -o ./decalc.o
+
+
+# Item # 9 -- readotucommand --
+./readotucommand.o : readotucommand.cpp
+       $(CC) $(CC_OPTIONS) readotucommand.cpp -c $(INCLUDE) -o ./readotucommand.o
+
+
+# Item # 10 -- readdistcommand --
+./readdistcommand.o : readdistcommand.cpp
+       $(CC) $(CC_OPTIONS) readdistcommand.cpp -c $(INCLUDE) -o ./readdistcommand.o
+
+
+# Item # 11 -- commandfactory --
+./commandfactory.o : commandfactory.cpp
+       $(CC) $(CC_OPTIONS) commandfactory.cpp -c $(INCLUDE) -o ./commandfactory.o
+
+
+# Item # 12 -- alignment --
+./alignment.o : alignment.cpp
+       $(CC) $(CC_OPTIONS) alignment.cpp -c $(INCLUDE) -o ./alignment.o
+
+
+# Item # 13 -- alignmentcell --
+./alignmentcell.o : alignmentcell.cpp
+       $(CC) $(CC_OPTIONS) alignmentcell.cpp -c $(INCLUDE) -o ./alignmentcell.o
+
+
+# Item # 14 -- gotohoverlap --
+./gotohoverlap.o : gotohoverlap.cpp
+       $(CC) $(CC_OPTIONS) gotohoverlap.cpp -c $(INCLUDE) -o ./gotohoverlap.o
+
+
+# Item # 15 -- overlap --
+./overlap.o : overlap.cpp
+       $(CC) $(CC_OPTIONS) overlap.cpp -c $(INCLUDE) -o ./overlap.o
+
+
+# Item # 16 -- needlemanoverlap --
+./needlemanoverlap.o : needlemanoverlap.cpp
+       $(CC) $(CC_OPTIONS) needlemanoverlap.cpp -c $(INCLUDE) -o ./needlemanoverlap.o
+
+
+# Item # 17 -- blastalign --
+./blastalign.o : blastalign.cpp
+       $(CC) $(CC_OPTIONS) blastalign.cpp -c $(INCLUDE) -o ./blastalign.o
+
+
+# Item # 18 -- noalign --
+./noalign.o : noalign.cpp
+       $(CC) $(CC_OPTIONS) noalign.cpp -c $(INCLUDE) -o ./noalign.o
+
+
+# Item # 19 -- suffixdb --
+./suffixdb.o : suffixdb.cpp
+       $(CC) $(CC_OPTIONS) suffixdb.cpp -c $(INCLUDE) -o ./suffixdb.o
+
+
+# Item # 20 -- suffixnodes --
+./suffixnodes.o : suffixnodes.cpp
+       $(CC) $(CC_OPTIONS) suffixnodes.cpp -c $(INCLUDE) -o ./suffixnodes.o
+
+
+# Item # 21 -- suffixtree --
+./suffixtree.o : suffixtree.cpp
+       $(CC) $(CC_OPTIONS) suffixtree.cpp -c $(INCLUDE) -o ./suffixtree.o
+
+
+# Item # 22 -- blastdb --
+./blastdb.o : blastdb.cpp
+       $(CC) $(CC_OPTIONS) blastdb.cpp -c $(INCLUDE) -o ./blastdb.o
+
+
+# Item # 23 -- nast --
+./nast.o : nast.cpp
+       $(CC) $(CC_OPTIONS) nast.cpp -c $(INCLUDE) -o ./nast.o
+
+
+# Item # 24 -- nastreport --
+./nastreport.o : nastreport.cpp
+       $(CC) $(CC_OPTIONS) nastreport.cpp -c $(INCLUDE) -o ./nastreport.o
+
+
+# Item # 25 -- boneh --
+./boneh.o : boneh.cpp
+       $(CC) $(CC_OPTIONS) boneh.cpp -c $(INCLUDE) -o ./boneh.o
+
+
+# Item # 26 -- efron --
+./efron.o : efron.cpp
+       $(CC) $(CC_OPTIONS) efron.cpp -c $(INCLUDE) -o ./efron.o
+
+
+# Item # 27 -- solow --
+./solow.o : solow.cpp
+       $(CC) $(CC_OPTIONS) solow.cpp -c $(INCLUDE) -o ./solow.o
+
+
+# Item # 28 -- unifracweightedcommand --
+./unifracweightedcommand.o : unifracweightedcommand.cpp
+       $(CC) $(CC_OPTIONS) unifracweightedcommand.cpp -c $(INCLUDE) -o ./unifracweightedcommand.o
+
+
+# Item # 29 -- weighted --
+./weighted.o : weighted.cpp
+       $(CC) $(CC_OPTIONS) weighted.cpp -c $(INCLUDE) -o ./weighted.o
+
+
+# Item # 30 -- unweighted --
+./unweighted.o : unweighted.cpp
+       $(CC) $(CC_OPTIONS) unweighted.cpp -c $(INCLUDE) -o ./unweighted.o
+
+
+# Item # 31 -- unifracunweightedcommand --
+./unifracunweightedcommand.o : unifracunweightedcommand.cpp
+       $(CC) $(CC_OPTIONS) unifracunweightedcommand.cpp -c $(INCLUDE) -o ./unifracunweightedcommand.o
+
+
+# Item # 32 -- getsabundcommand --
+./getsabundcommand.o : getsabundcommand.cpp
+       $(CC) $(CC_OPTIONS) getsabundcommand.cpp -c $(INCLUDE) -o ./getsabundcommand.o
+
+
+# Item # 33 -- getrabundcommand --
+./getrabundcommand.o : getrabundcommand.cpp
+       $(CC) $(CC_OPTIONS) getrabundcommand.cpp -c $(INCLUDE) -o ./getrabundcommand.o
+
+
+# Item # 34 -- bellerophon --
+./bellerophon.o : bellerophon.cpp
+       $(CC) $(CC_OPTIONS) bellerophon.cpp -c $(INCLUDE) -o ./bellerophon.o
+
+
+# Item # 35 -- pintail --
+./pintail.o : pintail.cpp
+       $(CC) $(CC_OPTIONS) pintail.cpp -c $(INCLUDE) -o ./pintail.o
+
+
+# Item # 36 -- sharedanderbergs --
+./sharedanderbergs.o : sharedanderbergs.cpp
+       $(CC) $(CC_OPTIONS) sharedanderbergs.cpp -c $(INCLUDE) -o ./sharedanderbergs.o
+
+
+# Item # 37 -- venncommand --
+./venncommand.o : venncommand.cpp
+       $(CC) $(CC_OPTIONS) venncommand.cpp -c $(INCLUDE) -o ./venncommand.o
+
+
+# Item # 38 -- venn --
+./venn.o : venn.cpp
+       $(CC) $(CC_OPTIONS) venn.cpp -c $(INCLUDE) -o ./venn.o
+
+
+# Item # 39 -- fullmatrix --
+./fullmatrix.o : fullmatrix.cpp
+       $(CC) $(CC_OPTIONS) fullmatrix.cpp -c $(INCLUDE) -o ./fullmatrix.o
+
+
+# Item # 40 -- heatmap --
+./heatmap.o : heatmap.cpp
+       $(CC) $(CC_OPTIONS) heatmap.cpp -c $(INCLUDE) -o ./heatmap.o
+
+
+# Item # 41 -- heatmapcommand --
+./heatmapcommand.o : heatmapcommand.cpp
+       $(CC) $(CC_OPTIONS) heatmapcommand.cpp -c $(INCLUDE) -o ./heatmapcommand.o
+
+
+# Item # 42 -- libshuffcommand --
+./libshuffcommand.o : libshuffcommand.cpp
+       $(CC) $(CC_OPTIONS) libshuffcommand.cpp -c $(INCLUDE) -o ./libshuffcommand.o
+
+
+# Item # 43 -- nocommands --
+./nocommands.o : nocommands.cpp
+       $(CC) $(CC_OPTIONS) nocommands.cpp -c $(INCLUDE) -o ./nocommands.o
+
+
+# Item # 44 -- sharedbraycurtis --
+./sharedbraycurtis.o : sharedbraycurtis.cpp
+       $(CC) $(CC_OPTIONS) sharedbraycurtis.cpp -c $(INCLUDE) -o ./sharedbraycurtis.o
+
+
+# Item # 45 -- sharedkulczynski --
+./sharedkulczynski.o : sharedkulczynski.cpp
+       $(CC) $(CC_OPTIONS) sharedkulczynski.cpp -c $(INCLUDE) -o ./sharedkulczynski.o
+
+
+# Item # 46 -- sharedlennon --
+./sharedlennon.o : sharedlennon.cpp
+       $(CC) $(CC_OPTIONS) sharedlennon.cpp -c $(INCLUDE) -o ./sharedlennon.o
+
+
+# Item # 47 -- sharedkulczynskicody --
+./sharedkulczynskicody.o : sharedkulczynskicody.cpp
+       $(CC) $(CC_OPTIONS) sharedkulczynskicody.cpp -c $(INCLUDE) -o ./sharedkulczynskicody.o
+
+
+# Item # 48 -- sharedmorisitahorn --
+./sharedmorisitahorn.o : sharedmorisitahorn.cpp
+       $(CC) $(CC_OPTIONS) sharedmorisitahorn.cpp -c $(INCLUDE) -o ./sharedmorisitahorn.o
+
+
+# Item # 49 -- sharedochiai --
+./sharedochiai.o : sharedochiai.cpp
+       $(CC) $(CC_OPTIONS) sharedochiai.cpp -c $(INCLUDE) -o ./sharedochiai.o
+
+
+# Item # 50 -- readcolumn --
+./readcolumn.o : readcolumn.cpp
+       $(CC) $(CC_OPTIONS) readcolumn.cpp -c $(INCLUDE) -o ./readcolumn.o
+
+
+# Item # 51 -- readotu --
+./readotu.o : readotu.cpp
+       $(CC) $(CC_OPTIONS) readotu.cpp -c $(INCLUDE) -o ./readotu.o
+
+
+# Item # 52 -- readphylip --
+./readphylip.o : readphylip.cpp
+       $(CC) $(CC_OPTIONS) readphylip.cpp -c $(INCLUDE) -o ./readphylip.o
+
+
+# Item # 53 -- consensuscommand --
+./consensuscommand.o : consensuscommand.cpp
+       $(CC) $(CC_OPTIONS) consensuscommand.cpp -c $(INCLUDE) -o ./consensuscommand.o
+
+
+# Item # 54 -- heatmapsimcommand --
+./heatmapsimcommand.o : heatmapsimcommand.cpp
+       $(CC) $(CC_OPTIONS) heatmapsimcommand.cpp -c $(INCLUDE) -o ./heatmapsimcommand.o
+
+
+# Item # 55 -- heatmapsim --
+./heatmapsim.o : heatmapsim.cpp
+       $(CC) $(CC_OPTIONS) heatmapsim.cpp -c $(INCLUDE) -o ./heatmapsim.o
+
+
+# Item # 56 -- optionparser --
+./optionparser.o : optionparser.cpp
+       $(CC) $(CC_OPTIONS) optionparser.cpp -c $(INCLUDE) -o ./optionparser.o
+
+
+# Item # 57 -- filterseqscommand --
+./filterseqscommand.o : filterseqscommand.cpp
+       $(CC) $(CC_OPTIONS) filterseqscommand.cpp -c $(INCLUDE) -o ./filterseqscommand.o
+
+
+# Item # 58 -- goodscoverage --
+./goodscoverage.o : goodscoverage.cpp
+       $(CC) $(CC_OPTIONS) goodscoverage.cpp -c $(INCLUDE) -o ./goodscoverage.o
+
+
+# Item # 59 -- sequencedb --
+./sequencedb.o : sequencedb.cpp
+       $(CC) $(CC_OPTIONS) sequencedb.cpp -c $(INCLUDE) -o ./sequencedb.o
+
+
+# Item # 60 -- sharedjackknife --
+./sharedjackknife.o : sharedjackknife.cpp
+       $(CC) $(CC_OPTIONS) sharedjackknife.cpp -c $(INCLUDE) -o ./sharedjackknife.o
+
+
+# Item # 61 -- sharedmarczewski --
+./sharedmarczewski.o : sharedmarczewski.cpp
+       $(CC) $(CC_OPTIONS) sharedmarczewski.cpp -c $(INCLUDE) -o ./sharedmarczewski.o
+
+
+# Item # 62 -- aligncommand --
+./aligncommand.o : aligncommand.cpp
+       $(CC) $(CC_OPTIONS) aligncommand.cpp -c $(INCLUDE) -o ./aligncommand.o
+
+
+# Item # 63 -- treemap --
+./treemap.o : treemap.cpp
+       $(CC) $(CC_OPTIONS) treemap.cpp -c $(INCLUDE) -o ./treemap.o
+
+
+# Item # 64 -- parsimonycommand --
+./parsimonycommand.o : parsimonycommand.cpp
+       $(CC) $(CC_OPTIONS) parsimonycommand.cpp -c $(INCLUDE) -o ./parsimonycommand.o
+
+
+# Item # 65 -- parsimony --
+./parsimony.o : parsimony.cpp
+       $(CC) $(CC_OPTIONS) parsimony.cpp -c $(INCLUDE) -o ./parsimony.o
+
+
+# Item # 66 -- seqsummarycommand --
+./seqsummarycommand.o : seqsummarycommand.cpp
+       $(CC) $(CC_OPTIONS) seqsummarycommand.cpp -c $(INCLUDE) -o ./seqsummarycommand.o
+
+
+# Item # 67 -- chimeraseqscommand --
+./chimeraseqscommand.o : chimeraseqscommand.cpp
+       $(CC) $(CC_OPTIONS) chimeraseqscommand.cpp -c $(INCLUDE) -o ./chimeraseqscommand.o
+
+
+# Item # 68 -- sharedlistvector --
+./sharedlistvector.o : sharedlistvector.cpp
+       $(CC) $(CC_OPTIONS) sharedlistvector.cpp -c $(INCLUDE) -o ./sharedlistvector.o
+
+
+# Item # 69 -- tree --
+./tree.o : tree.cpp
+       $(CC) $(CC_OPTIONS) tree.cpp -c $(INCLUDE) -o ./tree.o
+
+
+# Item # 70 -- readtree --
+./readtree.o : readtree.cpp
+       $(CC) $(CC_OPTIONS) readtree.cpp -c $(INCLUDE) -o ./readtree.o
+
+
+# Item # 71 -- sharedsobscollectsummary --
+./sharedsobscollectsummary.o : sharedsobscollectsummary.cpp
+       $(CC) $(CC_OPTIONS) sharedsobscollectsummary.cpp -c $(INCLUDE) -o ./sharedsobscollectsummary.o
+
+
+# Item # 72 -- deconvolutecommand --
+./deconvolutecommand.o : deconvolutecommand.cpp
+       $(CC) $(CC_OPTIONS) deconvolutecommand.cpp -c $(INCLUDE) -o ./deconvolutecommand.o
+
+
+# Item # 73 -- listseqscommand --
+./listseqscommand.o : listseqscommand.cpp
+       $(CC) $(CC_OPTIONS) listseqscommand.cpp -c $(INCLUDE) -o ./listseqscommand.o
+
+
+# Item # 74 -- getseqscommand --
+./getseqscommand.o : getseqscommand.cpp
+       $(CC) $(CC_OPTIONS) getseqscommand.cpp -c $(INCLUDE) -o ./getseqscommand.o
+
+
+# Item # 75 -- removeseqscommand --
+./removeseqscommand.o : removeseqscommand.cpp
+       $(CC) $(CC_OPTIONS) removeseqscommand.cpp -c $(INCLUDE) -o ./removeseqscommand.o
+
+
+# Item # 76 -- systemcommand --
+./systemcommand.o : systemcommand.cpp
+       $(CC) $(CC_OPTIONS) systemcommand.cpp -c $(INCLUDE) -o ./systemcommand.o
+
+
+# Item # 77 -- binsequencecommand --
+./binsequencecommand.o : binsequencecommand.cpp
+       $(CC) $(CC_OPTIONS) binsequencecommand.cpp -c $(INCLUDE) -o ./binsequencecommand.o
+
+
+# Item # 78 -- distancecommand --
+./distancecommand.o : distancecommand.cpp
+       $(CC) $(CC_OPTIONS) distancecommand.cpp -c $(INCLUDE) -o ./distancecommand.o
+
+
+# Item # 79 -- ace --
+./ace.o : ace.cpp
+       $(CC) $(CC_OPTIONS) ace.cpp -c $(INCLUDE) -o ./ace.o
+
+
+# Item # 80 -- averagelinkage --
+./averagelinkage.o : averagelinkage.cpp
+       $(CC) $(CC_OPTIONS) averagelinkage.cpp -c $(INCLUDE) -o ./averagelinkage.o
+
+
+# Item # 81 -- bootstrap --
+./bootstrap.o : bootstrap.cpp
+       $(CC) $(CC_OPTIONS) bootstrap.cpp -c $(INCLUDE) -o ./bootstrap.o
+
+
+# Item # 82 -- calculator --
+./calculator.o : calculator.cpp
+       $(CC) $(CC_OPTIONS) calculator.cpp -c $(INCLUDE) -o ./calculator.o
+
+
+# Item # 83 -- chao1 --
+./chao1.o : chao1.cpp
+       $(CC) $(CC_OPTIONS) chao1.cpp -c $(INCLUDE) -o ./chao1.o
+
+
+# Item # 84 -- cluster --
+./cluster.o : cluster.cpp
+       $(CC) $(CC_OPTIONS) cluster.cpp -c $(INCLUDE) -o ./cluster.o
+
+
+# Item # 85 -- clustercommand --
+./clustercommand.o : clustercommand.cpp
+       $(CC) $(CC_OPTIONS) clustercommand.cpp -c $(INCLUDE) -o ./clustercommand.o
+
+
+# Item # 86 -- collect --
+./collect.o : collect.cpp
+       $(CC) $(CC_OPTIONS) collect.cpp -c $(INCLUDE) -o ./collect.o
+
+
+# Item # 87 -- collectcommand --
+./collectcommand.o : collectcommand.cpp
+       $(CC) $(CC_OPTIONS) collectcommand.cpp -c $(INCLUDE) -o ./collectcommand.o
+
+
+# Item # 88 -- collectsharedcommand --
+./collectsharedcommand.o : collectsharedcommand.cpp
+       $(CC) $(CC_OPTIONS) collectsharedcommand.cpp -c $(INCLUDE) -o ./collectsharedcommand.o
+
+
+# Item # 89 -- commandoptionparser --
+./commandoptionparser.o : commandoptionparser.cpp
+       $(CC) $(CC_OPTIONS) commandoptionparser.cpp -c $(INCLUDE) -o ./commandoptionparser.o
+
+
+# Item # 90 -- completelinkage --
+./completelinkage.o : completelinkage.cpp
+       $(CC) $(CC_OPTIONS) completelinkage.cpp -c $(INCLUDE) -o ./completelinkage.o
+
+
+# Item # 91 -- database --
+./database.o : database.cpp
+       $(CC) $(CC_OPTIONS) database.cpp -c $(INCLUDE) -o ./database.o
+
+
+# Item # 92 -- engine --
+./engine.o : engine.cpp
+       $(CC) $(CC_OPTIONS) engine.cpp -c $(INCLUDE) -o ./engine.o
+
+
+# Item # 93 -- fastamap --
+./fastamap.o : fastamap.cpp
+       $(CC) $(CC_OPTIONS) fastamap.cpp -c $(INCLUDE) -o ./fastamap.o
+
+
+# Item # 94 -- fileoutput --
+./fileoutput.o : fileoutput.cpp
+       $(CC) $(CC_OPTIONS) fileoutput.cpp -c $(INCLUDE) -o ./fileoutput.o
+
+
+# Item # 95 -- globaldata --
+./globaldata.o : globaldata.cpp
+       $(CC) $(CC_OPTIONS) globaldata.cpp -c $(INCLUDE) -o ./globaldata.o
+
+
+# Item # 96 -- groupmap --
+./groupmap.o : groupmap.cpp
+       $(CC) $(CC_OPTIONS) groupmap.cpp -c $(INCLUDE) -o ./groupmap.o
+
+
+# Item # 97 -- helpcommand --
+./helpcommand.o : helpcommand.cpp
+       $(CC) $(CC_OPTIONS) helpcommand.cpp -c $(INCLUDE) -o ./helpcommand.o
+
+
+# Item # 98 -- inputdata --
+./inputdata.o : inputdata.cpp
+       $(CC) $(CC_OPTIONS) inputdata.cpp -c $(INCLUDE) -o ./inputdata.o
+
+
+# Item # 99 -- jackknife --
+./jackknife.o : jackknife.cpp
+       $(CC) $(CC_OPTIONS) jackknife.cpp -c $(INCLUDE) -o ./jackknife.o
+
+
+# Item # 100 -- kmer --
+./kmer.o : kmer.cpp
+       $(CC) $(CC_OPTIONS) kmer.cpp -c $(INCLUDE) -o ./kmer.o
+
+
+# Item # 101 -- kmerdb --
+./kmerdb.o : kmerdb.cpp
+       $(CC) $(CC_OPTIONS) kmerdb.cpp -c $(INCLUDE) -o ./kmerdb.o
+
+
+# Item # 102 -- listvector --
+./listvector.o : listvector.cpp
+       $(CC) $(CC_OPTIONS) listvector.cpp -c $(INCLUDE) -o ./listvector.o
+
+
+# Item # 103 -- mothur --
+./mothur.o : mothur.cpp
+       $(CC) $(CC_OPTIONS) mothur.cpp -c $(INCLUDE) -o ./mothur.o
+
+
+# Item # 104 -- nameassignment --
+./nameassignment.o : nameassignment.cpp
+       $(CC) $(CC_OPTIONS) nameassignment.cpp -c $(INCLUDE) -o ./nameassignment.o
+
+
+# Item # 105 -- npshannon --
+./npshannon.o : npshannon.cpp
+       $(CC) $(CC_OPTIONS) npshannon.cpp -c $(INCLUDE) -o ./npshannon.o
+
+
+# Item # 106 -- ordervector --
+./ordervector.o : ordervector.cpp
+       $(CC) $(CC_OPTIONS) ordervector.cpp -c $(INCLUDE) -o ./ordervector.o
+
+
+# Item # 107 -- progress --
+./progress.o : progress.cpp
+       $(CC) $(CC_OPTIONS) progress.cpp -c $(INCLUDE) -o ./progress.o
+
+
+# Item # 108 -- quitcommand --
+./quitcommand.o : quitcommand.cpp
+       $(CC) $(CC_OPTIONS) quitcommand.cpp -c $(INCLUDE) -o ./quitcommand.o
+
+
+# Item # 109 -- rabundvector --
+./rabundvector.o : rabundvector.cpp
+       $(CC) $(CC_OPTIONS) rabundvector.cpp -c $(INCLUDE) -o ./rabundvector.o
+
+
+# Item # 110 -- rarecalc --
+./rarecalc.o : rarecalc.cpp
+       $(CC) $(CC_OPTIONS) rarecalc.cpp -c $(INCLUDE) -o ./rarecalc.o
+
+
+# Item # 111 -- raredisplay --
+./raredisplay.o : raredisplay.cpp
+       $(CC) $(CC_OPTIONS) raredisplay.cpp -c $(INCLUDE) -o ./raredisplay.o
+
+
+# Item # 112 -- rarefact --
+./rarefact.o : rarefact.cpp
+       $(CC) $(CC_OPTIONS) rarefact.cpp -c $(INCLUDE) -o ./rarefact.o
+
+
+# Item # 113 -- rarefactcommand --
+./rarefactcommand.o : rarefactcommand.cpp
+       $(CC) $(CC_OPTIONS) rarefactcommand.cpp -c $(INCLUDE) -o ./rarefactcommand.o
+
+
+# Item # 114 -- rarefactsharedcommand --
+./rarefactsharedcommand.o : rarefactsharedcommand.cpp
+       $(CC) $(CC_OPTIONS) rarefactsharedcommand.cpp -c $(INCLUDE) -o ./rarefactsharedcommand.o
+
+
+# Item # 115 -- sabundvector --
+./sabundvector.o : sabundvector.cpp
+       $(CC) $(CC_OPTIONS) sabundvector.cpp -c $(INCLUDE) -o ./sabundvector.o
+
+
+# Item # 116 -- sequence --
+./sequence.o : sequence.cpp
+       $(CC) $(CC_OPTIONS) sequence.cpp -c $(INCLUDE) -o ./sequence.o
+
+
+# Item # 117 -- shannon --
+./shannon.o : shannon.cpp
+       $(CC) $(CC_OPTIONS) shannon.cpp -c $(INCLUDE) -o ./shannon.o
+
+
+# Item # 118 -- sharedace --
+./sharedace.o : sharedace.cpp
+       $(CC) $(CC_OPTIONS) sharedace.cpp -c $(INCLUDE) -o ./sharedace.o
+
+
+# Item # 119 -- sharedchao1 --
+./sharedchao1.o : sharedchao1.cpp
+       $(CC) $(CC_OPTIONS) sharedchao1.cpp -c $(INCLUDE) -o ./sharedchao1.o
+
+
+# Item # 120 -- sharedcommand --
+./sharedcommand.o : sharedcommand.cpp
+       $(CC) $(CC_OPTIONS) sharedcommand.cpp -c $(INCLUDE) -o ./sharedcommand.o
+
+
+# Item # 121 -- sharedjabund --
+./sharedjabund.o : sharedjabund.cpp
+       $(CC) $(CC_OPTIONS) sharedjabund.cpp -c $(INCLUDE) -o ./sharedjabund.o
+
+
+# Item # 122 -- sharedjclass --
+./sharedjclass.o : sharedjclass.cpp
+       $(CC) $(CC_OPTIONS) sharedjclass.cpp -c $(INCLUDE) -o ./sharedjclass.o
+
+
+# Item # 123 -- sharedjest --
+./sharedjest.o : sharedjest.cpp
+       $(CC) $(CC_OPTIONS) sharedjest.cpp -c $(INCLUDE) -o ./sharedjest.o
+
+
+# Item # 124 -- sharedordervector --
+./sharedordervector.o : sharedordervector.cpp
+       $(CC) $(CC_OPTIONS) sharedordervector.cpp -c $(INCLUDE) -o ./sharedordervector.o
+
+
+# Item # 125 -- sharedrabundvector --
+./sharedrabundvector.o : sharedrabundvector.cpp
+       $(CC) $(CC_OPTIONS) sharedrabundvector.cpp -c $(INCLUDE) -o ./sharedrabundvector.o
+
+
+# Item # 126 -- sharedsabundvector --
+./sharedsabundvector.o : sharedsabundvector.cpp
+       $(CC) $(CC_OPTIONS) sharedsabundvector.cpp -c $(INCLUDE) -o ./sharedsabundvector.o
+
+
+# Item # 127 -- sharedsobs --
+./sharedsobs.o : sharedsobs.cpp
+       $(CC) $(CC_OPTIONS) sharedsobs.cpp -c $(INCLUDE) -o ./sharedsobs.o
+
+
+# Item # 128 -- sharedsorabund --
+./sharedsorabund.o : sharedsorabund.cpp
+       $(CC) $(CC_OPTIONS) sharedsorabund.cpp -c $(INCLUDE) -o ./sharedsorabund.o
+
+
+# Item # 129 -- sharedsorclass --
+./sharedsorclass.o : sharedsorclass.cpp
+       $(CC) $(CC_OPTIONS) sharedsorclass.cpp -c $(INCLUDE) -o ./sharedsorclass.o
+
+
+# Item # 130 -- sharedsorest --
+./sharedsorest.o : sharedsorest.cpp
+       $(CC) $(CC_OPTIONS) sharedsorest.cpp -c $(INCLUDE) -o ./sharedsorest.o
+
+
+# Item # 131 -- sharedthetan --
+./sharedthetan.o : sharedthetan.cpp
+       $(CC) $(CC_OPTIONS) sharedthetan.cpp -c $(INCLUDE) -o ./sharedthetan.o
+
+
+# Item # 132 -- sharedthetayc --
+./sharedthetayc.o : sharedthetayc.cpp
+       $(CC) $(CC_OPTIONS) sharedthetayc.cpp -c $(INCLUDE) -o ./sharedthetayc.o
+
+
+# Item # 133 -- simpson --
+./simpson.o : simpson.cpp
+       $(CC) $(CC_OPTIONS) simpson.cpp -c $(INCLUDE) -o ./simpson.o
+
+
+# Item # 134 -- singlelinkage --
+./singlelinkage.o : singlelinkage.cpp
+       $(CC) $(CC_OPTIONS) singlelinkage.cpp -c $(INCLUDE) -o ./singlelinkage.o
+
+
+# Item # 135 -- sparsematrix --
+./sparsematrix.o : sparsematrix.cpp
+       $(CC) $(CC_OPTIONS) sparsematrix.cpp -c $(INCLUDE) -o ./sparsematrix.o
+
+
+# Item # 136 -- summarycommand --
+./summarycommand.o : summarycommand.cpp
+       $(CC) $(CC_OPTIONS) summarycommand.cpp -c $(INCLUDE) -o ./summarycommand.o
+
+
+# Item # 137 -- summarysharedcommand --
+./summarysharedcommand.o : summarysharedcommand.cpp
+       $(CC) $(CC_OPTIONS) summarysharedcommand.cpp -c $(INCLUDE) -o ./summarysharedcommand.o
+
+
+# Item # 138 -- uvest --
+./uvest.o : uvest.cpp
+       $(CC) $(CC_OPTIONS) uvest.cpp -c $(INCLUDE) -o ./uvest.o
+
+
+# Item # 139 -- validcalculator --
+./validcalculator.o : validcalculator.cpp
+       $(CC) $(CC_OPTIONS) validcalculator.cpp -c $(INCLUDE) -o ./validcalculator.o
+
+
+# Item # 140 -- validparameter --
+./validparameter.o : validparameter.cpp
+       $(CC) $(CC_OPTIONS) validparameter.cpp -c $(INCLUDE) -o ./validparameter.o
+
+
+# Item # 141 -- treenode --
+./treenode.o : treenode.cpp
+       $(CC) $(CC_OPTIONS) treenode.cpp -c $(INCLUDE) -o ./treenode.o
+
+
+# Item # 142 -- readtreecommand --
+./readtreecommand.o : readtreecommand.cpp
+       $(CC) $(CC_OPTIONS) readtreecommand.cpp -c $(INCLUDE) -o ./readtreecommand.o
+
+
+# Item # 143 -- reversecommand --
+./reversecommand.o : reversecommand.cpp
+       $(CC) $(CC_OPTIONS) reversecommand.cpp -c $(INCLUDE) -o ./reversecommand.o
+
+
+# Item # 144 -- trimseqscommand --
+./trimseqscommand.o : trimseqscommand.cpp
+       $(CC) $(CC_OPTIONS) trimseqscommand.cpp -c $(INCLUDE) -o ./trimseqscommand.o
+
+
+# Item # 145 -- slibshuff --
+./slibshuff.o : slibshuff.cpp
+       $(CC) $(CC_OPTIONS) slibshuff.cpp -c $(INCLUDE) -o ./slibshuff.o
+
+
+# Item # 146 -- libshuff --
+./libshuff.o : libshuff.cpp
+       $(CC) $(CC_OPTIONS) libshuff.cpp -c $(INCLUDE) -o ./libshuff.o
+
+
+# Item # 147 -- dlibshuff --
+./dlibshuff.o : dlibshuff.cpp
+       $(CC) $(CC_OPTIONS) dlibshuff.cpp -c $(INCLUDE) -o ./dlibshuff.o
+
+
+# Item # 148 -- mergefilecommand --
+./mergefilecommand.o : mergefilecommand.cpp
+       $(CC) $(CC_OPTIONS) mergefilecommand.cpp -c $(INCLUDE) -o ./mergefilecommand.o
+
+
+# Item # 149 -- coverage --
+./coverage.o : coverage.cpp
+       $(CC) $(CC_OPTIONS) coverage.cpp -c $(INCLUDE) -o ./coverage.o
+
+
+# Item # 150 -- whittaker --
+./whittaker.o : whittaker.cpp
+       $(CC) $(CC_OPTIONS) whittaker.cpp -c $(INCLUDE) -o ./whittaker.o
+
+
+# Item # 151 -- preclustercommand --
+./preclustercommand.o : preclustercommand.cpp
+       $(CC) $(CC_OPTIONS) preclustercommand.cpp -c $(INCLUDE) -o ./preclustercommand.o
+
+
+# Item # 152 -- otuhierarchycommand --
+./otuhierarchycommand.o : otuhierarchycommand.cpp
+       $(CC) $(CC_OPTIONS) otuhierarchycommand.cpp -c $(INCLUDE) -o ./otuhierarchycommand.o
+
+
+# Item # 153 -- setdircommand --
+./setdircommand.o : setdircommand.cpp
+       $(CC) $(CC_OPTIONS) setdircommand.cpp -c $(INCLUDE) -o ./setdircommand.o
+
+
+# Item # 154 -- getgroupcommand --
+./getgroupcommand.o : getgroupcommand.cpp
+       $(CC) $(CC_OPTIONS) getgroupcommand.cpp -c $(INCLUDE) -o ./getgroupcommand.o
+
+
+# Item # 155 -- getlabelcommand --
+./getlabelcommand.o : getlabelcommand.cpp
+       $(CC) $(CC_OPTIONS) getlabelcommand.cpp -c $(INCLUDE) -o ./getlabelcommand.o
+
+
+# Item # 156 -- secondarystructurecommand --
+./secondarystructurecommand.o : secondarystructurecommand.cpp
+       $(CC) $(CC_OPTIONS) secondarystructurecommand.cpp -c $(INCLUDE) -o ./secondarystructurecommand.o
+
+
+# Item # 157 -- mothurout --
+./mothurout.o : mothurout.cpp
+       $(CC) $(CC_OPTIONS) mothurout.cpp -c $(INCLUDE) -o ./mothurout.o
+
+
+# Item # 158 -- parselistscommand --
+./parselistscommand.o : parselistscommand.cpp
+       $(CC) $(CC_OPTIONS) parselistscommand.cpp -c $(INCLUDE) -o ./parselistscommand.o
+
+
+# Item # 159 -- readblast --
+./readblast.o : readblast.cpp
+       $(CC) $(CC_OPTIONS) readblast.cpp -c $(INCLUDE) -o ./readblast.o
+
+
+# Item # 160 -- chimeracheckrdp --
+./chimeracheckrdp.o : chimeracheckrdp.cpp
+       $(CC) $(CC_OPTIONS) chimeracheckrdp.cpp -c $(INCLUDE) -o ./chimeracheckrdp.o
+
+
+# Item # 161 -- hclustercommand --
+./hclustercommand.o : hclustercommand.cpp
+       $(CC) $(CC_OPTIONS) hclustercommand.cpp -c $(INCLUDE) -o ./hclustercommand.o
+
+
+# Item # 162 -- hcluster --
+./hcluster.o : hcluster.cpp
+       $(CC) $(CC_OPTIONS) hcluster.cpp -c $(INCLUDE) -o ./hcluster.o
+
+
+# Item # 163 -- getlistcountcommand --
+./getlistcountcommand.o : getlistcountcommand.cpp
+       $(CC) $(CC_OPTIONS) getlistcountcommand.cpp -c $(INCLUDE) -o ./getlistcountcommand.o
+
+
+# Item # 164 -- readcluster --
+./readcluster.o : readcluster.cpp
+       $(CC) $(CC_OPTIONS) readcluster.cpp -c $(INCLUDE) -o ./readcluster.o
+
+
+# Item # 165 -- ccode --
+./ccode.o : ccode.cpp
+       $(CC) $(CC_OPTIONS) ccode.cpp -c $(INCLUDE) -o ./ccode.o
+
+
+# Item # 166 -- taxonomyequalizer --
+./taxonomyequalizer.o : taxonomyequalizer.cpp
+       $(CC) $(CC_OPTIONS) taxonomyequalizer.cpp -c $(INCLUDE) -o ./taxonomyequalizer.o
+
+
+# Item # 167 -- phylotypecommand --
+./phylotypecommand.o : phylotypecommand.cpp
+       $(CC) $(CC_OPTIONS) phylotypecommand.cpp -c $(INCLUDE) -o ./phylotypecommand.o
+
+
+# Item # 168 -- classifyseqscommand --
+./classifyseqscommand.o : classifyseqscommand.cpp
+       $(CC) $(CC_OPTIONS) classifyseqscommand.cpp -c $(INCLUDE) -o ./classifyseqscommand.o
+
+
+# Item # 169 -- classify --
+./classify.o : classify.cpp
+       $(CC) $(CC_OPTIONS) classify.cpp -c $(INCLUDE) -o ./classify.o
+
+
+# Item # 170 -- phylotree --
+./phylotree.o : phylotree.cpp
+       $(CC) $(CC_OPTIONS) phylotree.cpp -c $(INCLUDE) -o ./phylotree.o
+
+
+# Item # 171 -- bayesian --
+./bayesian.o : bayesian.cpp
+       $(CC) $(CC_OPTIONS) bayesian.cpp -c $(INCLUDE) -o ./bayesian.o
+
+
+# Item # 172 -- alignmentdb --
+./alignmentdb.o : alignmentdb.cpp
+       $(CC) $(CC_OPTIONS) alignmentdb.cpp -c $(INCLUDE) -o ./alignmentdb.o
+
+
+# Item # 173 -- knn --
+./knn.o : knn.cpp
+       $(CC) $(CC_OPTIONS) knn.cpp -c $(INCLUDE) -o ./knn.o
+
+
+# Item # 174 -- distancedb --
+./distancedb.o : distancedb.cpp
+       $(CC) $(CC_OPTIONS) distancedb.cpp -c $(INCLUDE) -o ./distancedb.o
+
+
+# Item # 175 -- chimeraslayer --
+./chimeraslayer.o : chimeraslayer.cpp
+       $(CC) $(CC_OPTIONS) chimeraslayer.cpp -c $(INCLUDE) -o ./chimeraslayer.o
+
+
+# Item # 176 -- slayer --
+./slayer.o : slayer.cpp
+       $(CC) $(CC_OPTIONS) slayer.cpp -c $(INCLUDE) -o ./slayer.o
+
+
+# Item # 177 -- pcacommand --
+./pcacommand.o : pcacommand.cpp
+       $(CC) $(CC_OPTIONS) pcacommand.cpp -c $(INCLUDE) -o ./pcacommand.o
+
+
+# Item # 178 -- formatcolumn --
+./formatcolumn.o : formatcolumn.cpp
+       $(CC) $(CC_OPTIONS) formatcolumn.cpp -c $(INCLUDE) -o ./formatcolumn.o
+
+
+# Item # 179 -- formatphylip --
+./formatphylip.o : formatphylip.cpp
+       $(CC) $(CC_OPTIONS) formatphylip.cpp -c $(INCLUDE) -o ./formatphylip.o
+
+
+# Item # 180 -- mgclustercommand --
+./mgclustercommand.o : mgclustercommand.cpp
+       $(CC) $(CC_OPTIONS) mgclustercommand.cpp -c $(INCLUDE) -o ./mgclustercommand.o
+
+
+# Item # 181 -- getsharedotucommand --
+./getsharedotucommand.o : getsharedotucommand.cpp
+       $(CC) $(CC_OPTIONS) getsharedotucommand.cpp -c $(INCLUDE) -o ./getsharedotucommand.o
+
+
+# Item # 182 -- maligner --
+./maligner.o : maligner.cpp
+       $(CC) $(CC_OPTIONS) maligner.cpp -c $(INCLUDE) -o ./maligner.o
+
+
+# Item # 183 -- chimerarealigner --
+./chimerarealigner.o : chimerarealigner.cpp
+       $(CC) $(CC_OPTIONS) chimerarealigner.cpp -c $(INCLUDE) -o ./chimerarealigner.o
+
+
+# Item # 184 -- bergerparker --
+./bergerparker.o : bergerparker.cpp
+       $(CC) $(CC_OPTIONS) bergerparker.cpp -c $(INCLUDE) -o ./bergerparker.o
+
+
+# Item # 185 -- bstick --
+./bstick.o : bstick.cpp
+       $(CC) $(CC_OPTIONS) bstick.cpp -c $(INCLUDE) -o ./bstick.o
+
+
+# Item # 186 -- sharedkstest --
+./sharedkstest.o : sharedkstest.cpp
+       $(CC) $(CC_OPTIONS) sharedkstest.cpp -c $(INCLUDE) -o ./sharedkstest.o
+
+
+# Item # 187 -- qstat --
+./qstat.o : qstat.cpp
+       $(CC) $(CC_OPTIONS) qstat.cpp -c $(INCLUDE) -o ./qstat.o
+
+
+# Item # 188 -- shen --
+./shen.o : shen.cpp
+       $(CC) $(CC_OPTIONS) shen.cpp -c $(INCLUDE) -o ./shen.o
+
+
+# Item # 189 -- logsd --
+./logsd.o : logsd.cpp
+       $(CC) $(CC_OPTIONS) logsd.cpp -c $(INCLUDE) -o ./logsd.o
+
+
+# Item # 190 -- geom --
+./geom.o : geom.cpp
+       $(CC) $(CC_OPTIONS) geom.cpp -c $(INCLUDE) -o ./geom.o
+
+# Item # 191 -- parsesffcommand --
+./parsesffcommand.o : parsesffcommand.cpp
+       $(CC) $(CC_OPTIONS) parsesffcommand.cpp -c $(INCLUDE) -o ./parsesffcommand.o
+
+# Item # 192 -- chimeraccodecommand --
+./chimeraccodecommand.o : chimeraccodecommand.cpp
+       $(CC) $(CC_OPTIONS) chimeraccodecommand.cpp -c $(INCLUDE) -o ./chimeraccodecommand.o
+
+# Item # 193 -- chimeracheckcommand --
+./chimeracheckcommand.o : chimeracheckcommand.cpp
+       $(CC) $(CC_OPTIONS) chimeracheckcommand.cpp -c $(INCLUDE) -o ./chimeracheckcommand.o
+
+
+# Item # 194 -- chimeraslayercommand --
+./chimeraslayercommand.o : chimeraslayercommand.cpp
+       $(CC) $(CC_OPTIONS) chimeraslayercommand.cpp -c $(INCLUDE) -o ./chimeraslayercommand.o
+
+# Item # 195 -- chimerapintailcommand --
+./chimerapintailcommand.o : chimerapintailcommand.cpp
+       $(CC) $(CC_OPTIONS) chimerapintailcommand.cpp -c $(INCLUDE) -o ./chimerapintailcommand.o
+
+# Item # 196 -- chimerabellerophoncommand --
+./chimerabellerophoncommand.o : chimerabellerophoncommand.cpp
+       $(CC) $(CC_OPTIONS) chimerabellerophoncommand.cpp -c $(INCLUDE) -o ./chimerabellerophoncommand.o
+
+# Item # 197 -- phylosummary --
+./phylosummary.o : phylosummary.cpp
+       $(CC) $(CC_OPTIONS) phylosummary.cpp -c $(INCLUDE) -o ./phylosummary.o
+
+# Item # 198 -- setlogfilecommand --
+./setlogfilecommand.o : setlogfilecommand.cpp
+       $(CC) $(CC_OPTIONS) setlogfilecommand.cpp -c $(INCLUDE) -o ./setlogfilecommand.o
+
+# Item # 199 -- phylodiversity --
+./phylodiversity.o : phylodiversity.cpp
+       $(CC) $(CC_OPTIONS) phylodiversity.cpp -c $(INCLUDE) -o ./phylodiversity.o
+
+# Item # 200 -- phylodiversitycommand --
+./phylodiversitycommand.o : phylodiversitycommand.cpp
+       $(CC) $(CC_OPTIONS) phylodiversitycommand.cpp -c $(INCLUDE) -o ./phylodiversitycommand.o
+
+# Item # 201 -- makegroupcommand --
+./makegroupcommand.o : makegroupcommand.cpp
+       $(CC) $(CC_OPTIONS) makegroupcommand.cpp -c $(INCLUDE) -o ./makegroupcommand.o
+
+# Item # 202 -- chopseqscommand --
+./chopseqscommand.o : chopseqscommand.cpp
        $(CC) $(CC_OPTIONS) chopseqscommand.cpp -c $(INCLUDE) -o ./chopseqscommand.o
 
-# Item # 203 -- clearcutcommand --\r
-./clearcutcommand.o : clearcutcommand.cpp\r
+# Item # 203 -- clearcutcommand --
+./clearcutcommand.o : clearcutcommand.cpp
        $(CC) $(CC_OPTIONS) clearcutcommand.cpp -c $(INCLUDE) -o ./clearcutcommand.o
 
-# Item # 204 -- catchallcommand --\r
-./catchallcommand.o : catchallcommand.cpp\r
-       $(CC) $(CC_OPTIONS) catchallcommand.cpp -c $(INCLUDE) -o ./catchallcommand.o\r
-\r
-##### END RUN ####\r
+# Item # 204 -- catchallcommand --
+./catchallcommand.o : catchallcommand.cpp
+       $(CC) $(CC_OPTIONS) catchallcommand.cpp -c $(INCLUDE) -o ./catchallcommand.o
+
+# Item # 205 -- catchallcommand --
+./splitabundcommand : splitabundcommand
+       $(CC) $(CC_OPTIONS) splitabundcommand -c $(INCLUDE) -o ./splitabundcommand
+
+##### END RUN ####
diff --git a/splitabundcommand.cpp b/splitabundcommand.cpp
new file mode 100644 (file)
index 0000000..cb57684
--- /dev/null
@@ -0,0 +1,529 @@
+/*
+ *  splitabundcommand.cpp
+ *  Mothur
+ *
+ *  Created by westcott on 5/17/10.
+ *  Copyright 2010 Schloss Lab. All rights reserved.
+ *
+ */
+
+#include "splitabundcommand.h"
+
+//**********************************************************************************************************************
+SplitAbundCommand::SplitAbundCommand(string option)  {
+       try {
+               abort = false;
+               wroteRareList = false;
+               wroteAbundList = false;
+               allLines = 1;
+                       
+               //allow user to run help
+               if(option == "help") { help(); abort = true; }
+               
+               else {
+                       //valid paramters for this command
+                       string Array[] =  {"list","name","group","label","accnos","cutoff","outputdir","inputdir"};
+                       vector<string> myArray (Array, Array+(sizeof(Array)/sizeof(string)));
+                       
+                       OptionParser parser(option);
+                       map<string, string> parameters = parser.getParameters();
+                       
+                       ValidParameters validParameter;
+                       map<string, string>::iterator it;
+               
+                       //check to make sure all parameters are valid for command
+                       for (it = parameters.begin(); it != parameters.end(); it++) { 
+                               if (validParameter.isValidParameter(it->first, myArray, it->second) != true) {  abort = true;  }
+                       }
+                                               
+                       //if the user changes the input directory command factory will send this info to us in the output parameter 
+                       string inputDir = validParameter.validFile(parameters, "inputdir", false);              
+                       if (inputDir == "not found"){   inputDir = "";          }
+                       else {
+                               string path;
+                               it = parameters.find("list");
+                               //user has given a template file
+                               if(it != parameters.end()){ 
+                                       path = hasPath(it->second);
+                                       //if the user has not given a path then, add inputdir. else leave path alone.
+                                       if (path == "") {       parameters["list"] = inputDir + it->second;             }
+                               }
+                               
+                               it = parameters.find("group");
+                               //user has given a template file
+                               if(it != parameters.end()){ 
+                                       path = hasPath(it->second);
+                                       //if the user has not given a path then, add inputdir. else leave path alone.
+                                       if (path == "") {       parameters["group"] = inputDir + it->second;            }
+                               }
+                               
+                               it = parameters.find("name");
+                               //user has given a template file
+                               if(it != parameters.end()){ 
+                                       path = hasPath(it->second);
+                                       //if the user has not given a path then, add inputdir. else leave path alone.
+                                       if (path == "") {       parameters["name"] = inputDir + it->second;             }
+                               }
+
+                       }
+
+                       
+                       //if the user changes the output directory command factory will send this info to us in the output parameter 
+                       outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  outputDir = ""; }
+
+                       //check for required parameters
+                       listfile = validParameter.validFile(parameters, "list", true);
+                       if (listfile == "not open") { abort = true; }
+                       else if (listfile == "not found") { listfile = ""; }    
+                       
+                       //check for required parameters
+                       namefile = validParameter.validFile(parameters, "name", true);
+                       if (namefile == "not open") { abort = true; }
+                       else if (namefile == "not found") { namefile = ""; }    
+                       
+                       groupfile = validParameter.validFile(parameters, "group", true);
+                       if (groupfile == "not open") { abort = true; }  
+                       else if (groupfile == "not found") { groupfile = ""; }
+                       else {  
+                               groupMap = new GroupMap(groupfile);
+                               
+                               int error = groupMap->readMap();
+                               if (error == 1) { abort = true; }
+                       }
+                       
+                       //do you have all files needed
+                       if ((listfile == "") && (namefile == "")) { m->mothurOut("You must either a listfile or a namefile for the split.abund command. "); m->mothurOutEndLine(); abort = true;  }
+                       if ((listfile != "") && (namefile != "")) { m->mothurOut("You must either a listfile or a namefile for the split.abund command, but NOT BOTH. "); m->mothurOutEndLine(); abort = true;  }
+                       
+                       //check for optional parameter and set defaults
+                       // ...at some point should added some additional type checking...
+                       label = validParameter.validFile(parameters, "label", false);                   
+                       if (label == "not found") { label = "";  allLines = 1; }
+                       else { 
+                               if(label != "all") {  splitAtDash(label, labels);  allLines = 0;  }
+                               else { allLines = 1;  }
+                       }
+                       
+                       string temp = validParameter.validFile(parameters, "accnos", false);            if (temp == "not found") { temp = "F"; }
+                       accnos = isTrue(temp); 
+                       
+                       temp = validParameter.validFile(parameters, "cutoff", false);                           if (temp == "not found") { temp = "0"; }
+                       convert(temp, cutoff); 
+
+                       if (cutoff == 0) {  m->mothurOut("You must provide a cutoff to qualify what is abundant for the split.abund command. "); m->mothurOutEndLine(); abort = true;  }
+
+               }
+
+       }
+       catch(exception& e) {
+               m->errorOut(e, "SplitAbundCommand", "SplitAbundCommand");
+               exit(1);
+       }
+}
+//**********************************************************************************************************************
+void SplitAbundCommand::help(){
+       try {
+               m->mothurOut("The split.abund command reads a list or a names file splits the sequences into rare and abundant groups.. \n");
+               m->mothurOut("The split.abund command parameters are list, name, cutoff, group, label and accnos.\n");
+               m->mothurOut("The list or name parameter is required, and you must provide a cutoff value.\n");
+               m->mothurOut("The cutoff parameter is used to qualify what is abundant and rare.\n");
+               m->mothurOut("The group parameter allows you to parse a group file into rare and abundant groups.\n");
+               m->mothurOut("The label parameter is used to read specific labels in your listfile you want to use.\n");
+               m->mothurOut("The accnos parameter allows you to output a .rare.accnos and .abund.accnos files to use with the get.seqs and remove.seqs commands.\n");
+               m->mothurOut("The split.abund command should be used in the following format: split.abund(list=yourListFile, group=yourGroupFile, label=yourLabels, cutoff=yourCutoff).\n");
+               m->mothurOut("Example: split.abundt(list=abrecovery.fn.list, group=abrecovery.groups, label=0.03, cutoff=2).\n");
+               m->mothurOut("Note: No spaces between parameter labels (i.e. list), '=' and parameters (i.e.yourListfile).\n\n");
+
+       }
+       catch(exception& e) {
+               m->errorOut(e, "SplitAbundCommand", "help");
+               exit(1);
+       }
+}
+//**********************************************************************************************************************
+SplitAbundCommand::~SplitAbundCommand(){ 
+       if (groupfile != "") {  delete groupMap;  } 
+}
+//**********************************************************************************************************************
+int SplitAbundCommand::execute(){
+       try {
+       
+               if (abort == true) {    return 0;       }
+               
+               if (namefile != "") {  split();  }
+               else {
+               
+                       //remove old files so you can append later....
+                       string fileroot = outputDir + getRootName(getSimpleName(listfile));
+                       remove((fileroot + "rare.list").c_str());
+                       remove((fileroot + "abund.list").c_str());
+                       
+                       //if the users enters label "0.06" and there is no "0.06" in their file use the next lowest label.
+                       set<string> processedLabels;
+                       set<string> userLabels = labels;        
+                       
+                       input = new InputData(listfile, "list");
+                       list = input->getListVector();
+                       string lastLabel = list->getLabel();
+                       
+                       if (m->control_pressed) { delete input; delete list; for (int i = 0; i < outputNames.size(); i++) {     remove(outputNames[i].c_str()); } return 0; }
+                       
+                       while((list != NULL) && ((allLines == 1) || (userLabels.size() != 0))) {
+                       
+                               if (m->control_pressed) { delete input; delete list; for (int i = 0; i < outputNames.size(); i++) {     remove(outputNames[i].c_str()); } return 0; }
+                               
+                               if(allLines == 1 || labels.count(list->getLabel()) == 1){
+                                               
+                                               m->mothurOut(list->getLabel()); m->mothurOutEndLine();
+                                               split(list);
+                                                                                       
+                                               processedLabels.insert(list->getLabel());
+                                               userLabels.erase(list->getLabel());
+                               }
+                               
+                               if ((anyLabelsToProcess(list->getLabel(), userLabels, "") == true) && (processedLabels.count(lastLabel) != 1)) {
+                                               string saveLabel = list->getLabel();
+                                               
+                                               delete list;
+                                               list = input->getListVector(lastLabel); //get new list vector to process
+                                               
+                                               m->mothurOut(list->getLabel()); m->mothurOutEndLine();
+                                               split(list);
+                                               
+                                               processedLabels.insert(list->getLabel());
+                                               userLabels.erase(list->getLabel());
+                                               
+                                               //restore real lastlabel to save below
+                                               list->setLabel(saveLabel);
+                               }
+                               
+                       
+                               lastLabel = list->getLabel();
+                                       
+                               delete list;
+                               list = input->getListVector(); //get new list vector to process
+                       }
+                       
+                       if (m->control_pressed) { delete input;  for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } return 0; }
+                       
+                       //output error messages about any remaining user labels
+                       set<string>::iterator it;
+                       bool needToRun = false;
+                       for (it = userLabels.begin(); it != userLabels.end(); it++) {  
+                               m->mothurOut("Your file does not include the label " + *it); 
+                               if (processedLabels.count(lastLabel) != 1) {
+                                       m->mothurOut(". I will use " + lastLabel + "."); m->mothurOutEndLine();
+                                       needToRun = true;
+                               }else {
+                                       m->mothurOut(". Please refer to " + lastLabel + "."); m->mothurOutEndLine();
+                               }
+
+                       }
+                       
+                       if (m->control_pressed) { delete input;  for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } return 0; }
+                       
+                       //run last label if you need to
+                       if (needToRun == true)  {
+                               if (list != NULL) {     delete list;    }
+                               list = input->getListVector(lastLabel); //get new list vector to process
+                               
+                               m->mothurOut(list->getLabel()); m->mothurOutEndLine();
+                               split(list);            
+                               
+                               delete list;
+                       }
+                       
+                       delete input;
+                       
+                       if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) {        remove(outputNames[i].c_str()); }       return 0;       }
+                       
+                       if (wroteAbundList) {  outputNames.push_back(fileroot + "abund.list");          }
+                       if (wroteRareList)      {  outputNames.push_back(fileroot + "rare.list");               }
+               }
+               
+               
+               m->mothurOutEndLine();
+               m->mothurOut("Output File Names: "); m->mothurOutEndLine();
+               for (int i = 0; i < outputNames.size(); i++) {  m->mothurOut(outputNames[i]); m->mothurOutEndLine();    }
+               m->mothurOutEndLine();
+               
+               return 0;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "SplitAbundCommand", "execute");
+               exit(1);
+       }
+}
+/**********************************************************************************************************************/
+int SplitAbundCommand::split(ListVector* thisList) {
+       try {
+       
+               SAbundVector* sabund = new SAbundVector();
+               *sabund = thisList->getSAbundVector();
+               
+               //find out how many bins are rare and how many are abundant so you can process the list vector one bin at a time
+               // and don't have to store the bins until you are done with the whole vector, this save alot of space.
+               int numRareBins = 0;
+               for (int i = 0; i <= sabund->getMaxRank(); i++) {
+                       if (i > cutoff) { break; }
+                       numRareBins += sabund->get(i);
+               }
+               int numAbundBins = thisList->getNumBins() - numRareBins;
+               delete sabund;
+               
+               //setup output files
+               ofstream outListAbund;
+               ofstream outListRare;
+               ofstream outGroupRare;
+               ofstream outGroupAbund;
+               ofstream outAccnosRare;
+               ofstream outAccnosAbund;
+               
+               string fileroot = outputDir + getRootName(getSimpleName(listfile));
+               if (numRareBins > 0) {
+                       wroteRareList = true;
+                       string listRareName = fileroot + "rare.list";
+                       openOutputFileAppend(listRareName, outListRare);
+                       outListRare << thisList->getLabel() << '\t' << numRareBins << '\t';
+                       
+                       if (accnos) {
+                               string accnosName = fileroot + thisList->getLabel() + ".rare.accnos";
+                               openOutputFile(accnosName, outAccnosRare);
+                               outputNames.push_back(accnosName);
+                       }
+                       
+                       if (groupfile != "") {
+                               string groupFileName = outputDir + getRootName(getSimpleName(groupfile)) + thisList->getLabel() + ".rare.group";
+                               openOutputFile(groupFileName, outGroupRare);
+                               outputNames.push_back(groupFileName);
+                       }
+               }
+               
+               if (numAbundBins > 0) {
+                       wroteAbundList = true;
+                       string listAbundName = fileroot + "abund.list";
+                       openOutputFileAppend(listAbundName, outListAbund);
+                       outListAbund << thisList->getLabel() << '\t' << numAbundBins << '\t';
+                       
+                       if (accnos) {
+                               string accnosName = fileroot + thisList->getLabel() + ".abund.accnos";
+                               openOutputFile(accnosName, outAccnosAbund);
+                               outputNames.push_back(accnosName);
+                       }
+                       
+                       if (groupfile != "") {
+                               string groupFileName = outputDir + getRootName(getSimpleName(groupfile)) + thisList->getLabel() + ".abund.group";
+                               openOutputFile(groupFileName, outGroupAbund);
+                               outputNames.push_back(groupFileName);
+                       }
+               }
+               
+               for (int i = 0; i < thisList->getNumBins(); i++) {
+                       if (m->control_pressed) { break; }
+                       
+                       string bin = list->get(i); 
+                       
+                       int size = getNumNames(bin);
+                       
+                       if (size <= cutoff) {  outListRare << bin << '\t';  }
+                       else                            {  outListAbund << bin << '\t'; }
+                       
+                       if ((groupfile != "") || (accnos)) { //you need to parse the bin...
+                               vector<string> names;
+                               splitAtComma(bin, names);  //parses bin into individual sequence names
+                               
+                               //parse bin into list of sequences in each group
+                               for (int j = 0; j < names.size(); j++) {
+                                       
+                                       //write to accnos file
+                                       if (accnos) {
+                                               if (size <= cutoff) {  outAccnosRare << names[j] << endl;  }
+                                               else                            {  outAccnosAbund << names[j] << endl; }
+                                       }
+                                       
+                                       //write to groupfile
+                                       if (groupfile != "") {
+                                               string group = groupMap->getGroup(names[j]);
+                                       
+                                               if (group == "not found") {  //error in groupfile so close and remove output file and disregard groupfile
+                                                       m->mothurOut(names[j] + " is not in your groupfile. disregarding groupfile."); m->mothurOutEndLine(); 
+                                                       delete groupMap; 
+                                                       if (numAbundBins > 0) { 
+                                                               outGroupAbund.close();
+                                                               remove((outputDir + getRootName(getSimpleName(groupfile)) + thisList->getLabel() + ".abund.group").c_str()); 
+                                                       }
+                                                       if (numRareBins > 0) { 
+                                                               outGroupRare.close();
+                                                               remove((outputDir + getRootName(getSimpleName(groupfile)) + thisList->getLabel() + ".rare.group").c_str());  
+                                                       }
+                                                       groupfile = "";
+                                               }else {
+                                                       if (size <= cutoff) {  outGroupRare << names[j] << '\t' << group << endl;  }
+                                                       else                            {  outGroupAbund << names[j] << '\t' << group << endl; }
+                                               }
+                                       }
+                                       
+                               }//end for names
+                       }//end if parse
+               }//end for list
+               
+               
+               //close files
+               if (numRareBins > 0) {  
+                       outListRare << endl;
+                       outListRare.close();
+                       if (accnos) {   outAccnosRare.close();  }
+                       if (groupfile != "") {  outGroupRare.close();   }
+               }
+               
+               if (numAbundBins > 0) { 
+                       outListAbund << endl;
+                       outListAbund.close();
+                       if (accnos) {   outAccnosAbund.close(); }
+                       if (groupfile != "") {  outGroupAbund.close();  }
+               }
+
+               return 0;
+
+       }
+       catch(exception& e) {
+               m->errorOut(e, "SplitAbundCommand", "split");
+               exit(1);
+       }
+}
+/**********************************************************************************************************************/
+int SplitAbundCommand::split() { //namefile
+       try {
+               //setup output files
+               ofstream outNameAbund;
+               ofstream outNameRare;
+               ofstream outGroupRare;
+               ofstream outGroupAbund;
+               ofstream outAccnosRare;
+               ofstream outAccnosAbund;
+               
+               bool wroteNameAbund = false;
+               bool wroteNameRare = false;
+               bool wroteGroupRare = false;
+               bool wroteGroupAbund = false;
+               bool wroteAccnosRare = false;
+               bool wroteAccnosAbund = false;
+               
+               //prepare output files
+               string fileroot = outputDir + getRootName(getSimpleName(namefile));
+                       
+               string nameRareName = fileroot + "rare.names";
+               openOutputFile(nameRareName, outNameRare);
+               string nameAbundName = fileroot + "abund.names";
+               openOutputFile(nameAbundName, outNameAbund);
+                       
+               if (accnos) {
+                       string accnosName = fileroot + "rare.accnos";
+                       openOutputFile(accnosName, outAccnosRare);
+                       
+                       accnosName = fileroot + "abund.accnos";
+                       openOutputFile(accnosName, outAccnosAbund);
+               }
+                       
+               if (groupfile != "") {
+                       string groupFileName = outputDir + getRootName(getSimpleName(groupfile))  + ".rare.group";
+                       openOutputFile(groupFileName, outGroupRare);
+                       
+                       groupFileName = outputDir + getRootName(getSimpleName(groupfile))  + ".abund.group";
+                       openOutputFile(groupFileName, outGroupAbund);
+               }
+               
+               
+               //open input file
+               ifstream in;
+               openInputFile(namefile, in);
+               
+               while (!in.eof()) {
+                       if (m->control_pressed) { break; }
+                       
+                       string firstCol, secondCol;
+                       in >> firstCol >> secondCol; gobble(in);
+                       
+                       int size = getNumNames(secondCol);
+                               
+                       if (size <= cutoff) {  outNameRare << firstCol << '\t' << secondCol << endl;  wroteNameRare = true;  }
+                       else                            {  outNameAbund << firstCol << '\t' << secondCol << endl; wroteNameAbund = true; }
+
+                       
+                       if ((groupfile != "") || (accnos)) { //you need to parse the bin...
+                               vector<string> names;
+                               splitAtComma(secondCol, names);  //parses bin into individual sequence names
+                               
+                               //parse bin into list of sequences in each group
+                               for (int j = 0; j < names.size(); j++) {
+                                       
+                                       //write to accnos file
+                                       if (accnos) {
+                                               if (size <= cutoff) {  outAccnosRare << names[j] << endl;  wroteAccnosRare = true; }
+                                               else                            {  outAccnosAbund << names[j] << endl; wroteAccnosAbund = true; }
+                                       }
+                                       
+                                       //write to groupfile
+                                       if (groupfile != "") {
+                                               string group = groupMap->getGroup(names[j]);
+                                       
+                                               if (group == "not found") {  //error in groupfile so close and remove output file and disregard groupfile
+                                                       m->mothurOut(names[j] + " is not in your groupfile. disregarding groupfile."); m->mothurOutEndLine(); 
+                                                       delete groupMap; 
+                                               
+                                                       outGroupAbund.close();
+                                                       remove((outputDir + getRootName(getSimpleName(groupfile))  + ".abund.group").c_str()); 
+                                                       outGroupRare.close();
+                                                       remove((outputDir + getRootName(getSimpleName(groupfile)) + ".rare.group").c_str());  
+                                                       
+                                                       groupfile = "";
+                                                       wroteGroupRare = false;
+                                                       wroteGroupAbund = false;
+                                               }else {
+                                                       if (size <= cutoff) {  outGroupRare << names[j] << '\t' << group << endl;  wroteGroupRare = true; }
+                                                       else                            {  outGroupAbund << names[j] << '\t' << group << endl; wroteGroupAbund = true; }
+                                               }
+                                       }
+                                       
+                               }//end for names
+                       }//end if parse
+               }//end while
+               
+               
+               //close files
+               in.close();
+               outNameRare.close();
+               outNameAbund.close();
+               if (!wroteNameRare) { remove((fileroot + "rare.names").c_str());  }
+               else { outputNames.push_back((fileroot + "rare.names"));  }
+               if (!wroteNameAbund) { remove((fileroot + "abund.names").c_str());  }
+               else { outputNames.push_back((fileroot + "abund.names"));  }
+               
+               if (groupfile != "") {  
+                       outGroupRare.close();    outGroupAbund.close();
+                       if (!wroteGroupRare) { remove((outputDir + getRootName(getSimpleName(groupfile))  + ".rare.group").c_str());  }
+                       else { outputNames.push_back((outputDir + getRootName(getSimpleName(groupfile))  + ".rare.group"));  }
+                       if (!wroteGroupAbund) { remove((outputDir + getRootName(getSimpleName(groupfile))  + ".abund.group").c_str());  }
+                       else { outputNames.push_back((outputDir + getRootName(getSimpleName(groupfile))  + ".abund.group"));  }
+               }
+       
+               if (accnos) {   
+                       outAccnosAbund.close(); outAccnosRare.close();
+                       if (!wroteAccnosRare) { remove((fileroot + "rare.accnos").c_str());  }
+                       else { outputNames.push_back((fileroot + "rare.accnos"));  }
+                       if (!wroteAccnosAbund) { remove((fileroot + "abund.accnos").c_str());  }
+                       else { outputNames.push_back((fileroot + "abund.accnos"));  }
+               }
+                                               
+               return 0;
+
+       }
+       catch(exception& e) {
+               m->errorOut(e, "SplitAbundCommand", "split");
+               exit(1);
+       }
+}
+
+/**********************************************************************************************************************/
+
+
diff --git a/splitabundcommand.h b/splitabundcommand.h
new file mode 100644 (file)
index 0000000..8d2ab2e
--- /dev/null
@@ -0,0 +1,58 @@
+#ifndef SPLITABUNDCOMMAND_H
+#define SPLITABUNDCOMMAND_H
+
+/*
+ *  splitabundcommand.h
+ *  Mothur
+ *
+ *  Created by westcott on 5/17/10.
+ *  Copyright 2010 Schloss Lab. All rights reserved.
+ *
+ */
+
+
+/* split.abund - given a list or name file and a number (cutoff), make two files - *rare* and *abund* 
+- where rare has data for otus that have fewer sequences than the cutoff and abund has data for otus 
+that have as many or more sequences as the cutoff. 
+also allow an option where a user can give a group file with the list or names file and split the group file into rare and abund. */
+
+
+#include "command.hpp"
+#include "groupmap.h"
+#include "inputdata.h"
+#include "listvector.hpp"
+
+/***************************************************************************************/
+
+class SplitAbundCommand : public Command {
+       
+public:
+       SplitAbundCommand(string);      
+       ~SplitAbundCommand();
+       int execute();  
+       void help();
+
+       
+private:
+       int split(ListVector*);
+       int split(); //namefile
+       
+       vector<string> outputNames;
+       ListVector* list;
+       GroupMap* groupMap;
+       InputData* input;
+       
+       string outputDir, listfile, namefile, groupfile, label;
+       set<string> labels;
+       bool abort, allLines, accnos, wroteRareList, wroteAbundList;
+       int cutoff;
+       
+       
+
+};
+
+/***************************************************************************************/
+
+#endif
+
+