2 * rarefactsharedcommand.cpp
5 * Created by Sarah Westcott on 1/6/09.
6 * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
10 #include "rarefactsharedcommand.h"
11 #include "sharedsobs.h"
12 #include "sharednseqs.h"
14 //**********************************************************************************************************************
16 RareFactSharedCommand::RareFactSharedCommand(){
18 globaldata = GlobalData::getInstance();
20 fileNameRoot = getRootName(globaldata->inputFileName);
21 format = globaldata->getFormat();
22 validCalculator = new ValidCalculators();
23 util = new SharedUtil();
26 for (i=0; i<globaldata->Estimators.size(); i++) {
27 if (validCalculator->isValidCalculator("sharedrarefaction", globaldata->Estimators[i]) == true) {
28 if (globaldata->Estimators[i] == "sharedobserved") {
29 rDisplays.push_back(new RareDisplay(new SharedSobs(), new SharedThreeColumnFile(fileNameRoot+"shared.rarefaction", "")));
30 }else if (globaldata->Estimators[i] == "sharednseqs") {
31 rDisplays.push_back(new RareDisplay(new SharedNSeqs(), new SharedThreeColumnFile(fileNameRoot+"shared.r_nseqs", "")));
37 //reset calc for next command
38 globaldata->setCalc("");
42 cout << "Standard Error: " << e.what() << " has occurred in the RareFactSharedCommand class Function RareFactSharedCommand. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
46 cout << "An unknown error has occurred in the RareFactSharedCommand class function RareFactSharedCommand. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
52 //**********************************************************************************************************************
54 RareFactSharedCommand::~RareFactSharedCommand(){
62 //**********************************************************************************************************************
64 int RareFactSharedCommand::execute(){
68 //if the users entered no valid calculators don't execute command
69 if (rDisplays.size() == 0) { return 0; }
71 read = new ReadOTUFile(globaldata->inputFileName);
72 read->read(&*globaldata);
74 input = globaldata->ginput;
75 order = input->getSharedOrderVector();
78 util->setGroups(globaldata->Groups, globaldata->gGroupmap->namesOfGroups, "rarefact");
82 if(globaldata->allLines == 1 || globaldata->lines.count(count) == 1 || globaldata->labels.count(order->getLabel()) == 1){
83 //create collectors curve
84 rCurve = new Rarefact(order, rDisplays);
85 convert(globaldata->getFreq(), freq);
86 convert(globaldata->getIters(), nIters);
87 rCurve->getSharedCurve(freq, nIters);
91 cout << order->getLabel() << '\t' << count << endl;
94 //get next line to process
96 order = input->getSharedOrderVector();
100 for(int i=0;i<rDisplays.size();i++){ delete rDisplays[i]; }
102 //reset groups parameter
103 globaldata->Groups.clear(); globaldata->setGroups("");
107 catch(exception& e) {
108 cout << "Standard Error: " << e.what() << " has occurred in the RareFactSharedCommand class Function execute. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
112 cout << "An unknown error has occurred in the RareFactSharedCommand class function execute. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
118 //**********************************************************************************************************************