X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=clustersplitcommand.cpp;h=874eb6d7b535e9e400cca8f22593280ecd959b42;hb=6b32d112bb60e9f7eb6d4407a4eed4c49b67bced;hp=270ea6208d8ead0683d8cf46fb8d7a417469c243;hpb=ac663461b19ad1436a06aa63f97221d1ff105482;p=mothur.git diff --git a/clustersplitcommand.cpp b/clustersplitcommand.cpp index 270ea62..874eb6d 100644 --- a/clustersplitcommand.cpp +++ b/clustersplitcommand.cpp @@ -61,7 +61,7 @@ string ClusterSplitCommand::getHelpString(){ helpString += "The cluster parameter allows you to indicate whether you want to run the clustering or just split the distance matrix, default=t"; helpString += "The cutoff parameter allow you to set the distance you want to cluster to, default is 0.25. \n"; helpString += "The precision parameter allows you specify the precision of the precision of the distances outputted, default=100, meaning 2 decimal places. \n"; - helpString += "The method allows you to specify what clustering algorythm you want to use, default=average, option furthest, nearest, or average. \n"; + helpString += "The method allows you to specify what clustering algorithm you want to use, default=average, option furthest, nearest, or average. \n"; helpString += "The splitmethod parameter allows you to specify how you want to split your distance file before you cluster, default=distance, options distance, classify or fasta. \n"; helpString += "The taxonomy parameter allows you to enter the taxonomy file for your sequences, this is only valid if you are using splitmethod=classify. Be sure your taxonomy file does not include the probability scores. \n"; helpString += "The taxlevel parameter allows you to specify the taxonomy level you want to use to split the distance file, default=3, meaning use the first taxon in each list. \n"; @@ -833,8 +833,10 @@ int ClusterSplitCommand::mergeLists(vector listNames, map us m->openOutputFile(listFileName, outList); outputNames.push_back(listFileName); outputTypes["list"].push_back(listFileName); - map::iterator itLabel; + + //clears out junk for autocompleting of list files above. Perhaps there is a beter way to handle this from within the data structure? + m->printedListHeaders = false; //for each label needed for(itLabel = userLabels.begin(); itLabel != userLabels.end(); itLabel++) { @@ -890,6 +892,8 @@ int ClusterSplitCommand::mergeLists(vector listNames, map us rabund->print(outRabund); } //outList << endl; + if (!m->printedListHeaders) { + m->listBinLabelsInFile.clear(); completeList.printHeaders(outList); } completeList.print(outList); if (rabund != NULL) { delete rabund; } @@ -1174,7 +1178,7 @@ string ClusterSplitCommand::clusterClassicFile(string thisDistFile, string thisN cluster->readPhylipFile(thisDistFile, nameMap); }else if (countfile != "") { ct = new CountTable(); - ct->readTable(thisNamefile, false); + ct->readTable(thisNamefile, false, false); cluster->readPhylipFile(thisDistFile, ct); } tag = cluster->getTag(); @@ -1302,7 +1306,7 @@ string ClusterSplitCommand::clusterFile(string thisDistFile, string thisNamefile read->read(nameMap); }else if (countfile != "") { ct = new CountTable(); - ct->readTable(thisNamefile, false); + ct->readTable(thisNamefile, false, false); read->read(ct); }else { read->read(nameMap); } @@ -1330,9 +1334,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); }