X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=uvest.cpp;fp=uvest.cpp;h=0000000000000000000000000000000000000000;hb=4a877efa127e56e81a21f53cfdbbfd3bfbe8c4ff;hp=f0ca81e99748534f3eff5b28d401e04ec8b116b6;hpb=a6cf29fa4dac0909c7582cb1094151d34093ee76;p=mothur.git diff --git a/uvest.cpp b/uvest.cpp deleted file mode 100644 index f0ca81e..0000000 --- a/uvest.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - * uvest.cpp - * Dotur - * - * Created by Sarah Westcott on 1/8/09. - * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved. - * - */ - -#include "uvest.h" - -/***********************************************************************/ -//This is used by SharedJAbund and SharedSorAbund -EstOutput UVEst::getUVest(vector shared) { - try { - EstOutput results; - results.resize(2,0); - - int S12, Atotal, Btotal, f1A, f2A, f1B, f2B, sumSharedA, sumSharedB, sumSharedA1, sumSharedB1, tempA, tempB; - S12 = 0; Atotal = 0; Btotal = 0; f1A = 0; f2A = 0; f1B = 0; f2B = 0; sumSharedA = 0; sumSharedB = 0; sumSharedA1 = 0; sumSharedB1 = 0; - float Upart1, Upart2, Upart3, Vpart1, Vpart2, Vpart3, Uest, Vest; - Upart1 = 0.0; Upart2 = 0.0; Upart3 = 0.0; Vpart1 = 0.0; Vpart2 = 0.0; Vpart3 = 0.0; - - /*Xi, Yi = abundance of the ith shared OTU in A and B - ntotal, mtotal = total number of sequences sampled in A and B - I(•) = if the argument, •, is true then I(•) is 1; otherwise it is 0. - sumSharedA = the sum of all shared otus in A - sumSharedB = the sum of all shared otus in B - sumSharedA1 = the sum of all shared otus in A where B = 1 - sumSharedB1 = the sum of all shared otus in B where A = 1 */ - - for (int i = 0; i < shared[0]->getNumBins(); i++) { - //store in temps to avoid multiple repetitive function calls - tempA = shared[0]->getAbundance(i); - tempB = shared[1]->getAbundance(i); - - Atotal += tempA; - Btotal += tempB; - - if ((tempA != 0) && (tempB != 0)) {//they are shared - sumSharedA += tempA; - sumSharedB += tempB; - - //does A have one or two - if (tempA == 1) { f1A++; sumSharedB1 += tempB;} - else if (tempA == 2) { f2A++; } - - //does B have one or two - if (tempB == 1) { f1B++; sumSharedA1 += tempA;} - else if (tempB == 2) { f2B++; } - } - } - - Upart1 = sumSharedA / (float) Atotal; - Upart2 = ((Btotal - 1) * f1B) / (float) (Btotal * 2 * f2B); - Upart3 = sumSharedA1 / (float) Atotal; - - if (isnan(Upart1) || isinf(Upart1)) { Upart1 = 0; } - if (isnan(Upart2) || isinf(Upart2)) { Upart2 = 0; } - if (isnan(Upart3) || isinf(Upart3)) { Upart3 = 0; } - - Uest = Upart1 + (Upart2 * Upart3); - - Vpart1 = sumSharedB / (float) Btotal; - Vpart2 = ((Atotal - 1) * f1A) / (float) (Atotal * 2 * f2A); - Vpart3 = sumSharedB1 / (float) Btotal; - - if (isnan(Vpart1) || isinf(Vpart1)) { Vpart1 = 0; } - if (isnan(Vpart2) || isinf(Vpart2)) { Vpart2 = 0; } - if (isnan(Vpart3) || isinf(Vpart3)) { Vpart3 = 0; } - - Vest = Vpart1 + (Vpart2 * Vpart3); - - if (Uest > 1) { Uest = 1; } - if (Vest > 1) { Vest = 1; } - - results[0] = Uest; - results[1] = Vest; - - return results; - } - catch(exception& e) { - m->errorOut(e, "UVEst", "getUVest"); - exit(1); - } -} - -/***********************************************************************/