]> git.donarmstrong.com Git - mothur.git/blobdiff - clusterclassic.cpp
Merge branch 'master' of https://github.com/mothur/mothur.git
[mothur.git] / clusterclassic.cpp
index 7f6e97ed68ebc0d44b1894fe462c5330fd73de3b..f0bae59ab33de8c2f451b80c7180a33c49c28a54 100644 (file)
@@ -11,7 +11,7 @@
 #include "progress.hpp"
 
 /***********************************************************************/
-ClusterClassic::ClusterClassic(float c, string f) : method(f), smallDist(1e6), nseqs(0) {
+ClusterClassic::ClusterClassic(float c, string f, bool s) : method(f), smallDist(1e6), nseqs(0), sim(s) {
        try {
                mapWanted = false;  //set to true by mgcluster to speed up overlap merge
        
@@ -19,7 +19,10 @@ ClusterClassic::ClusterClassic(float c, string f) : method(f), smallDist(1e6), n
                cutoff = c;
                aboveCutoff = cutoff + 10000.0;
                m = MothurOut::getInstance();
-               globaldata = GlobalData::getInstance();
+        if(method == "furthest")        {   tag = "fn";   }
+        else if (method == "average")   {   tag = "an";   }
+        else if (method == "weighted")  {   tag = "wn";   }        
+        else if (method == "nearest")   {   tag = "nn";   }
        }
        catch(exception& e) {
                m->errorOut(e, "ClusterClassic", "ClusterClassic");
@@ -102,7 +105,7 @@ int ClusterClassic::readPhylipFile(string filename, NameAssignment* nameMap) {
                                                                                fileHandle >> distance;
                                                        
                                                                                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){
                                                                                        dMatrix[i][j] = distance;
@@ -124,7 +127,7 @@ int ClusterClassic::readPhylipFile(string filename, 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){
                                                                                        if (distance < smallDist) { smallDist = distance; }
@@ -162,7 +165,7 @@ int ClusterClassic::readPhylipFile(string filename, 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(j < i){
                                                                                        if (distance < smallDist) { smallDist = distance; }
@@ -185,7 +188,7 @@ int ClusterClassic::readPhylipFile(string filename, 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(j < i){
                                                                                        if (distance < smallDist) { smallDist = distance; }
@@ -435,11 +438,11 @@ void ClusterClassic::print() {
 try {
                //update location of seqs in smallRow since they move to smallCol now
                for (int i = 0; i < dMatrix.size(); i++) {
-                       cout << "row = " << i << '\t';
+                       m->mothurOut("row = " + toString(i) + "\t");
                        for (int j = 0; j < dMatrix[i].size(); j++) {
-                               cout << dMatrix[i][j] << '\t';
+                               m->mothurOut(toString(dMatrix[i][j]) + "\t");
                        }
-                       cout << endl;
+                       m->mothurOutEndLine();
                }
        }
        catch(exception& e) {