]> git.donarmstrong.com Git - mothur.git/blobdiff - getcoremicrobiomecommand.cpp
added modify names parameter to set.dir
[mothur.git] / getcoremicrobiomecommand.cpp
index 97e2c7a47d47003b20e6eacd2a42d25a4ad7f9e4..5fbb78131ed3ceda425516bdcd2766f3c1eb196f 100644 (file)
@@ -6,21 +6,21 @@
 //  Copyright (c) 2012 Schloss Lab. All rights reserved.
 //
 
-#include "GetCoreMicroBiomeCommand.h"
+#include "getcoremicrobiomecommand.h"
 
 
 //**********************************************************************************************************************
 vector<string> GetCoreMicroBiomeCommand::setParameters(){      
        try {
-        CommandParameter pshared("shared", "InputTypes", "", "", "SharedRel", "SharedRel", "none",false,false); parameters.push_back(pshared);
-               CommandParameter prelabund("relabund", "InputTypes", "", "", "SharedRel", "SharedRel", "none",false,false); parameters.push_back(prelabund);
-        CommandParameter pgroups("groups", "String", "", "", "", "", "",false,false); parameters.push_back(pgroups);
-               CommandParameter plabel("label", "String", "", "", "", "", "",false,false); parameters.push_back(plabel);
-               CommandParameter poutput("output", "Multiple", "fraction-count", "fraction", "", "", "",false,false); parameters.push_back(poutput);
-        CommandParameter pabund("abundance", "Number", "", "-1", "", "", "",false,false); parameters.push_back(pabund);
-               CommandParameter psamples("samples", "Number", "", "-1", "", "", "",false,false); parameters.push_back(psamples);
-               CommandParameter pinputdir("inputdir", "String", "", "", "", "", "",false,false); parameters.push_back(pinputdir);
-               CommandParameter poutputdir("outputdir", "String", "", "", "", "", "",false,false); parameters.push_back(poutputdir);
+        CommandParameter pshared("shared", "InputTypes", "", "", "SharedRel", "SharedRel", "none","coremicrobiom",false,false, true); parameters.push_back(pshared);
+               CommandParameter prelabund("relabund", "InputTypes", "", "", "SharedRel", "SharedRel", "none","coremicrobiom",false,false, true); parameters.push_back(prelabund);
+        CommandParameter pgroups("groups", "String", "", "", "", "", "","",false,false); parameters.push_back(pgroups);
+               CommandParameter plabel("label", "String", "", "", "", "", "","",false,false); parameters.push_back(plabel);
+               CommandParameter poutput("output", "Multiple", "fraction-count", "fraction", "", "", "","",false,false); parameters.push_back(poutput);
+        CommandParameter pabund("abundance", "Number", "", "-1", "", "", "","",false,false); parameters.push_back(pabund);
+               CommandParameter psamples("samples", "Number", "", "-1", "", "", "","",false,false); parameters.push_back(psamples);
+               CommandParameter pinputdir("inputdir", "String", "", "", "", "", "","",false,false); parameters.push_back(pinputdir);
+               CommandParameter poutputdir("outputdir", "String", "", "", "", "", "","",false,false); parameters.push_back(poutputdir);
                
                vector<string> myArray;
                for (int i = 0; i < parameters.size(); i++) {   myArray.push_back(parameters[i].name);          }
@@ -52,12 +52,27 @@ string GetCoreMicroBiomeCommand::getHelpString(){
        }
 }
 //**********************************************************************************************************************
+string GetCoreMicroBiomeCommand::getOutputPattern(string type) {
+    try {
+        string pattern = "";
+        
+        if (type == "coremicrobiome") {  pattern = "[filename],[tag],core.microbiome"; } 
+        else { m->mothurOut("[ERROR]: No definition for type " + type + " output pattern.\n"); m->control_pressed = true;  }
+        
+        return pattern;
+    }
+    catch(exception& e) {
+        m->errorOut(e, "GetCoreMicroBiomeCommand", "getOutputPattern");
+        exit(1);
+    }
+}
+//**********************************************************************************************************************
 GetCoreMicroBiomeCommand::GetCoreMicroBiomeCommand(){  
        try {
                abort = true; calledHelp = true;
                setParameters();
         vector<string> tempOutNames;
-               outputTypes["coremicrobiom"] = tempOutNames; 
+               outputTypes["coremicrobiome"] = tempOutNames; 
        }
        catch(exception& e) {
                m->errorOut(e, "GetCoreMicroBiomeCommand", "GetCoreMicroBiomeCommand");
@@ -111,7 +126,9 @@ GetCoreMicroBiomeCommand::GetCoreMicroBiomeCommand(string option)  {
                                }
             }
            
-        
+            vector<string> tempOutNames;
+            outputTypes["coremicrobiome"] = tempOutNames; 
+
                        //check for parameters
             sharedfile = validParameter.validFile(parameters, "shared", true);
                        if (sharedfile == "not open") { abort = true; }
@@ -284,9 +301,11 @@ int GetCoreMicroBiomeCommand::execute(){
 
 int GetCoreMicroBiomeCommand::createTable(vector<SharedRAbundFloatVector*>& lookup){
        try {
-        
-        string outputFileName = outputDir + m->getRootName(m->getSimpleName(inputFileName)) + lookup[0]->getLabel() + ".core.microbiom";
-        outputNames.push_back(outputFileName);  outputTypes["coremicrobiom"].push_back(outputFileName);
+        map<string, string> variables; 
+        variables["[filename]"] = outputDir + m->getRootName(m->getSimpleName(inputFileName));
+        variables["[tag]"] = lookup[0]->getLabel();
+        string outputFileName = getOutputFileName("coremicrobiome", variables);
+        outputNames.push_back(outputFileName);  outputTypes["coremicrobiome"].push_back(outputFileName);
                ofstream out;
                m->openOutputFile(outputFileName, out);
         
@@ -370,8 +389,8 @@ int GetCoreMicroBiomeCommand::createTable(vector<SharedRAbundFloatVector*>& look
         if (m->control_pressed) { return 0; }
         
         if ((samples != -1) || (abund != -1))  {
-            string outputFileName2 = outputDir + m->getRootName(m->getSimpleName(inputFileName)) + lookup[0]->getLabel() + ".core.microbiomlist";
-            outputNames.push_back(outputFileName2);  outputTypes["coremicrobiom"].push_back(outputFileName2);
+            string outputFileName2 = outputDir + m->getRootName(m->getSimpleName(inputFileName)) + lookup[0]->getLabel() + ".core.microbiomelist";
+            outputNames.push_back(outputFileName2);  outputTypes["coremicrobiome"].push_back(outputFileName2);
             ofstream out2;
             m->openOutputFile(outputFileName2, out2);