]> git.donarmstrong.com Git - mothur.git/blob - structpearson.cpp
added modify names parameter to set.dir
[mothur.git] / structpearson.cpp
1 /*
2  *  structpearson.cpp
3  *  Mothur
4  *
5  *  Created by westcott on 12/15/10.
6  *  Copyright 2010 Schloss Lab. All rights reserved.
7  *
8  */
9
10 #include "structpearson.h"
11
12 /***********************************************************************/
13 EstOutput StructPearson::getValues(vector<SharedRAbundVector*> shared) {
14         try {
15                 data.resize(1,0);
16                 
17                 int numOTUS = shared[0]->getNumBins();
18                 double averageA = shared[0]->getNumSeqs() /  (float) numOTUS;
19                 double averageB = shared[1]->getNumSeqs() / (float) numOTUS;
20                 
21                 double numTerm = 0.0;
22                 double denomTerm1 = 0.0;
23                 double denomTerm2 = 0.0;
24                 
25                 for (int i = 0; i < shared[0]->getNumBins(); i++) { 
26                         int Aij =  shared[0]->getAbundance(i);
27                         int Bij =  shared[1]->getAbundance(i);
28                         
29                         
30                         numTerm += ((Aij - averageA) * (Bij - averageB));
31                         denomTerm1 += ((Aij - averageA) * (Aij - averageA));
32                         denomTerm2 += ((Bij - averageB) * (Bij - averageB));
33                 }
34                 
35                 denomTerm1 = sqrt(denomTerm1);
36                 denomTerm2 = sqrt(denomTerm2);
37                 
38                 double denom = denomTerm1 * denomTerm2;
39                 
40                 data[0] = (numTerm / denom);
41                 
42                 if (isnan(data[0]) || isinf(data[0])) { data[0] = 0; }
43                 
44                 return data;
45         }
46         catch(exception& e) {
47                 m->errorOut(e, "StructPearson", "getValues");
48                 exit(1);
49         }
50 }
51 /***********************************************************************/