+void ParsimonyCommand::initFile(string label){
+ try {
+ if(counter != 0){
+ openOutputFile(parsFileout, out);
+ openInputFile(parsFile, inFile);
+
+ string inputBuffer;
+ getline(inFile, inputBuffer);
+
+ if (randomtree == "") {
+ out << inputBuffer << '\t' << label + "Score" << '\t' << label + "UserFreq" << '\t' << label + "UserCumul" << '\t' << label + "RandFreq" << '\t' << label + "RandCumul" << endl;
+ }else {
+ out << inputBuffer << '\t' << label + "Score" << '\t' << label + "RandFreq" << '\t' << label + "RandCumul" << endl;
+ }
+ }else{
+ openOutputFile(parsFileout, out);
+ //column headers
+ if (randomtree == "") {
+ out << label + "Score" << '\t' << label + "UserFreq" << '\t' << label + "UserCumul" << '\t' << label + "RandFreq" << '\t' << label + "RandCumul" << endl;
+ }else {
+ out << label + "Score" << '\t' << label + "RandFreq" << '\t' << label + "RandCumul" << endl;
+ }
+ }
+
+ out.setf(ios::fixed, ios::floatfield);
+ out.setf(ios::showpoint);
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the ParsimonyCommand class Function initFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the ParsimonyCommand class function initFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+
+/***********************************************************************/
+
+void ParsimonyCommand::output(vector<double> data){
+ try {
+ if(counter != 0){
+ string inputBuffer;
+ getline(inFile, inputBuffer);
+
+ if (randomtree == "") {
+ out << inputBuffer << '\t' << setprecision(6) << data[0] << '\t' << data[1] << '\t' << data[2] << '\t' << data[3] << '\t' << data[4] << endl;
+ }else{
+ out << inputBuffer << '\t' << setprecision(6) << data[0] << '\t' << data[1] << '\t' << data[2] << endl;
+ }
+ }
+ else{
+ if (randomtree == "") {
+ out << setprecision(6) << data[0] << '\t' << data[1] << '\t' << data[2] << '\t' << data[3] << '\t' << data[4] << endl;
+ }else{
+ out << setprecision(6) << data[0] << '\t' << data[1] << '\t' << data[2] << endl;
+ }
+ }
+
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the ParsimonyCommand class Function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the ParsimonyCommand class function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+
+/***********************************************************************/
+
+void ParsimonyCommand::resetFile(){
+ try {
+ if(counter != 0){
+ out.close();
+ inFile.close();
+ }
+ else{
+ out.close();
+ }
+ counter = 1;
+
+ remove(parsFile.c_str());
+ rename(parsFileout.c_str(), parsFile.c_str());
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the ParsimonyCommand class Function resetFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the ParsimonyCommand class function resetFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+