]> git.donarmstrong.com Git - mothur.git/blobdiff - phylotypecommand.cpp
created mothurOut class to handle logfiles
[mothur.git] / phylotypecommand.cpp
index 2dbd53a5dad36477279961d76d547fff3d8e83d3..e3b47d863f3803b4d6d1ae7355a863b540f776c5 100644 (file)
@@ -14,7 +14,7 @@
 #include "sabundvector.hpp"
 
 /**********************************************************************************************************************/
-PhylotypeCommand::PhylotypeCommand(string option){
+PhylotypeCommand::PhylotypeCommand(string option)  {
        try {
                abort = false;
                
@@ -54,8 +54,8 @@ PhylotypeCommand::PhylotypeCommand(string option){
 
                        taxonomyFileName = validParameter.validFile(parameters, "taxonomy", true);
                        if (taxonomyFileName == "not found") { 
-                               mothurOut("taxonomy is a required parameter for the phylotype command."); 
-                               mothurOutEndLine();
+                               m->mothurOut("taxonomy is a required parameter for the phylotype command."); 
+                               m->mothurOutEndLine();
                                abort = true; 
                        }else if (taxonomyFileName == "not open") { abort = true; }     
                        
@@ -79,7 +79,7 @@ PhylotypeCommand::PhylotypeCommand(string option){
                }
        }
        catch(exception& e) {
-               errorOut(e, "PhylotypeCommand", "PhylotypeCommand");
+               m->errorOut(e, "PhylotypeCommand", "PhylotypeCommand");
                exit(1);
        }
 }
@@ -87,19 +87,19 @@ PhylotypeCommand::PhylotypeCommand(string option){
 
 void PhylotypeCommand::help(){
        try {
-               mothurOut("The phylotype command reads a taxonomy file and outputs a .list, .rabund and .sabund file. \n");
-               mothurOut("The phylotype command parameter options are taxonomy, cutoff and label. The taxonomy parameter is required.\n");
-               mothurOut("The cutoff parameter allows you to specify the level you want to stop at.  The default is the highest level in your taxonomy file. \n");
-               mothurOut("For example: taxonomy = Bacteria;Bacteroidetes-Chlorobi;Bacteroidetes; - cutoff=2, would truncate the taxonomy to Bacteria;Bacteroidetes-Chlorobi; \n");
-               mothurOut("For the cutoff parameter levels count up from the root of the phylotree. This enables you to look at the grouping down to a specific resolution, say the genus level.\n");
-               mothurOut("The label parameter allows you to specify which level you would like, and are separated by dashes.  The default all levels in your taxonomy file. \n");
-               mothurOut("For the label parameter, levels count down from the root to keep the output similiar to mothur's other commands which report information from finer resolution to coarser resolutions.\n");
-               mothurOut("The phylotype command should be in the following format: \n");
-               mothurOut("phylotype(taxonomy=yourTaxonomyFile, cutoff=yourCutoff, label=yourLabels) \n");
-               mothurOut("Eaxample: phylotype(taxonomy=amazon.taxonomy, cutoff=5, label=1-3-5).\n\n");
+               m->mothurOut("The phylotype command reads a taxonomy file and outputs a .list, .rabund and .sabund file. \n");
+               m->mothurOut("The phylotype command parameter options are taxonomy, cutoff and label. The taxonomy parameter is required.\n");
+               m->mothurOut("The cutoff parameter allows you to specify the level you want to stop at.  The default is the highest level in your taxonomy file. \n");
+               m->mothurOut("For example: taxonomy = Bacteria;Bacteroidetes-Chlorobi;Bacteroidetes; - cutoff=2, would truncate the taxonomy to Bacteria;Bacteroidetes-Chlorobi; \n");
+               m->mothurOut("For the cutoff parameter levels count up from the root of the phylotree. This enables you to look at the grouping down to a specific resolution, say the genus level.\n");
+               m->mothurOut("The label parameter allows you to specify which level you would like, and are separated by dashes.  The default all levels in your taxonomy file. \n");
+               m->mothurOut("For the label parameter, levels count down from the root to keep the output similiar to mothur's other commands which report information from finer resolution to coarser resolutions.\n");
+               m->mothurOut("The phylotype command should be in the following format: \n");
+               m->mothurOut("phylotype(taxonomy=yourTaxonomyFile, cutoff=yourCutoff, label=yourLabels) \n");
+               m->mothurOut("Eaxample: phylotype(taxonomy=amazon.taxonomy, cutoff=5, label=1-3-5).\n\n");
        }
        catch(exception& e) {
-               errorOut(e, "PhylotypeCommand", "help");
+               m->errorOut(e, "PhylotypeCommand", "help");
                exit(1);
        }
 }
@@ -114,6 +114,8 @@ int PhylotypeCommand::execute(){
        
                if (abort == true) { return 0; }
                
+               vector<string> outputNames;
+               
                //reads in taxonomy file and makes all the taxonomies the same length 
                //by appending the last taxon to a given taxonomy as many times as needed to 
                //make it as long as the longest taxonomy in the file 
@@ -131,7 +133,7 @@ int PhylotypeCommand::execute(){
                for (int i = 0; i < leaves.size(); i++)         {       currentNodes[leaves[i]] = leaves[i];    }
                
                bool done = false;
-               if (tree->get(leaves[0]).parent == -1) {  mothurOut("Empty Tree"); mothurOutEndLine();  done = true;    }
+               if (tree->get(leaves[0]).parent == -1) {  m->mothurOut("Empty Tree"); m->mothurOutEndLine();    done = true;    }
                
                string fileroot = outputDir + getRootName(getSimpleName(taxonomyFileName));
                
@@ -145,6 +147,10 @@ int PhylotypeCommand::execute(){
                string outputRabundFile = fileroot + "tx.rabund";
                openOutputFile(outputRabundFile, outRabund);
                
+               outputNames.push_back(outputListFile);
+               outputNames.push_back(outputSabundFile);
+               outputNames.push_back(outputRabundFile);
+               
                int count = 1;          
                //start at leaves of tree and work towards root, processing the labels the user wants
                while((!done) && ((allLines == 1) || (labels.size() != 0))) {
@@ -156,7 +162,7 @@ int PhylotypeCommand::execute(){
                        if(allLines == 1 || labels.count(level) == 1){  
                                
                                //output level
-                               mothurOut(level); mothurOutEndLine();
+                               m->mothurOut(level); m->mothurOutEndLine();
                                
                                ListVector list;
                                list.setLabel(level);
@@ -210,11 +216,16 @@ int PhylotypeCommand::execute(){
                
                delete tree;
                
+               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) {
-               errorOut(e, "PhylotypeCommand", "execute");
+               m->errorOut(e, "PhylotypeCommand", "execute");
                exit(1);
        }
 }