]> git.donarmstrong.com Git - mothur.git/blobdiff - fileoutput.cpp
added bootstrap.shared command and fixed some bugs with heatmap
[mothur.git] / fileoutput.cpp
index c8df770c8054b42d1bdcf7c654700a284ee2aa8f..9c1f9c0f0c61fe3b27d84f699482d8708ad1e660 100644 (file)
@@ -85,8 +85,13 @@ void ThreeColumnFile::resetFile(){
                        outFile.close();
                }
                counter = 1;
+               
                remove(inName.c_str());
-               rename(outName.c_str(), inName.c_str());
+               renameOk = rename(outName.c_str(), inName.c_str());
+               
+               //checks to make sure user was able to rename and remove successfully
+               if ((renameOk != 0)) {  cout << "Unable to rename necessary files." << endl;  cout << outName << "  g   " << inName << endl;}
+
        }
        catch(exception& e) {
                cout << "Standard Error: " << e.what() << " has occurred in the ThreeColumnFile class Function resetFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
@@ -101,6 +106,118 @@ void ThreeColumnFile::resetFile(){
 /***********************************************************************/
 /***********************************************************************/
 
+ColumnFile::~ColumnFile(){
+       
+       inFile.close();
+       outFile.close();
+       remove(outName.c_str());
+};
+
+/***********************************************************************/
+
+void ColumnFile::initFile(string label, vector<string> tags){
+       try {
+               if(counter != 0){
+                       openOutputFile(outName, outFile);
+                       openInputFile(inName, inFile);
+
+                       string inputBuffer;
+                       getline(inFile, inputBuffer);
+               
+                       outFile <<  inputBuffer << '\t'; 
+                       for(int i = 0; i < tags.size(); i++) {
+                               outFile << label + tags[i] << '\t';
+                       }
+                       outFile << endl;
+               }
+               else{
+                       openOutputFile(outName, outFile);
+                       for(int i = 0; i < tags.size(); i++) {
+                               outFile << label + tags[i] << '\t';
+                       }
+                       outFile << endl;
+               }
+
+               outFile.setf(ios::fixed, ios::floatfield);
+               outFile.setf(ios::showpoint);
+       }
+       catch(exception& e) {
+               cout << "Standard Error: " << e.what() << " has occurred in the ColumnFile class Function initFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               exit(1);
+       }
+       catch(...) {
+               cout << "An unknown error has occurred in the ColumnFile class function initFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               exit(1);
+       }
+}
+
+/***********************************************************************/
+
+void ColumnFile::output(vector<double> data){
+       try {
+       
+               if(counter != 0){               
+                       string inputBuffer;
+                       getline(inFile, inputBuffer);
+
+                       outFile << inputBuffer << '\t' << setprecision(6) << data[0] << setprecision(globaldata->getIters().length());
+                       for (int i = 1; i< data.size(); i++) {
+                               outFile << '\t' << data[i]; 
+                       }
+                       outFile << endl;
+               }
+               else{
+                       outFile << setprecision(6) << data[0] << setprecision(globaldata->getIters().length());
+                       for (int i = 1; i< data.size(); i++) {
+                               outFile << '\t' << data[i]; 
+                       }
+                       outFile << endl;
+               }
+
+       }
+       catch(exception& e) {
+               cout << "Standard Error: " << e.what() << " has occurred in the ColumnFile class Function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               exit(1);
+       }
+       catch(...) {
+               cout << "An unknown error has occurred in the ColumnFile class function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               exit(1);
+       }
+};
+
+/***********************************************************************/
+
+void ColumnFile::resetFile(){
+       try {
+               if(counter != 0){
+                       outFile.close();
+                       inFile.close();
+               }
+               else{
+                       outFile.close();
+               }
+               counter = 1;
+               
+               remove(inName.c_str());
+               renameOk = rename(outName.c_str(), inName.c_str());
+               
+               //checks to make sure user was able to rename and remove successfully
+               if ((renameOk != 0)) { cout << "Unable to rename necessary files." << endl; }
+
+       }
+       catch(exception& e) {
+               cout << "Standard Error: " << e.what() << " has occurred in the ColumnFile class Function resetFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               exit(1);
+       }
+       catch(...) {
+               cout << "An unknown error has occurred in the ColumnFile class function resetFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               exit(1);
+       }       
+}
+
+/***********************************************************************/
+/***********************************************************************/
+
 SharedThreeColumnFile::~SharedThreeColumnFile(){
        
        inFile.close();
@@ -177,7 +294,11 @@ void SharedThreeColumnFile::resetFile(){
                }
                counter = 1;
                remove(inName.c_str());
-               rename(outName.c_str(), inName.c_str());
+               renameOk = rename(outName.c_str(), inName.c_str());
+               
+               //checks to make sure user was able to rename and remove successfully
+               if ((renameOk != 0)) { cout << "Unable to rename necessary files." << endl; }
+
        }
        catch(exception& e) {
                cout << "Standard Error: " << e.what() << " has occurred in the SharedThreeColumnFile class Function resetFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
@@ -268,7 +389,11 @@ void OneColumnFile::resetFile(){
                }       
                counter = 1;
                remove(inName.c_str());
-               rename(outName.c_str(), inName.c_str());
+               renameOk = rename(outName.c_str(), inName.c_str());
+               
+               //checks to make sure user was able to rename and remove successfully
+               if ((renameOk != 0)) { cout << "Unable to rename necessary files." << endl; }
+
        }
        catch(exception& e) {
                cout << "Standard Error: " << e.what() << " has occurred in the OneColumnFile class Function resetFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
@@ -283,7 +408,7 @@ void OneColumnFile::resetFile(){
 /***********************************************************************/
 /***********************************************************************/
 
-SharedOneColumnFile::~OneColumnFile(){
+SharedOneColumnFile::~SharedOneColumnFile(){
        
        inFile.close();
        outFile.close();
@@ -366,8 +491,14 @@ void SharedOneColumnFile::resetFile(){
                        outFile.close();
                }       
                counter = 1;
+               
                remove(inName.c_str());
-               rename(outName.c_str(), inName.c_str());
+               renameOk = rename(outName.c_str(), inName.c_str());
+               
+               //checks to make sure user was able to rename and remove successfully
+               if ((renameOk != 0)) { cout << "Unable to rename necessary files." << endl; }
+
+               
        }
        catch(exception& e) {
                cout << "Standard Error: " << e.what() << " has occurred in the OneColumnFile class Function resetFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";