]> git.donarmstrong.com Git - mothur.git/blobdiff - pcacommand.cpp
took out debugging output code from distance calculators
[mothur.git] / pcacommand.cpp
index 644473a8baa2b86253118e7b766b0e965fcb80a8..c982d7563c8f26066924eeab070f5fd16a5b30e5 100644 (file)
@@ -42,7 +42,7 @@ PCACommand::PCACommand(string option)  {
                                it = parameters.find("phylip");
                                //user has given a template file
                                if(it != parameters.end()){ 
-                                       path = hasPath(it->second);
+                                       path = m->hasPath(it->second);
                                        //if the user has not given a path then, add inputdir. else leave path alone.
                                        if (path == "") {       parameters["phylip"] = inputDir + it->second;           }
                                }
@@ -57,7 +57,7 @@ PCACommand::PCACommand(string option)  {
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
                                outputDir = ""; 
-                               outputDir += hasPath(phylipfile); //if user entered a file with a path then preserve it 
+                               outputDir += m->hasPath(phylipfile); //if user entered a file with a path then preserve it      
                        }
                        
                        //error checking on files       
@@ -97,17 +97,11 @@ int PCACommand::execute(){
                vector<string> names;
                vector<vector<double> > D;
        
-               //fbase = filename;
-               //if(fbase.find_last_of(".")!=string::npos){
-               //      fbase.erase(fbase.find_last_of(".")+1); 
-               //}
-               //else{
-               //      fbase += ".";
-               //}
-               
-               fbase = outputDir + getRootName(getSimpleName(filename));
+               fbase = outputDir + m->getRootName(m->getSimpleName(filename));
                
                read(filename, names, D);
+               
+               if (m->control_pressed) { return 0; }
        
                double offset = 0.0000;
                vector<double> d;
@@ -116,19 +110,22 @@ int PCACommand::execute(){
                vector<vector<double> > copy_G;
                //int rank = D.size();
                
-               cout << "\nProcessing...\n";
+               m->mothurOut("\nProcessing...\n");
                
                for(int count=0;count<2;count++){
-                       recenter(offset, D, G);   
-                       tred2(G, d, e);
-                       qtli(d, e, G);
+                       recenter(offset, D, G);         if (m->control_pressed) { return 0; }
+                       tred2(G, d, e);                         if (m->control_pressed) { return 0; }
+                       qtli(d, e, G);                          if (m->control_pressed) { return 0; }
                        offset = d[d.size()-1];
                        if(offset > 0.0) break;
                } 
                
+               if (m->control_pressed) { return 0; }
                
                output(fbase, names, G, d);
                
+               if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) {        remove(outputNames[i].c_str());  } return 0; }
+               
                m->mothurOutEndLine();
                m->mothurOut("Output File Names: "); m->mothurOutEndLine();
                for (int i = 0; i < outputNames.size(); i++) {  m->mothurOut(outputNames[i]); m->mothurOutEndLine();    }
@@ -164,7 +161,7 @@ void PCACommand::get_comment(istream& f, char begin, char end){
 
 /*********************************************************************************************************************************/
 
-void PCACommand::read_phylip(istream& f, int square_m, vector<string>& name_list, vector<vector<double> >& d){
+int PCACommand::read_phylip(istream& f, int square_m, vector<string>& name_list, vector<vector<double> >& d){
        try {
                //     int count1=0;
                //     int count2=0;
@@ -181,6 +178,8 @@ void PCACommand::read_phylip(istream& f, int square_m, vector<string>& name_list
                                f >> name_list[i];
                                //                      cout << i << "\t" << name_list[i] << endl;
                                for(int j=0;j<rank;j++) {
+                                       if (m->control_pressed) { return 0; }
+                                       
                                        f >> d[i][j];
                                        if (d[i][j] == -0.0000)
                                                d[i][j] = 0.0000;
@@ -197,6 +196,7 @@ void PCACommand::read_phylip(istream& f, int square_m, vector<string>& name_list
                                f >> name_list[i];
                                d[i][i]=0.0000;
                                for(int j=0;j<i;j++){
+                                       if (m->control_pressed) { return 0; }
                                        f >> d[i][j];
                                        if (d[i][j] == -0.0000)
                                                d[i][j] = 0.0000;
@@ -204,6 +204,8 @@ void PCACommand::read_phylip(istream& f, int square_m, vector<string>& name_list
                                }
                        }
                }
+               
+               return 0;
        }
        catch(exception& e) {
                m->errorOut(e, "PCACommand", "read_phylip");
@@ -217,11 +219,11 @@ void PCACommand::read_phylip(istream& f, int square_m, vector<string>& name_list
 void PCACommand::read(string fname, vector<string>& names, vector<vector<double> >& D){
        try {
                ifstream f;
-               openInputFile(fname, f);
+               m->openInputFile(fname, f);
                        
                //check whether matrix is square
                char d;
-               int m = 1;
+               int q = 1;
                int numSeqs;
                string name;
                
@@ -231,21 +233,21 @@ void PCACommand::read(string fname, vector<string>& names, vector<vector<double>
                        
                        //is d a number meaning its square
                        if(isalnum(d)){ 
-                               m = 1; 
+                               q = 1; 
                                break; 
                        }
                        
                        //is d a line return meaning its lower triangle
                        if(d == '\n'){
-                               m = 2;
+                               q = 2;
                                break;
                        }
                }
                f.close();
                
                //reopen to get back to beginning
-               openInputFile(fname, f);                        
-               read_phylip(f, m, names, D);
+               m->openInputFile(fname, f);                     
+               read_phylip(f, q, names, D);
        }
                catch(exception& e) {
                m->errorOut(e, "PCACommand", "read");