X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=makebiomcommand.cpp;h=9e8d3e39cb58e31e9f3dca2eeff35257eadd537a;hb=cbaa068e77aeb15bb06f0695a36d8f757977ed64;hp=70e3b1ad94698cc6369d64555dd70ed889a9c841;hpb=9d241ddf4c0e2467298a523e21a3b0de46902448;p=mothur.git diff --git a/makebiomcommand.cpp b/makebiomcommand.cpp index 70e3b1a..9e8d3e3 100644 --- a/makebiomcommand.cpp +++ b/makebiomcommand.cpp @@ -112,12 +112,12 @@ vector 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 >::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 tempOutNames; outputTypes["biom"] = tempOutNames; @@ -352,7 +373,7 @@ int MakeBiomCommand::execute(){ int MakeBiomCommand::getBiom(vector& 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 MakeBiomCommand::parseTax(string tax, vector& scores) { scores.push_back(confidenceScore); }else{ scores.push_back("null"); } } - } + }else{ scores.push_back("null"); } //strip "" if they are there pos = taxon.find("\"");