]> git.donarmstrong.com Git - mothur.git/blobdiff - clustersplitcommand.cpp
added adjust parameter to mgcluster. fixed bug in classify.otu with countable. fixed...
[mothur.git] / clustersplitcommand.cpp
index 37e42d2fb167591825a26e6599c6986ee78e4f78..b02bd20063e9f70bb422fa541403013d6a1976ab 100644 (file)
@@ -843,9 +843,12 @@ int ClusterSplitCommand::mergeLists(vector<string> listNames, map<float, int> us
                        if (itLabel->first == -1) { thisLabel = "unique"; }
                        else { thisLabel = toString(itLabel->first,  length-1);  } 
                        
-                       outList << thisLabel << '\t' << itLabel->second << '\t';
+                       //outList << thisLabel << '\t' << itLabel->second << '\t';
             
             RAbundVector* rabund = NULL;
+            ListVector completeList;
+            completeList.setLabel(thisLabel);
+            
             if (countfile == "") {
                 rabund = new RAbundVector();
                 rabund->setLabel(thisLabel);
@@ -854,7 +857,8 @@ int ClusterSplitCommand::mergeLists(vector<string> listNames, map<float, int> us
                        //add in singletons
                        if (listSingle != NULL) {
                                for (int j = 0; j < listSingle->getNumBins(); j++) {
-                                       outList << listSingle->get(j) << '\t';
+                                       //outList << listSingle->get(j) << '\t';
+                    completeList.push_back(listSingle->get(j));
                                        if (countfile == "") { rabund->push_back(m->getNumNames(listSingle->get(j))); }
                                }
                        }
@@ -871,7 +875,8 @@ int ClusterSplitCommand::mergeLists(vector<string> listNames, map<float, int> us
                                if (list == NULL) { m->mothurOut("Error merging listvectors in file " + listNames[k]); m->mothurOutEndLine();  }        
                                else {          
                                        for (int j = 0; j < list->getNumBins(); j++) {
-                                               outList << list->get(j) << '\t';
+                                               //outList << list->get(j) << '\t';
+                        completeList.push_back(list->get(j));
                                                if (countfile == "") { rabund->push_back(m->getNumNames(list->get(j))); }
                                        }
                                        delete list;
@@ -884,7 +889,8 @@ int ClusterSplitCommand::mergeLists(vector<string> listNames, map<float, int> us
                 sabund.print(outSabund);
                 rabund->print(outRabund);
             }
-                       outList << endl;
+                       //outList << endl;
+            completeList.print(outList);
                        
                        if (rabund != NULL) { delete rabund; }
                }
@@ -1168,7 +1174,7 @@ string ClusterSplitCommand::clusterClassicFile(string thisDistFile, string thisN
             cluster->readPhylipFile(thisDistFile, nameMap);
                }else if (countfile != "") {
             ct = new CountTable();
-            ct->readTable(thisNamefile);
+            ct->readTable(thisNamefile, false);
             cluster->readPhylipFile(thisDistFile, ct);
         }
         tag = cluster->getTag();
@@ -1296,7 +1302,7 @@ string ClusterSplitCommand::clusterFile(string thisDistFile, string thisNamefile
             read->read(nameMap);
                }else if (countfile != "") {
             ct = new CountTable();
-            ct->readTable(thisNamefile);
+            ct->readTable(thisNamefile, false);
             read->read(ct);
         }else { read->read(nameMap); }
                
@@ -1324,9 +1330,10 @@ string ClusterSplitCommand::clusterFile(string thisDistFile, string thisNamefile
         m->mothurOutEndLine(); m->mothurOut("Clustering " + thisDistFile); m->mothurOutEndLine();
                
         //create cluster
-        if (method == "furthest")      {       cluster = new CompleteLinkage(rabund, list, matrix, cutoff, method); }
-        else if(method == "nearest"){  cluster = new SingleLinkage(rabund, list, matrix, cutoff, method); }
-        else if(method == "average"){  cluster = new AverageLinkage(rabund, list, matrix, cutoff, method);     }
+        float adjust = -1.0;
+        if (method == "furthest")      {       cluster = new CompleteLinkage(rabund, list, matrix, cutoff, method, adjust); }
+        else if(method == "nearest"){  cluster = new SingleLinkage(rabund, list, matrix, cutoff, method, adjust); }
+        else if(method == "average"){  cluster = new AverageLinkage(rabund, list, matrix, cutoff, method, adjust);     }
         tag = cluster->getTag();
                
         if (outputDir == "") { outputDir += m->hasPath(thisDistFile); }