1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
/*
* sharedsobscollectsummary.cpp
* Mothur
*
* Created by Sarah Westcott on 2/12/09.
* Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
*
*/
#include "sharedsobscollectsummary.h"
/***********************************************************************/
//This returns the number of shared species observed in several groups.
//The shared vector is each groups sharedrabundvector.
EstOutput SharedSobsCS::getValues(vector<SharedRAbundVector*> shared){
try {
data.resize(1,0);
double observed = 0;
int numGroups = shared.size();
for (int i = 0; i < shared[0]->getNumBins(); i++) {
//get bin values and set sharedByAll
bool sharedByAll = true;
for (int j = 0; j < numGroups; j++) {
if (shared[j]->getAbundance(i) == 0) { sharedByAll = false; }
}
//they are shared
if (sharedByAll == true) { observed++; }
}
data[0] = observed;
return data;
}
catch(exception& e) {
m->errorOut(e, "SharedSobsCS", "getValues");
exit(1);
}
}
/***********************************************************************/
//This returns the number of shared species observed in several groups.
//The shared vector is each groups sharedrabundvector.
EstOutput SharedSobsCS::getValues(vector<SharedRAbundVector*> shared, vector<string>& labels){
try {
data.resize(1,0);
double observed = 0;
int numGroups = shared.size();
labels.clear();
for (int i = 0; i < shared[0]->getNumBins(); i++) {
//get bin values and set sharedByAll
bool sharedByAll = true;
for (int j = 0; j < numGroups; j++) {
if (shared[j]->getAbundance(i) == 0) { sharedByAll = false; }
}
//they are shared
if (sharedByAll == true) { observed++; labels.push_back(m->currentSharedBinLabels[i]); }
}
data[0] = observed;
return data;
}
catch(exception& e) {
m->errorOut(e, "SharedSobsCS", "getValues");
exit(1);
}
}
/***********************************************************************/
|