helpString += "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";
helpString += "The phylotype command should be in the following format: \n";
helpString += "phylotype(taxonomy=yourTaxonomyFile, cutoff=yourCutoff, label=yourLabels) \n";
- helpString += "Eaxample: phylotype(taxonomy=amazon.taxonomy, cutoff=5, label=1-3-5).\n\n";
+ helpString += "Eaxample: phylotype(taxonomy=amazon.taxonomy, cutoff=5, label=1-3-5).\n";
return helpString;
}
catch(exception& e) {
//allow user to run help
if(option == "help") { help(); abort = true; calledHelp = true; }
+ else if(option == "citation") { citation(); abort = true; calledHelp = true;}
else {
vector<string> myArray = setParameters();
m->mothurOut("No valid current files. taxonomy is a required parameter."); m->mothurOutEndLine();
abort = true;
}
- }else if (taxonomyFileName == "not open") { abort = true; }
+ }else if (taxonomyFileName == "not open") { taxonomyFileName = ""; abort = true; }
+ else { m->setTaxonomyFile(taxonomyFileName); }
namefile = validParameter.validFile(parameters, "name", true);
- if (namefile == "not open") { abort = true; }
+ if (namefile == "not open") { namefile = ""; abort = true; }
else if (namefile == "not found") { namefile = ""; }
- else { readNamesFile(); }
+ else { readNamesFile(); m->setNameFile(namefile); }
//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"){
string temp = validParameter.validFile(parameters, "cutoff", false);
if (temp == "not found") { temp = "-1"; }
- convert(temp, cutoff);
+ m->mothurConvert(temp, cutoff);
label = validParameter.validFile(parameters, "label", false);
if (label == "not found") { label = ""; allLines = 1; }
else { allLines = 1; }
}
+ if (namefile == "") {
+ vector<string> files; files.push_back(taxonomyFileName);
+ parser.getNameFile(files);
+ }
+
}
}
catch(exception& e) {
if (m->control_pressed) {
outRabund.close(); outSabund.close(); outList.close();
- for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); }
+ for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); }
delete tree; return 0;
}
ListVector list;
list.setLabel(level);
+
//go through nodes and build listvector
for (itCurrent = currentNodes.begin(); itCurrent != currentNodes.end(); itCurrent++) {
//make the names compatable with listvector
string name = "";
for (int i = 0; i < names.size(); i++) {
- if (namefile != "") {
- map<string, string>::iterator itNames = namemap.find(names[i]); //make sure this name is in namefile
-
- if (itNames != namemap.end()) { name += namemap[names[i]] + ","; } //you found it in namefile
- else { m->mothurOut(names[i] + " is not in your namefile, please correct."); m->mothurOutEndLine(); exit(1); }
-
- }else{ name += names[i] + ","; }
+
+ if (names[i] != "unknown") {
+ if (namefile != "") {
+ map<string, string>::iterator itNames = namemap.find(names[i]); //make sure this name is in namefile
+
+ if (itNames != namemap.end()) { name += namemap[names[i]] + ","; } //you found it in namefile
+ else { m->mothurOut(names[i] + " is not in your namefile, please correct."); m->mothurOutEndLine(); exit(1); }
+
+ }else{ name += names[i] + ","; }
+ }
}
name = name.substr(0, name.length()-1); //rip off extra ','
-
//add bin to list vector
- list.push_back(name);
+ if (name != "") { list.push_back(name); } //caused by unknown
}
//print listvector
delete tree;
if (m->control_pressed) {
- for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); }
+ for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); }
return 0;
}