X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=sharedjackknife.cpp;h=0998db8fe3106bbb40c26dc8621d37030fb275c3;hp=c267a0789ae294edc3086d42bc88d8bc028cbb0c;hb=df7e3ff9f68ef157b0328a2d353c3258c5d45d89;hpb=c196b6b4768ccb84955d773ff0f22e4994d1ba7b diff --git a/sharedjackknife.cpp b/sharedjackknife.cpp index c267a07..0998db8 100644 --- a/sharedjackknife.cpp +++ b/sharedjackknife.cpp @@ -3,7 +3,7 @@ * Mothur * * Created by Thomas Ryabin on 3/30/09. - * Copyright 2009 __MyCompanyName__. All rights reserved. + * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved. * */ @@ -12,7 +12,7 @@ /*************************************************************************************** ***************************************************************************************/ -double SharedJackknife::simpson(int abunds[], double numInd, int numBins){ +double SharedJackknife::simpson(vector abunds, double numInd, int numBins){ double denom = numInd*(numInd-1); double sum = 0; for(int i = 0; i < numBins; i++) @@ -25,7 +25,7 @@ double SharedJackknife::simpson(int abunds[], double numInd, int numBins){ double* SharedJackknife::jackknife(){ int numBins = groups.at(0)->getNumBins()-1; - int cArray[numBins]; + vector cArray(numBins); for(int i = 0; i < numBins; i++) cArray[i] = 0; @@ -39,7 +39,7 @@ double* SharedJackknife::jackknife(){ double baseD = 1/simpson(cArray, numInd, numBins); - double pseudoVals[numBins]; + vector pseudoVals(numBins); double jackknifeEstimate = 0; for(int i = 0; i < numGroups; i++) { for(int j = 0; j < numBins-1; j++) { @@ -88,8 +88,7 @@ EstOutput SharedJackknife::getValues(vector vectorShared){ SharedRAbundVector* shared1 = vectorShared[0]; SharedRAbundVector* shared2 = vectorShared[1]; if(numGroups == -1) { - globaldata = GlobalData::getInstance(); - numGroups = globaldata->Groups.size(); + numGroups = m->getNumGroups(); } if(callCount == numGroups*(numGroups-1)/2) { @@ -116,17 +115,11 @@ EstOutput SharedJackknife::getValues(vector vectorShared){ data[0] = rdata[0]; data[1] = rdata[1]; data[2] = rdata[2]; - - //cout << "sT = " << data[0] << " lower confLimit = " << data[1] << " upper confLimit = " << data[2] << "\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[0])) { data[2] = 0; } - /*for(int i = 0; i < groups.size(); i++) - cout << groups.at(i)->getGroup() << " "; - cout << "\n"; - cout << groups.size() << " " << data[0] << " " << data[1] << " " << data[2] << "\n\n";*/ - return data; } @@ -142,13 +135,9 @@ EstOutput SharedJackknife::getValues(vector vectorShared){ } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SharedJackknife class Function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SharedJackknife", "getValues"); exit(1); } - catch(...) { - cout << "An unknown error has occurred in the SharedJackknife class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } } /***********************************************************************/