/***********************************************************************/
-void Rarefact::getCurve(int increment = 1, int nIters = 1000){
+int Rarefact::getCurve(float percentFreq = 0.01, int nIters = 1000){
try {
RarefactionCurveData* rcd = new RarefactionCurveData();
for(int i=0;i<displays.size();i++){
rcd->registerDisplay(displays[i]);
}
-
+
+ //convert freq percentage to number
+ int increment = 1;
+ if (percentFreq < 1.0) { increment = numSeqs * percentFreq; }
+ else { increment = percentFreq; }
+
for(int iter=0;iter<nIters;iter++){
for(int i=0;i<displays.size();i++){
for(int i=0;i<numSeqs;i++){
+ if (m->control_pressed) { delete lookup; delete rank; delete rcd; return 0; }
+
int binNumber = order->get(i);
int abundance = lookup->get(binNumber);
displays[i]->close();
}
delete rcd;
+ return 0;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the Rarefact class Function getCurve. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the Rarefact class function getCurve. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "Rarefact", "getCurve");
exit(1);
}
}
/***********************************************************************/
-void Rarefact::getSharedCurve(int increment = 1, int nIters = 1000){
+int Rarefact::getSharedCurve(float percentFreq = 0.01, int nIters = 1000){
try {
SharedRarefactionCurveData* rcd = new SharedRarefactionCurveData();
rcd->registerDisplay(displays[i]);
}
+ //if jumble is false all iters will be the same
+ if (globaldata->jumble == false) { nIters = 1; }
+
+ //convert freq percentage to number
+ int increment = 1;
+ if (percentFreq < 1.0) { increment = numSeqs * percentFreq; }
+ else { increment = percentFreq; }
+
for(int iter=0;iter<nIters;iter++){
for(int i=0;i<displays.size();i++){
displays[i]->init(label);
}
-
- //randomize the groups
- random_shuffle(lookup.begin(), lookup.end());
+
+ if (globaldata->jumble == true) {
+ //randomize the groups
+ random_shuffle(lookup.begin(), lookup.end());
+ }
//make merge the size of lookup[0]
SharedRAbundVector* merge = new SharedRAbundVector(lookup[0]->size());
vector<SharedRAbundVector*> subset;
//send each group one at a time
for (int k = 0; k < lookup.size(); k++) {
+ if (m->control_pressed) { delete merge; delete rcd; return 0; }
+
subset.clear(); //clears out old pair of sharedrabunds
//add in new pair of sharedrabunds
subset.push_back(merge); subset.push_back(lookup[k]);
}
delete rcd;
+ return 0;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the Rarefact class Function getSharedCurve. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "Rarefact", "getSharedCurve");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the Rarefact class function getSharedCurve. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
-
}
/**************************************************************************************/
}
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the Rarefact class Function mergeVectors. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "Rarefact", "mergeVectors");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the Rarefact class function mergeVectors. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
}