X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=rarefact.cpp;h=0454d9e253473b368af34f35021dabbc4a50ae1b;hp=d04885f4333e3f224bddbfa99aa9614e9f171b4c;hb=df7e3ff9f68ef157b0328a2d353c3258c5d45d89;hpb=a537fefa3bd2c2eba7d532249375b6a11b295e25 diff --git a/rarefact.cpp b/rarefact.cpp index d04885f..0454d9e 100644 --- a/rarefact.cpp +++ b/rarefact.cpp @@ -24,7 +24,7 @@ int Rarefact::getCurve(float percentFreq = 0.01, int nIters = 1000){ if (percentFreq < 1.0) { increment = numSeqs * percentFreq; } else { increment = percentFreq; } - #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) + #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix) if(processors == 1){ driver(rcd, increment, nIters); }else{ @@ -86,12 +86,12 @@ int Rarefact::driver(RarefactionCurveData* rcd, int increment, int nIters = 1000 lookup->set(binNumber, abundance); rank->set(abundance, rank->get(abundance)+1); - if((i == 0) || (i+1) % increment == 0){ + if((i == 0) || ((i+1) % increment == 0) || (ends.count(i+1) != 0)){ rcd->updateRankData(rank); } } - if(numSeqs % increment != 0){ + if((numSeqs % increment != 0) || (ends.count(numSeqs) != 0)){ rcd->updateRankData(rank); } @@ -114,9 +114,9 @@ int Rarefact::driver(RarefactionCurveData* rcd, int increment, int nIters = 1000 int Rarefact::createProcesses(vector& procIters, RarefactionCurveData* rcd, int increment) { try { -#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) +#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix) int process = 1; - int num = 0; + vector processIDS; EstOutput results; @@ -137,7 +137,11 @@ int Rarefact::createProcesses(vector& procIters, RarefactionCurveData* rcd, displays[i]->outputTempFiles(tempFile); } exit(0); - }else { m->mothurOut("unable to spawn the necessary processes."); m->mothurOutEndLine(); exit(0); } + }else { + m->mothurOut("[ERROR]: unable to spawn the necessary processes."); m->mothurOutEndLine(); + for (int i = 0; i < processIDS.size(); i++) { kill (processIDS[i], SIGINT); } + exit(0); + } } driver(rcd, increment, procIters[0]); @@ -153,7 +157,7 @@ int Rarefact::createProcesses(vector& procIters, RarefactionCurveData* rcd, for(int j=0;jinputTempFiles(s); - remove(s.c_str()); + m->mothurRemove(s); } } @@ -179,7 +183,7 @@ try { } //if jumble is false all iters will be the same - if (globaldata->jumble == false) { nIters = 1; } + if (m->jumble == false) { nIters = 1; } //convert freq percentage to number int increment = 1; @@ -192,7 +196,7 @@ try { displays[i]->init(label); } - if (globaldata->jumble == true) { + if (m->jumble == true) { //randomize the groups random_shuffle(lookup.begin(), lookup.end()); }