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";
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);
//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))); }
}
}
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;
sabund.print(outSabund);
rabund->print(outRabund);
}
- outList << endl;
+ //outList << endl;
+ completeList.print(outList);
if (rabund != NULL) { delete rabund; }
}
cluster->readPhylipFile(thisDistFile, nameMap);
}else if (countfile != "") {
ct = new CountTable();
- ct->readTable(thisNamefile);
+ ct->readTable(thisNamefile, false);
cluster->readPhylipFile(thisDistFile, ct);
}
tag = cluster->getTag();
read->read(nameMap);
}else if (countfile != "") {
ct = new CountTable();
- ct->readTable(thisNamefile);
+ ct->readTable(thisNamefile, false);
read->read(ct);
}else { read->read(nameMap); }
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); }