X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=bstick.cpp;h=67507a9967ef82effe923662298960ecf00618b8;hp=eabf087ba0b7def92129c52e1f60257b93ca8b7f;hb=050a3ff02473a3d4c0980964e1a9ebe52e55d6b8;hpb=477e76a8a79b60f6cd4253324dd830bdea25e3e9 diff --git a/bstick.cpp b/bstick.cpp index eabf087..67507a9 100644 --- a/bstick.cpp +++ b/bstick.cpp @@ -18,16 +18,15 @@ double BStick::invSum(int index, double numSpec) sum += 1/(double)i; return sum; } - +/***********************************************************************/ RAbundVector BStick::getRAbundVector(SAbundVector* rank){ vector rData; int mr = 1; int nb = 0; int ns = 0; - for(int i = rank->size()-1; i > 0; i--) - { - int cur = rank->get(i); + for(int i = rank->size()-1; i > 0; i--) { + double cur = rank->get(i); if(mr == 1 && cur > 0) mr = i; nb += cur; @@ -55,8 +54,7 @@ EstOutput BStick::getValues(SAbundVector* rank){ double sumObs = 0; double maxDiff = 0; - for(int i = 0; i < rdata.size(); i++) - { + for(int i = 0; i < rdata.size(); i++) { sumObs += rdata.get(i); sumExp += numInd/numSpec*invSum(i+1,numSpec); double diff = fabs(sumObs-sumExp); @@ -64,13 +62,15 @@ EstOutput BStick::getValues(SAbundVector* rank){ maxDiff = diff; } + data[0] = maxDiff/numInd; data[1] = 0.886/sqrt(rdata.size()); data[2] = 1.031/sqrt(rdata.size()); - /*cout << critVal << "\n"; - cout << "If D-Statistic is less than the critical value then the data fits the Broken Stick model w/ 95% confidence.\n\n";*/ + /*m->mothurOut(critVal); m->mothurOutEndLine(); + m->mothurOut("If D-Statistic is less than the critical value then the data fits the Broken Stick model w/ 95% confidence.\n");*/ + if (isnan(data[0]) || isinf(data[0])) { data[0] = 0; } if (isnan(data[1]) || isinf(data[1])) { data[1] = 0; } if (isnan(data[2]) || isinf(data[2])) { data[2] = 0; } @@ -78,13 +78,9 @@ EstOutput BStick::getValues(SAbundVector* rank){ return data; } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the NPShannon class Function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "BStick", "getValues"); exit(1); } - catch(...) { - cout << "An unknown error has occurred in the NPShannon class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } } /***********************************************************************/