X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sharedace.cpp;h=2a06380b6896ae6c908f38222abdcc566bcae077;hb=6b32d112bb60e9f7eb6d4407a4eed4c49b67bced;hp=87305965d135f8ac6b88c922c100dc0ddac91118;hpb=477e76a8a79b60f6cd4253324dd830bdea25e3e9;p=mothur.git diff --git a/sharedace.cpp b/sharedace.cpp index 8730596..2a06380 100644 --- a/sharedace.cpp +++ b/sharedace.cpp @@ -12,16 +12,16 @@ /***********************************************************************/ -EstOutput SharedAce::getValues(SharedRAbundVector* shared1, SharedRAbundVector* shared2) { +EstOutput SharedAce::getValues(vector shared) { try { data.resize(1,0); string label; - label = shared1->getLabel(); + label = shared[0]->getLabel(); - int fARare, fBRare, S12Rare, S12Abund, S12, f11, tempA, tempB, t10, t01, t11, t21, t12, t22, C12Numerator; + double fARare, fBRare, S12Rare, S12Abund, S12, f11, tempA, tempB, t10, t01, t11, t21, t12, t22, C12Numerator; fARare = 0; fBRare = 0; S12Rare = 0; S12Abund = 0; S12 = 0; f11 = 0; t10 = 0; t01 = 0; t11= 0; t21= 0; t12= 0; t22= 0; C12Numerator = 0; - float SharedAce, C12, part1, part2, part3, part4, part5, Gamma1, Gamma2, Gamma3; + double Sharedace, C12, part1, part2, part3, part4, part5, Gamma1, Gamma2, Gamma3; /*fARare = number of OTUs with one individual found in A and less than or equal to 10 in B. fBRare = number of OTUs with one individual found in B and less than or equal to 10 in A. @@ -32,10 +32,10 @@ EstOutput SharedAce::getValues(SharedRAbundVector* shared1, SharedRAbundVector* S12 = number of shared OTUs in A and B This estimator was changed to reflect Caldwell's changes, eliminating the nrare / nrare - 1 */ - for (int i = 0; i < shared1->size(); i++) { + for (int i = 0; i < shared[0]->getNumBins(); i++) { //store in temps to avoid multiple repetitive function calls - tempA = shared1->getAbundance(i); - tempB = shared2->getAbundance(i); + tempA = shared[0]->getAbundance(i); + tempB = shared[1]->getAbundance(i); if ((tempA != 0) && (tempB != 0)) {//they are shared S12++; //do both A and B have one @@ -89,25 +89,20 @@ EstOutput SharedAce::getValues(SharedRAbundVector* shared1, SharedRAbundVector* if (isnan(Gamma3) || isinf(Gamma3)) { Gamma3 = 0; } if (isnan(part1) || isinf(part1)) { part1 = 0; } if (isnan(part2) || isinf(part2)) { part2 = 0; } - + part3 = fARare * Gamma1; part4 = fBRare * Gamma2; part5 = f11 * Gamma3; - SharedAce = S12Abund + part1 + (part2 * (part3 + part4 + part5)); - data[0] = SharedAce; + Sharedace = S12Abund + part1 + (part2 * (part3 + part4 + part5)); + data[0] = Sharedace; return data; } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SharedAce class Function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SharedAce", "getValues"); exit(1); } - catch(...) { - cout << "An unknown error has occurred in the SharedAce class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - } /***********************************************************************/