]> git.donarmstrong.com Git - mothur.git/blobdiff - distancecommand.cpp
forced rarefaction.single to output ending line for all groups. added subsample...
[mothur.git] / distancecommand.cpp
index beea1bf915fccffa6b1f92e212e8125db6010af9..79b8fe7c10544dafd2675a963a2229eb2e3e7046 100644 (file)
@@ -179,11 +179,11 @@ DistanceCommand::DistanceCommand(string option) {
                        convert(temp, countends); 
                        
                        temp = validParameter.validFile(parameters, "cutoff", false);           if(temp == "not found"){        temp = "1.0"; }
-                       convert(temp, cutoff); 
+                       m->mothurConvert(temp, cutoff); 
                        
                        temp = validParameter.validFile(parameters, "processors", false);       if (temp == "not found"){       temp = m->getProcessors();      }
                        m->setProcessors(temp);
-                       convert(temp, processors);
+                       m->mothurConvert(temp, processors);
                        
                        temp = validParameter.validFile(parameters, "compress", false);         if(temp == "not found"){  temp = "F"; }
                        convert(temp, compress);
@@ -289,11 +289,11 @@ int DistanceCommand::execute(){
                                
                                driverMPI(start, end, outMPI, cutoff); 
                                
-                               if (m->control_pressed) { outputTypes.clear(); MPI_File_close(&outMPI); delete distCalculator;  return 0; }
+                               if (m->control_pressed) { outputTypes.clear(); MPI_File_close(&outMPI);   return 0; }
                        
                                //wait on chidren
                                for(int i = 1; i < processors; i++) { 
-                                       if (m->control_pressed) { outputTypes.clear();  MPI_File_close(&outMPI);  delete distCalculator;  return 0; }
+                                       if (m->control_pressed) { outputTypes.clear();  MPI_File_close(&outMPI);    return 0; }
                                        
                                        char buf[5];
                                        MPI_Recv(buf, 5, MPI_CHAR, i, tag, MPI_COMM_WORLD, &status); 
@@ -302,7 +302,7 @@ int DistanceCommand::execute(){
                                //do your part
                                driverMPI(start, end, outMPI, cutoff); 
                                
-                               if (m->control_pressed) { outputTypes.clear();  MPI_File_close(&outMPI);  delete distCalculator;  return 0; }
+                               if (m->control_pressed) { outputTypes.clear();  MPI_File_close(&outMPI);   return 0; }
                        
                                char buf[5];
                                strcpy(buf, "done"); 
@@ -322,7 +322,7 @@ int DistanceCommand::execute(){
                                if (output != "square"){ driverMPI(start, end, outputFile, mySize); }
                                else { driverMPI(start, end, outputFile, mySize, output); }
        
-                               if (m->control_pressed) {  outputTypes.clear();  delete distCalculator;  return 0; }
+                               if (m->control_pressed) {  outputTypes.clear();   return 0; }
                                
                                int amode=MPI_MODE_APPEND|MPI_MODE_WRONLY|MPI_MODE_CREATE; //
                                MPI_File outMPI;
@@ -341,7 +341,7 @@ int DistanceCommand::execute(){
                                for(int b = 1; b < processors; b++) { 
                                        unsigned long long fileSize;
                                        
-                                       if (m->control_pressed) { outputTypes.clear();  MPI_File_close(&outMPI);  delete distCalculator;  return 0; }
+                                       if (m->control_pressed) { outputTypes.clear();  MPI_File_close(&outMPI);   return 0; }
                                        
                                        MPI_Recv(&fileSize, 1, MPI_LONG, b, tag, MPI_COMM_WORLD, &status); 
                                        
@@ -371,7 +371,7 @@ int DistanceCommand::execute(){
                                if (output != "square"){ driverMPI(start, end, (outputFile + toString(pid) + ".temp"), size); }
                                else { driverMPI(start, end, (outputFile + toString(pid) + ".temp"), size, output); }
                                
-                               if (m->control_pressed) { delete distCalculator;  return 0; }
+                               if (m->control_pressed) {  return 0; }
                        
                                //tell parent you are done.
                                MPI_Send(&size, 1, MPI_LONG, 0, tag, MPI_COMM_WORLD);
@@ -380,7 +380,7 @@ int DistanceCommand::execute(){
                MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
 #else          
                                
-       //#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+       //#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
                //if you don't need to fork anything
                if(processors == 1){
                        if (output != "square") {  driver(0, numSeqs, outputFile, cutoff); }
@@ -507,7 +507,7 @@ int DistanceCommand::execute(){
 /**************************************************************************************************/
 void DistanceCommand::createProcesses(string filename) {
        try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
                int process = 1;
                processIDS.clear();
                
@@ -1014,7 +1014,7 @@ int DistanceCommand::convertMatrix(string outputFile) {
                string outfile = m->getRootName(outputFile) + "sorted.dist.temp";
                
                //use the unix sort 
-               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
                        string command = "sort -n " + outputFile + " -o " + outfile;
                        system(command.c_str());
                #else //sort using windows sort
@@ -1094,7 +1094,7 @@ int DistanceCommand::convertMatrix(string outputFile) {
                exit(1);
        }
 }
-/**************************************************************************************************
+**************************************************************************************************
 int DistanceCommand::convertToLowerTriangle(string outputFile) {
        try{
 
@@ -1102,7 +1102,7 @@ int DistanceCommand::convertToLowerTriangle(string outputFile) {
                string outfile = m->getRootName(outputFile) + "sorted.dist.temp";
                
                //use the unix sort 
-               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+               #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
                        string command = "sort -n " + outputFile + " -o " + outfile;
                        system(command.c_str());
                #else //sort using windows sort
@@ -1188,7 +1188,7 @@ int DistanceCommand::convertToLowerTriangle(string outputFile) {
                exit(1);
        }
 }
-/**************************************************************************************************/
+**************************************************************************************************/
 //its okay if the column file does not contain all the names in the fasta file, since some distance may have been above a cutoff,
 //but no sequences can be in the column file that are not in oldfasta. also, if a distance is above the cutoff given then remove it.
 //also check to make sure the 2 files have the same alignment length.