X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=collectcommand.cpp;h=88be43b9a283b3313eacb6093ffe4f496c6bc452;hb=8ab46c171b45ae3782d839539792d049017a361b;hp=9bf2c9a88c49f49f27d8a641aabc4d9f8d2ab3fe;hpb=182db2b6f1747bc1e0b8cd3eceec8751abdd31d5;p=mothur.git diff --git a/collectcommand.cpp b/collectcommand.cpp index 9bf2c9a..88be43b 100644 --- a/collectcommand.cpp +++ b/collectcommand.cpp @@ -110,6 +110,7 @@ void CollectCommand::help(){ m->mothurOut("The collect.single command can be executed after a successful cluster command. It will use the .list file from the output of the cluster.\n"); m->mothurOut("The collect.single command parameters are label, freq, calc and abund. No parameters are required. \n"); m->mothurOut("The collect.single command should be in the following format: \n"); + m->mothurOut("The freq parameter is used indicate when to output your data, by default it is set to 100. But you can set it to a percentage of the number of sequence. For example freq=0.10, means 10%. \n"); m->mothurOut("collect.single(label=yourLabel, iters=yourIters, freq=yourFreq, calc=yourEstimators).\n"); m->mothurOut("Example collect(label=unique-.01-.03, iters=10000, freq=10, calc=sobs-chao-ace-jack).\n"); m->mothurOut("The default values for freq is 100, and calc are sobs-chao-ace-jack-shannon-npshannon-simpson.\n"); @@ -234,8 +235,8 @@ int CollectCommand::execute(){ set userLabels = labels; if (m->control_pressed) { - for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } for(int i=0;iginput = NULL; delete read; delete order; globaldata->gorder = NULL; @@ -246,25 +247,26 @@ int CollectCommand::execute(){ while((order != NULL) && ((allLines == 1) || (userLabels.size() != 0))) { + + if (m->control_pressed) { + for(int i=0;iginput = NULL; + delete read; + delete order; globaldata->gorder = NULL; + delete validCalculator; + globaldata->Groups.clear(); + return 0; + } + if(allLines == 1 || labels.count(order->getLabel()) == 1){ - + + m->mothurOut(order->getLabel()); m->mothurOutEndLine(); cCurve = new Collect(order, cDisplays); - int error = cCurve->getCurve(freq); + cCurve->getCurve(freq); delete cCurve; - if (error == 1) { - for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } - for(int i=0;iginput = NULL; - delete read; - delete order; globaldata->gorder = NULL; - delete validCalculator; - globaldata->Groups.clear(); - return 0; - } - - m->mothurOut(order->getLabel()); m->mothurOutEndLine(); processedLabels.insert(order->getLabel()); userLabels.erase(order->getLabel()); @@ -277,22 +279,12 @@ int CollectCommand::execute(){ delete order; order = (input->getOrderVector(lastLabel)); + m->mothurOut(order->getLabel()); m->mothurOutEndLine(); cCurve = new Collect(order, cDisplays); - int error = cCurve->getCurve(freq); + cCurve->getCurve(freq); delete cCurve; - if (error == 1) { - for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } - for(int i=0;iginput = NULL; - delete read; - delete order; globaldata->gorder = NULL; - delete validCalculator; - globaldata->Groups.clear(); - return 0; - } - m->mothurOut(order->getLabel()); m->mothurOutEndLine(); processedLabels.insert(order->getLabel()); userLabels.erase(order->getLabel()); @@ -306,6 +298,17 @@ int CollectCommand::execute(){ order = (input->getOrderVector()); } + + if (m->control_pressed) { + for(int i=0;iginput = NULL; + delete read; + delete validCalculator; + globaldata->Groups.clear(); + return 0; + } + //output error messages about any remaining user labels set::iterator it; bool needToRun = false; @@ -327,12 +330,12 @@ int CollectCommand::execute(){ m->mothurOut(order->getLabel()); m->mothurOutEndLine(); cCurve = new Collect(order, cDisplays); - int error = cCurve->getCurve(freq); + cCurve->getCurve(freq); delete cCurve; - if (error == 1) { - for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } + if (m->control_pressed) { for(int i=0;iginput = NULL; delete read; delete order; globaldata->gorder = NULL; @@ -351,6 +354,8 @@ int CollectCommand::execute(){ delete validCalculator; } + if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } return 0; } + m->mothurOutEndLine(); m->mothurOut("Output File Names: "); m->mothurOutEndLine(); for (int i = 0; i < outputNames.size(); i++) { m->mothurOut(outputNames[i]); m->mothurOutEndLine(); }