]> git.donarmstrong.com Git - mothur.git/blobdiff - nmdscommand.cpp
added paralellization for windows to dist.seqs and summary.seqs
[mothur.git] / nmdscommand.cpp
index 8fa0145ea7e97081000ee99337309861a0f8c7a9..da82784f56124d5a360294fb9cc7c4b6b1114307 100644 (file)
@@ -46,7 +46,7 @@ string NMDSCommand::getHelpString(){
                helpString += "The iters parameter allows you to select the number of random configuration to try. Default=10\n"; 
                helpString += "The epsilon parameter allows you to select set an acceptable stopping point. Default=1e-12.\n"; 
                helpString += "Example nmds(phylip=yourDistanceFile).\n";
-               helpString += "Note: No spaces between parameter labels (i.e. phylip), '=' and parameters (i.e.yourDistanceFile).\n\n";
+               helpString += "Note: No spaces between parameter labels (i.e. phylip), '=' and parameters (i.e.yourDistanceFile).\n";
                return helpString;
        }
        catch(exception& e) {
@@ -77,6 +77,7 @@ NMDSCommand::NMDSCommand(string option)  {
                
                //allow user to run help
                if(option == "help") { help(); abort = true; calledHelp = true; }
+               else if(option == "citation") { citation(); abort = true; calledHelp = true;}
                
                else {
                        vector<string> myArray = setParameters();
@@ -127,7 +128,7 @@ NMDSCommand::NMDSCommand(string option)  {
                                phylipfile = m->getPhylipFile(); 
                                if (phylipfile != "") { m->mothurOut("Using " + phylipfile + " as input file for the phylip parameter."); m->mothurOutEndLine(); }
                                else {  m->mothurOut("You have no current phylip file and the phylip parameter is required."); m->mothurOutEndLine(); abort = true; }
-                       }       
+                       }else { m->setPhylipFile(phylipfile); } 
                        
                        axesfile = validParameter.validFile(parameters, "axes", true);
                        if (axesfile == "not open") { axesfile = ""; abort = true; }
@@ -216,21 +217,21 @@ int NMDSCommand::execute(){
                                vector< vector<double> > thisConfig;
                                if (axesfile == "") {   thisConfig = generateStartingConfiguration(names.size(), i);            }
                                else                            {       thisConfig = getConfiguration(axes, i);                                                         }
-                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     remove(outputNames[k].c_str()); } return 0; }
+                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     m->mothurRemove(outputNames[k]);        } return 0; }
                                
                                //calc nmds for this dimension
                                double stress;
                                vector< vector<double> > endConfig = nmdsCalc(matrix, thisConfig, stress);
-                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     remove(outputNames[k].c_str()); } return 0; }
+                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     m->mothurRemove(outputNames[k]);        } return 0; }
                                
                                //calc euclid distances for new config
                                vector< vector<double> > newEuclid = linearCalc.calculateEuclidianDistance(endConfig);
-                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     remove(outputNames[k].c_str()); } return 0; }
+                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     m->mothurRemove(outputNames[k]);        } return 0; }
                                
                                //calc correlation between original distances and euclidean distances from this config
                                double rsquared = linearCalc.calcPearson(newEuclid, matrix);
                                rsquared *= rsquared;
-                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     remove(outputNames[k].c_str()); } return 0; }
+                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     m->mothurRemove(outputNames[k]);        } return 0; }
                                
                                //output results
                                out << "Config" << (j+1) << '\t';
@@ -248,7 +249,7 @@ int NMDSCommand::execute(){
                                        bestConfig = endConfig;
                                }
                                
-                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     remove(outputNames[k].c_str()); } return 0; }
+                               if (m->control_pressed) { out.close(); out2.close(); for (int k = 0; k < outputNames.size(); k++) {     m->mothurRemove(outputNames[k]);        } return 0; }
                        }
                }
                
@@ -275,7 +276,7 @@ int NMDSCommand::execute(){
                
                outBest.close();
                
-               if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) {        remove(outputNames[i].c_str()); } return 0; }
+               if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) {        m->mothurRemove(outputNames[i]);        } return 0; }
                
                m->mothurOutEndLine();
                m->mothurOut("Output File Names: "); m->mothurOutEndLine();