]> git.donarmstrong.com Git - mothur.git/blobdiff - binsequencecommand.cpp
fixed memory leak in rarefact
[mothur.git] / binsequencecommand.cpp
index 4db41bf4c1ef91d8fd6a2c11d349aa167bef9bcb..375eec2dd85db754f9bb0491447d2b966b1d5a37 100644 (file)
@@ -57,7 +57,7 @@ int BinSeqCommand::execute(){
                }
                
                //read list file
-               read = new ReadPhilFile(globaldata->getListFile());     
+               read = new ReadOTUFile(globaldata->getListFile());      
                read->read(&*globaldata); 
                
                input = globaldata->ginput;
@@ -67,7 +67,10 @@ int BinSeqCommand::execute(){
                        
                        if(globaldata->allLines == 1 || globaldata->lines.count(count) == 1 || globaldata->labels.count(list->getLabel()) == 1){
                                
-                               //create output file
+                               //make new folder for bin info
+                               //string foldername = "/" + getRootName(globaldata->getListFile()) + list->getLabel() + ".bins/";
+                       //      mkdir(foldername.c_str()); 
+                       
                                string outputFileName = getRootName(globaldata->getListFile()) + list->getLabel() + ".fasta";
                                openOutputFile(outputFileName, out);
 
@@ -75,6 +78,11 @@ int BinSeqCommand::execute(){
                                
                                //for each bin in the list vector
                                for (int i = 0; i < list->size(); i++) {
+                               
+                                       //create output file
+                                       //string outputFileName = foldername + getRootName(globaldata->getListFile()) + "bin" + toString(i+1) + ".fasta";
+                                       //openOutputFile(outputFileName, out);
+
                                        binnames = list->get(i);
                                        while (binnames.find_first_of(',') != -1) { 
                                                name = binnames.substr(0,binnames.find_first_of(','));
@@ -83,7 +91,7 @@ int BinSeqCommand::execute(){
                                                //do work for that name
                                                sequence = fasta->getSequence(name);
                                                if (sequence != "not found") {
-                                                       name = name + "bin" + toString(i+1);
+                                                       name = name + "|" + toString(i+1);
                                                        out << ">" << name << endl;
                                                        out << sequence << endl;
                                                }else { 
@@ -97,7 +105,7 @@ int BinSeqCommand::execute(){
                                        //get last name
                                        sequence = fasta->getSequence(binnames);
                                        if (sequence != "not found") {
-                                               name = binnames + "bin" + toString(i+1);
+                                               name = binnames + '|' + toString(i+1);
                                                out << ">" << name << endl;
                                                out << sequence << endl;
                                        }else { 
@@ -105,7 +113,9 @@ int BinSeqCommand::execute(){
                                                remove(outputFileName.c_str());
                                                return 0;
                                        }
+                                       //out.close();
                                }
+                               out.close();
                        }
                        
                        list = input->getListVector();
@@ -153,12 +163,15 @@ void BinSeqCommand::readNamesFile() {
 
        }
        catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the BinSeqCommand class Function execute. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               cout << "Standard Error: " << e.what() << " has occurred in the BinSeqCommand class Function readNamesFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
                exit(1);
        }
        catch(...) {
-               cout << "An unknown error has occurred in the BinSeqCommand class function execute. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               cout << "An unknown error has occurred in the BinSeqCommand class function readNamesFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
                exit(1);
        }       
 }
 //**********************************************************************************************************************
+
+
+