]> git.donarmstrong.com Git - mothur.git/blobdiff - unifracunweightedcommand.cpp
fixed bug in unifrac commands with unrooted trees
[mothur.git] / unifracunweightedcommand.cpp
index 79ee042a9ac883ddadbfef057dff813a4e51cf2a..fbbc4f1de67cebeb1b9e57a4dce47f499e272f63 100644 (file)
@@ -25,8 +25,7 @@ vector<string> UnifracUnweightedCommand::getValidParameters(){
 UnifracUnweightedCommand::UnifracUnweightedCommand(){  
        try {
                globaldata = GlobalData::getInstance();
-               abort = true;
-               //initialize outputTypes
+               abort = true; calledHelp = true; 
                vector<string> tempOutNames;
                outputTypes["unweighted"] = tempOutNames;
                outputTypes["uwsummary"] = tempOutNames;
@@ -66,11 +65,11 @@ vector<string> UnifracUnweightedCommand::getRequiredFiles(){
 UnifracUnweightedCommand::UnifracUnweightedCommand(string option)  {
        try {
                globaldata = GlobalData::getInstance();
-               abort = false;
+               abort = false; calledHelp = false;   
                Groups.clear();
                        
                //allow user to run help
-               if(option == "help") { help(); abort = true; }
+               if(option == "help") { help(); abort = true; calledHelp = true; }
                
                else {
                        //valid paramters for this command
@@ -191,7 +190,7 @@ void UnifracUnweightedCommand::help(){
 int UnifracUnweightedCommand::execute() {
        try {
                
-               if (abort == true) { return 0; }
+               if (abort == true) { if (calledHelp) { return 0; }  return 2;   }
                
                int start = time(NULL);
                
@@ -199,6 +198,8 @@ int UnifracUnweightedCommand::execute() {
                randomData.resize(numComp,0); //data[0] = unweightedscore
                //create new tree with same num nodes and leaves as users
                
+               if (numComp < processors) { processors = numComp;  }
+               
                outSum << "Tree#" << '\t' << "Groups" << '\t'  <<  "UWScore" <<'\t' << "UWSig" <<  endl;
                m->mothurOut("Tree#\tGroups\tUWScore\tUWSig"); m->mothurOutEndLine();
                
@@ -260,7 +261,7 @@ int UnifracUnweightedCommand::execute() {
                                }
                                
                                //report progress
-                               m->mothurOut("Iter: " + toString(j+1)); m->mothurOutEndLine();  
+//                             m->mothurOut("Iter: " + toString(j+1)); m->mothurOutEndLine();  
                        }
        
                        for(int a = 0; a < numComp; a++) {
@@ -431,7 +432,7 @@ void UnifracUnweightedCommand::createPhylipFile(int i) {
                                out << name << '\t';
                                
                                //output distances
-                               for (int l = 0; l < globaldata->Groups.size(); l++) {   out  << dists[r][l] << '\t';  }
+                               for (int l = 0; l < globaldata->Groups.size(); l++) {   out << setprecision(11) << dists[r][l] << '\t';  }
                                out << endl;
                        }else{
                                //output distances