]> git.donarmstrong.com Git - mothur.git/blobdiff - makebiomcommand.cpp
added count file to get.groups and remove.groups. added shortcut parameter to classif...
[mothur.git] / makebiomcommand.cpp
index 70e3b1ad94698cc6369d64555dd70ed889a9c841..9e8d3e39cb58e31e9f3dca2eeff35257eadd537a 100644 (file)
@@ -112,12 +112,12 @@ vector<string> MakeBiomCommand::setParameters(){
 string MakeBiomCommand::getHelpString(){       
        try {
                string helpString = "";
-               helpString += "The make.biom command parameters are shared, groups, matrixtype and label.  shared is required, unless you have a valid current file.\n";
+               helpString += "The make.biom command parameters are shared, contaxonomy, groups, matrixtype and label.  shared is required, unless you have a valid current file.\n";
                helpString += "The groups parameter allows you to specify which of the groups in your groupfile you would like included. The group names are separated by dashes.\n";
                helpString += "The label parameter allows you to select what distance levels you would like, and are also separated by dashes.\n";
                helpString += "The matrixtype parameter allows you to select what type you would like to make. Choices are sparse and dense, default is sparse.\n";
+        helpString += "The contaxonomy file is the taxonomy file outputted by classify.otu(list=yourListfile, taxonomy=yourTaxonomyFile). Be SURE that the you are the constaxonomy file distance matches the shared file distance.  ie, for *.0.03.cons.taxonomy set label=0.03. Mothur is smart enough to handle shared files that have been subsampled.\n";
                helpString += "The make.biom command should be in the following format: make.biom(shared=yourShared, groups=yourGroups, label=yourLabels).\n";
-        helpString += "The contaxonomy file is the taxonomy file outputted by classify.otu(list=yourListfile, taxonomy=yourTaxonomyFile). Be SURE that the you are the constaxonomy file distance matches the shared file distance.  ie, for *.0.03.cons.taxonomy set label=0.03. Mothur is smart enough to handle shared files that have been subsampled after the classify.otu command was run on the list and taxonomy file.\n";
                helpString += "Example make.biom(shared=abrecovery.an.shared, groups=A-B-C).\n";
                helpString += "The default value for groups is all the groups in your groupfile, and all labels in your inputfile will be used.\n";
                helpString += "The make.biom command outputs a .biom file.\n";
@@ -129,6 +129,27 @@ string MakeBiomCommand::getHelpString(){
                exit(1);
        }
 }
+//**********************************************************************************************************************
+string MakeBiomCommand::getOutputFileNameTag(string type, string inputName=""){        
+       try {
+        string outputFileName = "";
+               map<string, vector<string> >::iterator it;
+        
+        //is this a type this command creates
+        it = outputTypes.find(type);
+        if (it == outputTypes.end()) {  m->mothurOut("[ERROR]: this command doesn't create a " + type + " output file.\n"); }
+        else {
+            if (type == "biom")             {   outputFileName =  "biom";       }
+            else { m->mothurOut("[ERROR]: No definition for type " + type + " output file tag.\n"); m->control_pressed = true;  }
+        }
+        return outputFileName;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "MakeBiomCommand", "getOutputFileNameTag");
+               exit(1);
+       }
+}
+
 //**********************************************************************************************************************
 MakeBiomCommand::MakeBiomCommand(){    
        try {
@@ -165,7 +186,7 @@ MakeBiomCommand::MakeBiomCommand(string option) {
                        for (it = parameters.begin(); it != parameters.end(); it++) { 
                                if (validParameter.isValidParameter(it->first, myArray, it->second) != true) {  abort = true;  }
                        }
-                       
+
                        //initialize outputTypes
                        vector<string> tempOutNames;
                        outputTypes["biom"] = tempOutNames;
@@ -352,7 +373,7 @@ int MakeBiomCommand::execute(){
 int MakeBiomCommand::getBiom(vector<SharedRAbundVector*>& lookup){
        try {
         
-        string outputFileName = outputDir + m->getRootName(m->getSimpleName(sharedfile)) + lookup[0]->getLabel() + ".biom";
+        string outputFileName = outputDir + m->getRootName(m->getSimpleName(sharedfile)) + lookup[0]->getLabel() + "." + getOutputFileNameTag("biom");
                ofstream out;
                m->openOutputFile(outputFileName, out);
                outputNames.push_back(outputFileName); outputTypes["biom"].push_back(outputFileName);
@@ -612,7 +633,7 @@ vector<string> MakeBiomCommand::parseTax(string tax, vector<string>& scores) {
                         scores.push_back(confidenceScore);
                                        }else{ scores.push_back("null"); }
                                }
-                       }
+                       }else{ scores.push_back("null"); }
                        
             //strip "" if they are there
             pos = taxon.find("\"");