using namespace std;
#include "sharedrabundvector.h"
-#include "datavector.hpp"
-#include "utilities.hpp"
-#include <exception>
-#include "sharedrabundvector.h"
#include "sabundvector.hpp"
#include "ordervector.hpp"
exit(1);
}
}
+/***********************************************************************/
+
+void SharedRAbundVector::setData(vector <individual> newData){
+ data = newData;
+}
/***********************************************************************/
return data[index].abundance;
}
+/***********************************************************************/
+int SharedRAbundVector::numNZ(){
+ int sum = 0;
+ for(int i = 1; i < numBins; i++)
+ if(data[i].abundance > 0)
+ sum++;
+ return sum;
+}
+/***********************************************************************/
+
+void SharedRAbundVector::sortD(){
+ struct individual indObj;
+ sort(data.begin()+1, data.end(), indObj);
+}
/***********************************************************************/
individual SharedRAbundVector::get(int index){
return data[index];
}
+/***********************************************************************/
+vector <individual> SharedRAbundVector::getData(){
+ return data;
+}
/***********************************************************************/
void SharedRAbundVector::push_back(int binSize, int otu, string groupName){
/***********************************************************************/
-void SharedRAbundVector::pop_back(){
+void SharedRAbundVector::insert(int binSize, int otu, string groupName){
+ try {
+ individual newGuy;
+ newGuy.abundance = binSize;
+ newGuy.group = groupName;
+ newGuy.bin = otu;
+
+ data.insert(data.begin()+otu, newGuy);
+ numBins++;
+
+ if(binSize > maxRank){
+ maxRank = binSize;
+ }
+
+ numSeqs += binSize;
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function insert. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the SharedRAbundVector class function insert. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+
+/***********************************************************************/
+
+void SharedRAbundVector::push_front(int binSize, int otu, string groupName){
+ try {
+ individual newGuy;
+ newGuy.abundance = binSize;
+ newGuy.group = groupName;
+ newGuy.bin = otu;
+
+ data.insert(data.begin(), newGuy);
+ numBins++;
+
+ if(binSize > maxRank){
+ maxRank = binSize;
+ }
+
+ numSeqs += binSize;
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function push_front. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the SharedRAbundVector class function push_front. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+/***********************************************************************/
+void SharedRAbundVector::pop_back(){
+ numSeqs -= data[data.size()-1].abundance;
+ numBins--;
return data.pop_back();
}
try {
output << numBins << '\t';
- for(int i=0;i<numBins;i++){ output << data[i].abundance << '\t'; }
+ for(int i=0;i<data.size();i++){ output << data[i].abundance << '\t'; }
output << endl;
}
catch(exception& e) {
int SharedRAbundVector::getMaxRank(){
return maxRank;
}
-
/***********************************************************************/
SharedRAbundVector SharedRAbundVector::getSharedRAbundVector(){
exit(1);
}
}
+/***********************************************************************/
+RAbundVector SharedRAbundVector::getRAbundVector2() {
+ try {
+ RAbundVector rav;
+ for(int i = 0; i < numBins; i++)
+ if(data[i].abundance != 0)
+ rav.push_back(data[i].abundance-1);
+ return rav;
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the SharedRAbundVector class Function getRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the SharedRAbundVector class function getRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
/***********************************************************************/
SharedSAbundVector SharedRAbundVector::getSharedSAbundVector(){