5 * Created by Sarah Westcott on 1/5/09.
6 * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
10 #include "validcalculator.h"
12 /********************************************************************/
13 ValidCalculators::ValidCalculators() {
18 initialSharedRarefact();
20 initialSharedSummary();
23 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function ValidCalculator. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
27 cout << "An unknown error has occurred in the ValidCalculator class function ValidCalculator. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
32 /********************************************************************/
34 ValidCalculators::~ValidCalculators() {}
36 /********************************************************************/
38 bool ValidCalculators::isValidCalculator(string parameter, string calculator) {
40 //are you looking for a calculator for a single parameter
41 if (parameter == "single") {
43 if ((single.find(calculator)) != (single.end())) {
46 cout << calculator << " is not a valid estimator for the collect.single command and will be disregarded. Valid estimators are ";
47 for (it = single.begin(); it != single.end(); it++) {
48 cout << it->first << ", ";
52 //are you looking for a calculator for a shared parameter
53 }else if (parameter == "shared") {
55 if ((shared.find(calculator)) != (shared.end())) {
58 cout << calculator << " is not a valid estimator for the collect.shared command and will be disregarded. Valid estimators are ";
59 for (it = shared.begin(); it != shared.end(); it++) {
60 cout << it->first << ", ";
64 //are you looking for a calculator for a rarefaction parameter
65 }else if (parameter == "rarefaction") {
67 if ((rarefaction.find(calculator)) != (rarefaction.end())) {
70 cout << calculator << " is not a valid estimator for the rarefaction.single command and will be disregarded. Valid estimators are ";
71 for (it = rarefaction.begin(); it != rarefaction.end(); it++) {
72 cout << it->first << ", ";
76 //are you looking for a calculator for a summary parameter
77 }else if (parameter == "summary") {
79 if ((summary.find(calculator)) != (summary.end())) {
82 cout << calculator << " is not a valid estimator for the summary.shared command and will be disregarded. Valid estimators are ";
83 for (it = summary.begin(); it != summary.end(); it++) {
84 cout << it->first << ", ";
88 //are you looking for a calculator for a sharedsummary parameter
89 }else if (parameter == "sharedsummary") {
91 if ((sharedsummary.find(calculator)) != (sharedsummary.end())) {
94 cout << calculator << " is not a valid estimator for the summary.shared command and will be disregarded. Valid estimators are ";
95 for (it = sharedsummary.begin(); it != sharedsummary.end(); it++) {
96 cout << it->first << ", ";
100 }else if (parameter == "sharedrarefaction") {
102 if ((sharedrarefaction.find(calculator)) != (sharedrarefaction.end())) {
105 cout << calculator << " is not a valid estimator for the rarefaction.shared command and will be disregarded. Valid estimator is ";
106 for (it = sharedrarefaction.begin(); it != sharedrarefaction.end(); it++) {
107 cout << it->first << ", ";
111 //not a valid paramter
112 }else { return false; }
115 catch(exception& e) {
116 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function isValidCalculator. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
120 cout << "An unknown error has occurred in the ValidCalculator class function isValidCalculator. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
125 /********************************************************************/
126 void ValidCalculators::initialSingle() {
129 single["sobs"] = "sobs";
130 single["chao"] = "chao";
131 single["ace"] = "ace";
132 single["jack"] = "jack";
133 single["shannon"] = "shannon";
134 single["npshannon"] = "npshannon";
135 single["simpson"] = "simpson";
136 single["bootstrap"] = "bootstrap";
137 single["default"] = "default";
139 catch(exception& e) {
140 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function initialSingle. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
144 cout << "An unknown error has occurred in the ValidCalculator class function initialSingle. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
149 /********************************************************************/
150 void ValidCalculators::initialShared() {
152 shared["sharedsobs"] = "sharedsobs";
153 shared["sharedchao"] = "sharedchao";
154 shared["sharedace"] = "sharedace";
155 shared["sharedjabund"] = "sharedjabund";
156 shared["sharedsorensonabund"] = "sharedsorensonabund";
157 shared["sharedjclass"] = "sharedjclass";
158 shared["sharedsorclass"] = "sharedsorclass";
159 shared["sharedjest"] = "sharedjest";
160 shared["sharedsorest"] = "sharedsorest";
161 shared["sharedthetayc"] = "sharedthetayc";
162 shared["sharedthetan"] = "sharedthetan";
163 shared["default"] = "default";
165 catch(exception& e) {
166 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function initialShared. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
170 cout << "An unknown error has occurred in the ValidCalculator class function initialShared. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
175 /********************************************************************/
176 void ValidCalculators::initialRarefaction() {
178 rarefaction["sobs"] = "sobs";
179 rarefaction["chao"] = "chao";
180 rarefaction["ace"] = "ace";
181 rarefaction["jack"] = "jack";
182 rarefaction["shannon"] = "shannon";
183 rarefaction["npshannon"] = "npshannon";
184 rarefaction["simpson"] = "simpson";
185 rarefaction["bootstrap"] = "bootstrap";
186 rarefaction["default"] = "default";
188 catch(exception& e) {
189 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function initialRarefaction. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
193 cout << "An unknown error has occurred in the ValidCalculator class function initialRarefaction. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
198 /********************************************************************/
200 void ValidCalculators::initialSummary() {
202 summary["sobs"] = "sobs";
203 summary["chao"] = "chao";
204 summary["ace"] = "ace";
205 summary["jack"] = "jack";
206 summary["shannon"] = "shannon";
207 summary["npshannon"] = "npshannon";
208 summary["simpson"] = "simpson";
209 summary["bootstrap"] = "bootstrap";
210 summary["default"] = "default";
212 catch(exception& e) {
213 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function initialSummary. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
217 cout << "An unknown error has occurred in the ValidCalculator class function initialSummary. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
222 /********************************************************************/
223 void ValidCalculators::initialSharedSummary() {
225 sharedsummary["sharedsobs"] = "sharedsobs";
226 sharedsummary["sharedchao"] = "sharedchao";
227 sharedsummary["sharedace"] = "sharedace";
228 sharedsummary["sharedjabund"] = "sharedjabund";
229 sharedsummary["sharedsorensonabund"] = "sharedsorensonabund";
230 sharedsummary["sharedjclass"] = "sharedjclass";
231 sharedsummary["sharedsorclass"] = "sharedsorclass";
232 sharedsummary["sharedjest"] = "sharedjest";
233 sharedsummary["sharedsorest"] = "sharedsorest";
234 sharedsummary["sharedthetayc"] = "sharedthetayc";
235 sharedsummary["sharedthetan"] = "sharedthetan";
236 sharedsummary["default"] = "default";
238 catch(exception& e) {
239 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function initialSharedSummary. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
243 cout << "An unknown error has occurred in the ValidCalculator class function initialSharedSummary. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
249 /********************************************************************/
251 void ValidCalculators::initialSharedRarefact() {
253 sharedrarefaction["sharedobserved"] = "sharedobserved";
254 sharedrarefaction["default"] = "default";
256 catch(exception& e) {
257 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function initialSharedRarefact. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
261 cout << "An unknown error has occurred in the ValidCalculator class function initialSharedRarefact. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
266 /********************************************************************/