X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=makelefsecommand.cpp;h=9f895f60d42b9bc6bc1527f6826bfd6fd0d23767;hb=3a5dd9e428ab93a6dcdce7912e8ebb977be0b893;hp=dd44249281fa90fa6d5c6dbefaa1380e5462a215;hpb=b25ede2ad307ae76f8a610443e0ec3ec69621ce7;p=mothur.git diff --git a/makelefsecommand.cpp b/makelefsecommand.cpp index dd44249..9f895f6 100644 --- a/makelefsecommand.cpp +++ b/makelefsecommand.cpp @@ -264,22 +264,28 @@ int MakeLefseCommand::runRelabund(map& consTax, vector categories = designMap->getNamesOfCategories(); + if (categories.size() > 3) { m->mothurOut("\n[NOTE]: LEfSe input files allow for a class, subclass and subject. More than 3 categories can cause formatting errors.\n\n"); } + for (int j = 0; j < categories.size(); j++) { out << categories[j] << "\t"; - for (int i = 0; i < lookup.size(); i++) { + for (int i = 0; i < lookup.size()-1; i++) { if (m->control_pressed) { out.close(); delete designMap; return 0; } string value = designMap->get(lookup[i]->getGroup(), categories[j]); if (value == "not found") { m->mothurOut("[ERROR]: " + lookup[i]->getGroup() + " is not in your design file, please correct.\n"); m->control_pressed = true; }else { out << value << '\t'; } } + string value = designMap->get(lookup[lookup.size()-1]->getGroup(), categories[j]); + if (value == "not found") { + m->mothurOut("[ERROR]: " + lookup[lookup.size()-1]->getGroup() + " is not in your design file, please correct.\n"); m->control_pressed = true; + }else { out << value; } out << endl; } } out << "group\t"; - for (int i = 0; i < lookup.size(); i++) { out << lookup[i]->getGroup() << '\t'; } - out << endl; + for (int i = 0; i < lookup.size()-1; i++) { out << lookup[i]->getGroup() << '\t'; } + out << lookup[lookup.size()-1]->getGroup() << endl; for (int i = 0; i < lookup[0]->getNumBins(); i++) { //process each otu if (m->control_pressed) { break; } @@ -306,8 +312,9 @@ int MakeLefseCommand::runRelabund(map& consTax, vectorgetAbundance(i) << '\t'; } - out << endl; + for (int j = 0; j < lookup.size()-1; j++) { out << lookup[j]->getAbundance(i) << '\t'; } + + out << lookup[lookup.size()-1]->getAbundance(i)<< endl; } out.close();