]> git.donarmstrong.com Git - mothur.git/blob - validcalculator.cpp
added read.shared, broke up globaldata a bit
[mothur.git] / validcalculator.cpp
1 /*
2  *  validcalculator.cpp
3  *  Dotur
4  *
5  *  Created by Sarah Westcott on 1/5/09.
6  *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
7  *
8  */
9
10 #include "validcalculator.h"
11
12 /********************************************************************/
13 ValidCalculators::ValidCalculators() {
14         try {
15                  initialSingle();
16                  initialShared();
17                  initialRarefaction();
18                  initialSharedRarefact();
19                  initialSummary();
20                  initialSharedSummary();
21         }
22         catch(exception& e) {
23                 cout << "Standard Error: " << e.what() << " has occurred in the ValidCalculator class Function ValidCalculator. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
24                 exit(1);
25         }
26         catch(...) {
27                 cout << "An unknown error has occurred in the ValidCalculator class function ValidCalculator. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
28                 exit(1);
29         }                
30 }
31
32 /********************************************************************/
33
34 ValidCalculators::~ValidCalculators() {}
35
36 /********************************************************************/
37
38 bool ValidCalculators::isValidCalculator(string parameter, string calculator) {
39         try {   
40                 //are you looking for a calculator for a single parameter
41                 if (parameter == "single") {
42                         //is it valid
43                         if ((single.find(calculator)) != (single.end())) {
44                                 return true;
45                         }else { 
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 << ", ";
49                                 }
50                                 cout << endl;
51                                 return false; }
52                 //are you looking for a calculator for a shared parameter
53                 }else if (parameter == "shared") {
54                         //is it valid
55                         if ((shared.find(calculator)) != (shared.end())) {
56                                 return true;
57                         }else { 
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 << ", ";
61                                 }
62                                 cout << endl;
63                                 return false; }
64                 //are you looking for a calculator for a rarefaction parameter
65                 }else if (parameter == "rarefaction") {
66                         //is it valid
67                         if ((rarefaction.find(calculator)) != (rarefaction.end())) {
68                                 return true;
69                         }else { 
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 << ", ";
73                                 }
74                                 cout << endl;
75                                 return false; }
76                 //are you looking for a calculator for a summary parameter
77                 }else if (parameter == "summary") {
78                         //is it valid
79                         if ((summary.find(calculator)) != (summary.end())) {
80                                 return true;
81                         }else { 
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 << ", ";
85                                 }
86                                 cout << endl;
87                                 return false; }
88                 //are you looking for a calculator for a sharedsummary parameter
89                 }else if (parameter == "sharedsummary") {
90                         //is it valid
91                         if ((sharedsummary.find(calculator)) != (sharedsummary.end())) {
92                                 return true;
93                         }else { 
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 << ", ";
97                                 }
98                                 cout << endl;
99                                 return false; }
100                 }else if (parameter == "sharedrarefaction") {
101                         //is it valid
102                         if ((sharedrarefaction.find(calculator)) != (sharedrarefaction.end())) {
103                                 return true;
104                         }else { 
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 << ", ";
108                                 }
109                                 cout << endl;
110                                 return false; }
111                 //not a valid paramter
112                 }else { return false; }
113                 
114         }
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";
117                 exit(1);
118         }
119         catch(...) {
120                 cout << "An unknown error has occurred in the ValidCalculator class function isValidCalculator. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
121                 exit(1);
122         }       
123 }
124
125 /********************************************************************/
126 void ValidCalculators::initialSingle() {
127         try {   
128         
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";
138         }
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";
141                 exit(1);
142         }
143         catch(...) {
144                 cout << "An unknown error has occurred in the ValidCalculator class function initialSingle. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
145                 exit(1);
146         }       
147 }
148
149 /********************************************************************/
150 void ValidCalculators::initialShared() {
151         try {   
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";
164         }
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";
167                 exit(1);
168         }
169         catch(...) {
170                 cout << "An unknown error has occurred in the ValidCalculator class function initialShared. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
171                 exit(1);
172         }       
173 }
174
175 /********************************************************************/
176 void ValidCalculators::initialRarefaction() {
177         try {   
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";
187         }
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";
190                 exit(1);
191         }
192         catch(...) {
193                 cout << "An unknown error has occurred in the ValidCalculator class function initialRarefaction. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
194                 exit(1);
195         }       
196 }
197
198 /********************************************************************/
199
200 void ValidCalculators::initialSummary() {
201         try {   
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";
211         }
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";
214                 exit(1);
215         }
216         catch(...) {
217                 cout << "An unknown error has occurred in the ValidCalculator class function initialSummary. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
218                 exit(1);
219         }       
220 }
221
222 /********************************************************************/
223 void ValidCalculators::initialSharedSummary() {
224         try {   
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";
237         }
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";
240                 exit(1);
241         }
242         catch(...) {
243                 cout << "An unknown error has occurred in the ValidCalculator class function initialSharedSummary. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
244                 exit(1);
245         }       
246 }
247
248
249 /********************************************************************/
250
251 void ValidCalculators::initialSharedRarefact() {
252         try {   
253                 sharedrarefaction["sharedobserved"]     = "sharedobserved";
254                 sharedrarefaction["default"]        = "default";
255         }
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";
258                 exit(1);
259         }
260         catch(...) {
261                 cout << "An unknown error has occurred in the ValidCalculator class function initialSharedRarefact. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
262                 exit(1);
263         }       
264 }
265
266 /********************************************************************/
267
268
269