]> git.donarmstrong.com Git - mothur.git/blobdiff - readotu.cpp
fixed phylo.diversity
[mothur.git] / readotu.cpp
index 971ed31ae005e15b3ec0785a9728311ef6ca12f8..00448f8a24cced84a346dfedc434ffa838698371 100644 (file)
 /***********************************************************************/
 
 ReadOTUFile::ReadOTUFile(string pf): philFile(pf){
-       
-       openInputFile(philFile, fileHandle);
+       m = MothurOut::getInstance();
+       //m->openInputFile(philFile, fileHandle);
 }
 
 /***********************************************************************/
 //This function reads the list, rabund or sabund files to be used by collect and rarefact command.
 void ReadOTUFile::read(GlobalData* globaldata){
        try {
+
                if (globaldata->getOrderFile() == "") {
                        //you have two inputs because in the next if statement if you only have one then it moves ahead in the same file.  
                        //So when you run the collect or summary commands you miss a line.
@@ -30,35 +31,46 @@ void ReadOTUFile::read(GlobalData* globaldata){
                }else {//there is an orderfile
                        input = new InputData(philFile, globaldata->getOrderFile(), globaldata->getFormat());
                }
-               
+       
                //memory leak prevention
                //if (globaldata->ginput != NULL) { delete globaldata->ginput;  }
                globaldata->ginput = input;     //saving to be used by collector and rarefact commands.
-               
+
                if ((globaldata->getFormat() == "list") || (globaldata->getFormat() == "rabund") || (globaldata->getFormat() == "sabund")) {//you are reading a list, rabund or sabund file for collect, rarefaction or summary.
+
+//cout << input << '\t' << globaldata << endl;
                        order = input->getOrderVector();
                        //memory leak prevention
+
                        //if (globaldata->gorder != NULL) { delete globaldata->gorder;  }
                        globaldata->gorder = order;     //saving to be used by collect and rarefact commands.
                        sabund = inputSabund->getSAbundVector(); 
+                       //if (globaldata->sabund != NULL) { delete globaldata->sabund;  }
                        globaldata->sabund = sabund; //saving to be used by summary command.
+                       delete inputSabund;
+
                        rabund = inputRabund->getRAbundVector(); 
-                       globaldata->rabund = rabund; //saving to be used by heatmap command.
+                       //if (globaldata->rabund != NULL) { delete globaldata->rabund;  }
+                       globaldata->rabund = rabund; //saving to be used by heatmap.bin command.
+                       delete inputRabund;
+
                        list = inputList->getListVector();
+                       //if (globaldata->gListVector != NULL) { delete globaldata->gListVector;  }
                        globaldata->gListVector = list;
+                       delete inputList;
+
                }else if (globaldata->getFormat() == "shared") {
                        SharedList = input->getSharedListVector(); //you are reading for collect.shared, rarefaction.shared, summary.shared, parselist command, or shared commands.
                        //memory leak prevention
                        //if (globaldata->gSharedList != NULL) { delete globaldata->gSharedList;  }
                        globaldata->gSharedList = SharedList;
+                       delete inputSabund;
+                       delete inputRabund;
+                       delete inputList;
                }
        }
        catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the ReadOTUFile class Function read. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
-               exit(1);
-       }
-       catch(...) {
-               cout << "An unknown error has occurred in the ReadOTUFile class function read. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               m->errorOut(e, "ReadOTUFile", "read");
                exit(1);
        }
 }