* Copyright 2008 Patrick D. Schloss. All rights reserved.
*
*/
-using namespace std;
-#include "datavector.hpp"
-#include "utilities.hpp"
-#include <exception>
#include "rabundvector.hpp"
#include "sabundvector.hpp"
#include "ordervector.hpp"
+#include "calculator.h"
/***********************************************************************/
-RAbundVector::RAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0) {};
+RAbundVector::RAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0) {}
/***********************************************************************/
-RAbundVector::RAbundVector(int n) : DataVector(), data(n,0) , maxRank(0), numBins(0), numSeqs(0) {};
+RAbundVector::RAbundVector(int n) : DataVector(), data(n,0) , maxRank(0), numBins(0), numSeqs(0) {}
/***********************************************************************/
-//RAbundVector::RAbundVector(const RAbundVector& rav) : DataVector(rav), data(rav.data), (rav.label), (rav.maxRank), (rav.numBins), (rav.numSeqs){};
+//RAbundVector::RAbundVector(const RAbundVector& rav) : DataVector(rav), data(rav.data), (rav.label), (rav.maxRank), (rav.numBins), (rav.numSeqs){}
/***********************************************************************/
}
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the RAbundVector class Function RAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "RAbundVector", "RAbundVector");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the RAbundVector class function RAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+}
+
+/***********************************************************************/
+
+RAbundVector::RAbundVector(vector<int> rav, int mr, int nb, int ns) {
+ try {
+ numBins = nb;
+ maxRank = mr;
+ numSeqs = ns;
+ data = rav;
+ }
+ catch(exception& e) {
+ m->errorOut(e, "RAbundVector", "RAbundVector");
exit(1);
}
}
-
/***********************************************************************/
}
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the RAbundVector class Function RAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the RAbundVector class function RAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "RAbundVector", "RAbundVector");
exit(1);
}
}
numSeqs += (newBinSize - oldBinSize);
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the RAbundVector class Function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the RAbundVector class function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "RAbundVector", "set");
exit(1);
}
}
return data[index];
}
+/***********************************************************************/
+void RAbundVector::clear(){
+ numBins = 0;
+ maxRank = 0;
+ numSeqs = 0;
+ data.clear();
+
+}
/***********************************************************************/
void RAbundVector::push_back(int binSize){
numSeqs += binSize;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the RAbundVector class Function push_back. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the RAbundVector class function push_back. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "RAbundVector", "push_back");
exit(1);
}
}
/***********************************************************************/
+void RAbundVector::quicksort(){
+ sort(data.rbegin(), data.rend());
+}
+
+/***********************************************************************/
+
+int RAbundVector::sum(){
+ VecCalc vecCalc;
+ return vecCalc.sumElements(data);
+}
+
+/***********************************************************************/
+
+int RAbundVector::sum(int index){
+ VecCalc vecCalc;
+ return vecCalc.sumElements(data, index);
+}
+
+/***********************************************************************/
+
+int RAbundVector::numNZ(){
+ VecCalc vecCalc;
+ return vecCalc.numNZ(data);
+}
+
+/***********************************************************************/
+
vector<int>::reverse_iterator RAbundVector::rbegin(){
return data.rbegin();
}
return data.rend();
}
+/***********************************************************************/
+void RAbundVector::nonSortedPrint(ostream& output){
+ try {
+ output << label << '\t' << numBins << '\t';
+
+ for(int i=0;i<numBins;i++){ output << data[i] << '\t'; }
+ output << endl;
+ }
+ catch(exception& e) {
+ m->errorOut(e, "RAbundVector", "nonSortedPrint");
+ exit(1);
+ }
+}
/***********************************************************************/
void RAbundVector::print(string prefix, ostream& output){
try {
output << endl;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the RAbundVector class Function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the RAbundVector class function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "RAbundVector", "print");
exit(1);
}
}
+
/***********************************************************************/
void RAbundVector::print(ostream& output){
try {
output << endl;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the RAbundVector class Function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the RAbundVector class function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "RAbundVector", "print");
exit(1);
}
}
return sav;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the RAbundVector class Function getSAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the RAbundVector class function getSAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "RAbundVector", "getSAbundVector");
exit(1);
}
}
OrderVector RAbundVector::getOrderVector(map<string,int>* nameMap = NULL) {
try {
OrderVector ov;
-
+
for(int i=0;i<data.size();i++){
for(int j=0;j<data[i];j++){
ov.push_back(i);
}
}
random_shuffle(ov.begin(), ov.end());
-
ov.setLabel(label);
+ ov.getNumBins();
+
return ov;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the RAbundVector class Function getOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the RAbundVector class function getOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "RAbundVector", "getOrderVector");
exit(1);
}
}