]> git.donarmstrong.com Git - mothur.git/blobdiff - readphylip.cpp
fixed classify.seqs output file name - had issue if reference taxonomy file did not...
[mothur.git] / readphylip.cpp
index 130deccaf0adbb1af542034450d1362a20ae8b57..1c529b26f15fdfa172c8a0f7ebcf20187e87b03b 100644 (file)
 ReadPhylipMatrix::ReadPhylipMatrix(string distFile){
         
         successOpen = m->openInputFile(distFile, fileHandle);
+               sim=false;
         
 }
+/***********************************************************************/
+
+ReadPhylipMatrix::ReadPhylipMatrix(string distFile, bool s){
+       
+       successOpen = m->openInputFile(distFile, fileHandle);
+       sim=s;
+}
+
 
 /***********************************************************************/
 
@@ -27,9 +36,13 @@ int ReadPhylipMatrix::read(NameAssignment* nameMap){
                         int square, nseqs;
                         string name;
                         vector<string> matrixNames;
-        
-                        fileHandle >> nseqs >> name;
-
+                                               
+                                               string numTest;
+                                               fileHandle >> numTest >> name;
+                       
+                                               if (!m->isContainingOnlyDigits(numTest)) { m->mothurOut("[ERROR]: expected a number and got " + numTest + ", quitting."); m->mothurOutEndLine(); exit(1); }
+                                               else { convert(numTest, nseqs); }
+                       
                         matrixNames.push_back(name);
 
                         if(nameMap == NULL){
@@ -85,7 +98,7 @@ int ReadPhylipMatrix::read(NameAssignment* nameMap){
                                                                                        
                                                 
                                                         if (distance == -1) { distance = 1000000; }
-                                                                                                               else if (globaldata->sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.
+                                                                                                               else if (sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.
                                                 
                                                         if(distance < cutoff){
                                                                 PCell value(i, j, distance);
@@ -105,7 +118,7 @@ int ReadPhylipMatrix::read(NameAssignment* nameMap){
                                                                                                                if (m->control_pressed) { delete reading; fileHandle.close(); return 0;  }
                                 
                                                         if (distance == -1) { distance = 1000000; }
-                                                                                                               else if (globaldata->sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.
+                                                                                                               else if (sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.
                                                         
                                                         if(distance < cutoff){
                                                                 PCell value(nameMap->get(matrixNames[i]), nameMap->get(matrixNames[j]), distance);
@@ -137,7 +150,7 @@ int ReadPhylipMatrix::read(NameAssignment* nameMap){
                                                                                                                if (m->control_pressed) {  fileHandle.close();  delete reading; return 0; }
                                                                                                                
                                                         if (distance == -1) { distance = 1000000; }
-                                                                                                               else if (globaldata->sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.
+                                                                                                               else if (sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.
                                                         
                                                         if(distance < cutoff && j < i){
                                                                 PCell value(i, j, distance);
@@ -157,7 +170,7 @@ int ReadPhylipMatrix::read(NameAssignment* nameMap){
                                                                                                                if (m->control_pressed) {  fileHandle.close();  delete reading; return 0; }
                                                                                                                
                                                        if (distance == -1) { distance = 1000000; }
-                                                                                                               else if (globaldata->sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.                                                        
+                                                                                                               else if (sim) { distance = 1.0 - distance;  }  //user has entered a sim matrix that we need to convert.                                                        
                                                         
                                                                                                                if(distance < cutoff && j < i){
                                                                 PCell value(nameMap->get(matrixNames[i]), nameMap->get(matrixNames[j]), distance);